> Tous les forumsBureautique

 incrementation !! encore , OUI mais !!Sujet résolu
Statut du sujet : RESOLU Imprimer
 Club Nat Besançon
  Posté le 02/06/2006 @ 14:28  
 Petit astucien

6 Messages
Bonjour à tous, une question qui revient très souvent , je sais , mais je ne trouve pas la reponse exact de ce que je souhaite faire !! Merci a Galopin 01qui donne la reponse ci dessous, mais moi je cherche simplement une incrémentation a l'enregistrement et avec un simple numero a 4 chiffre Ami Galopin01 tu propose un enregistrement incrémenter a l'impression et avec l'année et le mois, suivi d'un chiffre a trois nombres . je peux sur demande envoyer mon ma création de facture/reçu si cela peux vous aidez !? il suffi de demander les amis , auriez vous une réponse s'il vous plait ? merci à tous de votre aide Pascal ------------------------------------------------ Posté le 28/01/2006 à 23:15 par Galopin01 Bonsoir, C'est une question qui revient souvent. La difficulté réside dans le choix du "moment" ou on fait tourner la numérotation. Si comme tu le demandes, on ne change la numérotation que chaque jour, tu ne peux faire qu'une facture par jour et tes affaires ne seront sans doute pas brillantes. Si on fait tourner la numérotation à chaque ouverture de classeur, tu es obligé de fermer le classeur à chaque fois entre 2 factures et ce n'est pas forcément l'idéal. De plus si tu veux seulement consulter une facture ultérieurement tu vas changer le numéro et ça va rapidement être une vrai salade... Les macros suivantes donnent un numéro de facture à chaque impression à condition qu'il n'y ait pas déjà un numéro ! (car s'il ya a déjà un numéro on considère que tu réédites la même facture. Si par contre la case N° de facture est vide, la macro considère qu'il s'agit d'une nouvelle facture et le n° augmente de 1. Ces 2 macros sont à coller dans le module "ThisWorkbook"Private Sub Workbook_BeforePrint(Cancel As Boolean) If Range("FactureNo") = "" Then Range("FactureNo") = NumFact End Sub Private Function NumFact() pref = "zk" & Right(Year(Date), 2) & Format(Month(Date), "00") sFich = pref & "???.dat" z = Dir(sFich) If z = "" Then Open pref & "001.dat" For Random As #1 Close #1 End If z = Dir(sFich) NumInc = Format(CInt(Mid(z, 7, 3)) + 1, "000") Name z As Left(z, 6) & NumInc & Right(z, 4) NumFact = Mid(z, 3, 7) End FunctionPour que la macro puisse fonctionner il faut que la cellule dans laquelle le N° va s'inscrire soit Nommée (Insertion/Nom/Définir) FactureNo Tu peux par exemple insérer cette macro dans un classeur modèle (*.xlt) et enregistrer simultanément la facture sous un autre nom au moment de l'impression...) La numérotation comporte 7 chiffres p.e. : 0601001 2 pour l'année 2 pour le mois 3 de 001 à 999 mais si tu as plus de 1000 factures par mois il est aisé de le modifier. Nota: la macro crée dans le Répertoire de travail un fichier "zk???????.dat" de zéro octet qui gère la numérotation... A+ Modifié par galopin01 le 31/05/2006 09:52 -------------------------
 Afficher le profil de Club Nat BesançonEnvoyer un message privé à Club Nat Besançon
 
 
Publicité
 Yora_senior  Posté le 02/06/2006 à 18:37  
Astucien

1237 Messages
Bonjour Club Nat Besançon, Comme vous n'avez pas de réponse pour l'instant, vous pouvez m'adresser un exemple de votre fichier ici : jacques.thery(arrobase)tele2.fr Bien sûr vous remplacez (arrobase) par le caractère. Mais si Galopin01 vous répond bientôt, il a commencé le sujet, alors voyez de préférence avec lui. Amicalement.
Afficher le profil de Yora_seniorEnvoyer un message privé à Yora_senior
 Revenir en haut de la page
 galopin01  Posté le 02/06/2006 à 19:14  
Astucien

4324 Messages
bonsoir, je suis vraiment surbooké ce w.e. (grosse compétition sur 2 jours) mais tu peux toujours envoyer ton classeur ici : [img]http://perso.orange.fr/galopin01/images/email.jpg[/img]] Si Yora peut te faire ça je ne serais pas vexé ! ... pour incrémenter la cellule A1, c'est très simple il suffit de mettre la macro :[code]Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("A1") = Range("A1") + 1 End Sub[/code] (Macro à coller dans le module de la feuille concernée) et ça tourne sur enregistrer et enregistrer sous. Sinon pour un truc plus élaboré, je verrai Lundi. A+

Modifié par galopin01 le 03/06/2006 04:10
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 Club Nat Besançon  Posté le 03/06/2006 à 00:33  
Petit astucien

6 Messages
Bonsoir à vous deux je rentre de réunion et je viens de voir vos réponses, c'est très sympa, mais je ferais les essais demain matin quand j'aurais l'esprit un peu plus clair. je vous tiens au courant des résultats obtenus. encore merci à vous A+ Pascal
Afficher le profil de Club Nat BesançonEnvoyer un message privé à Club Nat Besançon
 Revenir en haut de la page
 Club Nat Besançon  Posté le 04/06/2006 à 19:27  
Petit astucien

6 Messages
Bonjour, Effectivement l'incrémentation fonctionne bien mais il y a un truc que je n'ais pas du faire comme il faut. Après enregistrement du N°1 le numéro N°2 qui s'ouvre garde les données du N°1 et il faut que je vide les cellules pour remplir ma nouvelle facture et l'enregistrer. j'ai du faire une annerie sans doute !!? merci d'avance à vous pour les corrections a apporter a mon fichier A bientôt Pascal.
Afficher le profil de Club Nat BesançonEnvoyer un message privé à Club Nat Besançon
 Revenir en haut de la page
 galopin01  Posté le 04/06/2006 à 23:20  
Astucien

4324 Messages
Bonsoir, Désolé c'était juste une piste de travail. Je reprend. Il faut que dans ton modèle la cellule à numéroter soit nommée (Insertion / Nom / Définir) : FactureNo Ces deux macros sont à coller dans ThisWorkbook :[code]Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Range("FactureNo") = "" Then Range("FactureNo") = NumFact End Sub Private Function NumFact() Dim FNum$, pref$, z$ FNum = "000001" pref = "zz" sFich = pref & "??????.dat" z = Dir(sFich) If z = "" Then Open pref & FNum & ".dat" For Random As #1 Close #1 End If z = Dir(sFich) NumInc = Format(CLng(Mid(z, 3, 6)) + 1, "000000") Name z As Left(z, 2) & NumInc & Right(z, 4) NumFact = Mid(z, 3, 6) End Function[/code] La macro crée dans ton Répertoire de travail un fichier de zéro octet nommé zzQQQQQQ.dat ou QQQQQQ est le dernier numéro de facture. (Le "zz" au début c'est juste pour retrouver facilement ce fichier : en effet il très improbable qu'il existe déjà un autre fichier dont le nom commence par zz...) Pour redémarrer la numérotation à zéro il suffit de supprimer ce fichier. Comme avant la macro ne numérote qu'une facture sans numéro, sinon on considère que tu sauvegardes une modification avec le même numéro. (C'est la raison pour laquelle cette méthode de numérotation est tendancieuse : il peut exister plusieurs factures enregistrées sous des noms différents et portant le même numéro) La numérotation avant impression (couplée avec enregistrement sur le numéro de facture) me semble pour cette raison bien préférable. Ok ? A+

Modifié par galopin01 le 04/06/2006 23:31
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 Club Nat Besançon  Posté le 05/06/2006 à 12:22  
Petit astucien

6 Messages
Bonjour Galopin merci de ta rapide réponse, je vais faire les modifs necessaires. j'essais de comprendre le fonctionnement mais j'avoue que mon pauvre neurone à du mal a se conecter enfin j'essai ta methode et je te tiens au courant des évolutions. merci bonne journée à tous Pascal
Afficher le profil de Club Nat BesançonEnvoyer un message privé à Club Nat Besançon
 Revenir en haut de la page
 galopin01  Posté le 05/06/2006 à 14:18  
Astucien

4324 Messages
Si ça peut t'aider je te donne le code commenté : [img]http://perso.orange.fr/galopin01/images/CodFactCom.jpg[/img]
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 galopin01  Posté le 07/06/2006 à 17:35  
Astucien

4324 Messages
Bonjour, je t'ai retourné une réponse avec ton fichier par e-mail. As-tu reçu ? J'ai toujours des démélé orageux avec Outlook et je ne sais jamais ce qui part vraiment... Tu me dis si tu es arrivé à quelque chose de satisfaisant. A+
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 Club Nat Besançon  Posté le 01/07/2006 à 12:35  
Petit astucien

6 Messages
Bonjour à tous, Bonjour Galopin et Bonjour Yora Senior, Je tiens à vous remercier pour toute l’"aide que vous m'avez apportée. Galopin, tes explications détaillées ont permis de comprendre un peu mieux les choses et je pense que tout le monde aura pu en profiter.Un grand merci à toi pour les grands pas en avant que tu m'aies permis de faire. Yora Senior, pour moi en un mot vous êtes plutôt un "Yora Ka Grand Senior". Après de nombreux échanges de mail, vous avez réussi par votre ténacité et votre professionnalisme à me reconstruire ma facture en mode Visual Basic. Tout ou presque est automatisé et c'est un vrai plaisir de travailler maintenant avec se système. Ceci n'engage que moi, mais je tiens à vous rendre hommage YORA, en indiquant ici que vous, internautes, pouvez retrouver YORA SENIOR sur un autre site d'aide a l'informatique a l'adresse ci-dessous. http://aide-micro-hourrrah.forumactif.com/viewtopic.forum?t=927 Respect et Admiration à vous Yora Felicitations aux gestionnaires du Forum PC Astuces. Amicalement. Pascal
Afficher le profil de Club Nat BesançonEnvoyer un message privé à Club Nat Besançon
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsBureautique

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page