| | 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
-------------------------
| | |
| |
| 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.
| | | | | 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 | | | | | 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 | | | | | 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. | | | | | 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 | | | | | 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 | | | | | 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] | | | | | 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+ | | | | | 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
| | | |
| | 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
|
|