Numéro de devis automatique qui se change à chaque enregistremen
Résolu/Fermé
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
-
7 mai 2017 à 18:51
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 9 mai 2017 à 17:47
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 9 mai 2017 à 17:47
A voir également:
- Numéro de devis automatique qui se change à chaque enregistremen
- Numero prive - Guide
- A qui appartient ce numéro - Guide
- Changer de dns - Guide
- Message automatique thunderbird - Guide
- Word numéro de page 1/2 - Guide
15 réponses
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
7 mai 2017 à 20:03
7 mai 2017 à 20:03
Bonsoir,
Essaye comme cela avec une simplification de ton code
Sub effacer_et_numero()
'
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
Essaye comme cela avec une simplification de ton code
Sub effacer_et_numero()
'
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
phadeb
Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
21
7 mai 2017 à 18:53
7 mai 2017 à 18:53
Bonjour,
Pourrais tu mettre un exemple concret ainsi que le résultat attendu ?
Car j'ai bien peur de ne pas comprendre le besoin sans le contexte
--
Pourrais tu mettre un exemple concret ainsi que le résultat attendu ?
Car j'ai bien peur de ne pas comprendre le besoin sans le contexte
--
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
7 mai 2017 à 19:14
7 mai 2017 à 19:14
Je vous fais une capture du haut de mon modèle où il y a mon numéro de devis.
Dans l'état actuel des choses je dois reprendre à chaque fois le dernier devis que j'ai fait pour faire fonctionner mon numéro automatique.
Je voudrais pouvoir inclure dans le code quelque chose qui change le numéro à chaque enregistrement de devis, ainsi je reprends simplement mon modèle et pas le dernier devis fait
j'espère que ca sera plus compréhensible :)
phadeb
Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
21
7 mai 2017 à 19:47
7 mai 2017 à 19:47
C'est toujours très flou sans un exemple concret car juste avec cette capture, je n'ai toujours pas de contexte.
Y'a t-il d'autres codes macro ?
Comment sont disposés les devis ? Sur une seule feuille à la suite ? Sur plusieurs feuilles ?
Si on part de l'hypothèse que vous voulez garder un modèle sans la facture mais juste avec le numéro, alors il faudra mettre un compteur quelquepart dans le classeur qui sera incrémenté à chaque nouveau devis. Il peut être mis dans la même feuille mais caché dans une cellule non affichée Z1 par exemple, ou bien en caractère blanc sur blanc dans une cellule affichée A1 par exemple.
Si vous choisissez par exemple de le mettre dans A1, il faudra rajouter ce code :
'incrémenter la valeur invisible
Range("A1").Value = Range("A1").Value +1
'copier le nouveau numéro
Range("E5").Value = Range("A1").Value
Sinon, une autre méthode consisterai à
1- dupliquer la feuille du modèle
2- renommer la nouvelle feuille avec un nom parlant "devis_en_cours"
3- mettre le numéro du dernier devis +1 dans la cellule E5 de "devis_en_cours"
--
Y'a t-il d'autres codes macro ?
Comment sont disposés les devis ? Sur une seule feuille à la suite ? Sur plusieurs feuilles ?
Si on part de l'hypothèse que vous voulez garder un modèle sans la facture mais juste avec le numéro, alors il faudra mettre un compteur quelquepart dans le classeur qui sera incrémenté à chaque nouveau devis. Il peut être mis dans la même feuille mais caché dans une cellule non affichée Z1 par exemple, ou bien en caractère blanc sur blanc dans une cellule affichée A1 par exemple.
Si vous choisissez par exemple de le mettre dans A1, il faudra rajouter ce code :
'incrémenter la valeur invisible
Range("A1").Value = Range("A1").Value +1
'copier le nouveau numéro
Range("E5").Value = Range("A1").Value
Sinon, une autre méthode consisterai à
1- dupliquer la feuille du modèle
2- renommer la nouvelle feuille avec un nom parlant "devis_en_cours"
3- mettre le numéro du dernier devis +1 dans la cellule E5 de "devis_en_cours"
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
7 mai 2017 à 20:13
7 mai 2017 à 20:13
Oui j'ai déjà mis sur la même feuille un bouton qui remet tout à zéro et qui incrémente à chaque fois mon numéro de devis.
donc exemple: j'ouvre mon modèle je fais mon devis puis je l'enregistre sous un nom différent que je mets dans un dossier. Si je veux faire un autre devis si j'ouvre à nouveau le modèle et que je clique sur le bouton ça me remet au numéro 1
Si je veux que ca mette 2 je dois réouvrir le devis 1 appuyer sur le bouton et là j'ai le 2 qui s'affiche
Mais je ne voudrais pas ouvrir à chaque fois le dernier devis mais uniquement mon modèle
On ne peut pas mettre de pièce jointe ici? car j'aurai pu t'envoyer le classeur ça aurait plus clair
phadeb
Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
21
8 mai 2017 à 00:41
8 mai 2017 à 00:41
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
7 mai 2017 à 20:20
7 mai 2017 à 20:20
Re,
si je comprends ton dernier post
clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code, puis enregistre ton fichier et teste le
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
si je comprends ton dernier post
clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code, puis enregistre ton fichier et teste le
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
8 mai 2017 à 13:39
8 mai 2017 à 13:39
Bah j'aurai mieux fait de pas toucher , car là ça me dit que j'ai plus de macro, donc c'est pas fini
faut que je recommence tout :-(
faut que je recommence tout :-(
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
7 mai 2017 à 20:45
7 mai 2017 à 20:45
Re,
As tu testé mon dernier code post 6
As tu testé mon dernier code post 6
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
7 mai 2017 à 20:53
7 mai 2017 à 20:53
re
non, mais je le testerai demain car là je dois quitter
Ca sera mieux ?
non, mais je le testerai demain car là je dois quitter
Ca sera mieux ?
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
8 mai 2017 à 12:54
8 mai 2017 à 12:54
Re,
alors pas de retour !
si ton problème est résolu confirme le nous que l'on passe le statut de la discussion en résolu
Merci
alors pas de retour !
si ton problème est résolu confirme le nous que l'on passe le statut de la discussion en résolu
Merci
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
8 mai 2017 à 14:43
8 mai 2017 à 14:43
Bonjour
Bon j'ai remis ton premier code qui fonctionne mais n'est pas enregistré en modèle l'extension est en .xlsm
Je n'arrive pas autrement
Quel est l'avantage du deuxième code stp ?
Cordialement
Bon j'ai remis ton premier code qui fonctionne mais n'est pas enregistré en modèle l'extension est en .xlsm
Je n'arrive pas autrement
Quel est l'avantage du deuxième code stp ?
Cordialement
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
>
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
8 mai 2017 à 14:55
8 mai 2017 à 14:55
Re,
essaye le code ci dessous
essaye le code ci dessous
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
8 mai 2017 à 14:28
8 mai 2017 à 14:28
Re,
Il vaudrais mieux soit traiter ta demande à l'ouverture du fichier ou en deux temps effacement des données à l'enregistrement et activer le compteur à l'ouverture du fichier.
essaye comme cela, clic droit sur l'onglet de ta feuille/Visualiser le code/ouvre la Thiswokbook
et colle ce code
Private Sub Workbook_Open()
On Error Resume Next
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
Qui a t'il dans ta cellule I5 qui conditionne le compteur
Il vaudrais mieux soit traiter ta demande à l'ouverture du fichier ou en deux temps effacement des données à l'enregistrement et activer le compteur à l'ouverture du fichier.
essaye comme cela, clic droit sur l'onglet de ta feuille/Visualiser le code/ouvre la Thiswokbook
et colle ce code
Private Sub Workbook_Open()
On Error Resume Next
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
Qui a t'il dans ta cellule I5 qui conditionne le compteur
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
Modifié le 8 mai 2017 à 15:33
Modifié le 8 mai 2017 à 15:33
re
il y a 0
j'ose plus toucher
là quand j'ai rempli mon devis je l'enregistre avec le nom du client ce qui me génère un autre fichier
et quand j'ouvre mon fichier d'origine toutes les cellules sont effacées il ne reste que le numéro de devis que j'active avec mon bouton effacer
donc pour l'instant je crois que je vais laisser comme ça car je galère trop
il y a 0
j'ose plus toucher
là quand j'ai rempli mon devis je l'enregistre avec le nom du client ce qui me génère un autre fichier
et quand j'ouvre mon fichier d'origine toutes les cellules sont effacées il ne reste que le numéro de devis que j'active avec mon bouton effacer
donc pour l'instant je crois que je vais laisser comme ça car je galère trop
phadeb
Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
21
8 mai 2017 à 19:18
8 mai 2017 à 19:18
J'espère que tu as fait des sauvegardes
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
8 mai 2017 à 19:50
8 mai 2017 à 19:50
Re,
mais c'est normal que sur ton fichier modèle les cellules s'effacent, c'est ton code
Range("A13:G15,E4,D17,E17,F17,D18,E18,F18,D19,E19,F19,D20,E20,F20,B22,C22,D22,E22,F22,B23,C23,D23,E23,F23,B24,C24,D24,E24,F24,B25,C25,D25,E25,F25,C27,E28").Select
Selection.ClearContents
que j'ai simplement condensé
mon dernier code efface et numérote ton compteur sur le fichier modèle qu'a l'ouverture de ce dernier
il faut compléter le code de sorte à enregistrer sous pour dupliquer le fichier sans le code VBA
je te proposerais un code demain
mais c'est normal que sur ton fichier modèle les cellules s'effacent, c'est ton code
Range("A13:G15,E4,D17,E17,F17,D18,E18,F18,D19,E19,F19,D20,E20,F20,B22,C22,D22,E22,F22,B23,C23,D23,E23,F23,B24,C24,D24,E24,F24,B25,C25,D25,E25,F25,C27,E28").Select
Selection.ClearContents
que j'ai simplement condensé
mon dernier code efface et numérote ton compteur sur le fichier modèle qu'a l'ouverture de ce dernier
il faut compléter le code de sorte à enregistrer sous pour dupliquer le fichier sans le code VBA
je te proposerais un code demain
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
8 mai 2017 à 21:39
8 mai 2017 à 21:39
Re,
J'ai un peu de temps pour me pencher sur ta demande
si je comprends bien tu veux générer des devis à partir d'un fichier modèle
alors ce qu'Excel sait faire
- Dupliquer une feuille exemple Devis soit au format XLS, XLSX ou PDF
- Nommer tes copies en fonction du numéro facture ou Nom du client
- Archiver tes devis dans un répertoire
- Effacer et changer le numéro de ta facture dans ton modèle pour devis suivant
Es ce cela que tu veux
J'ai un peu de temps pour me pencher sur ta demande
si je comprends bien tu veux générer des devis à partir d'un fichier modèle
alors ce qu'Excel sait faire
- Dupliquer une feuille exemple Devis soit au format XLS, XLSX ou PDF
- Nommer tes copies en fonction du numéro facture ou Nom du client
- Archiver tes devis dans un répertoire
- Effacer et changer le numéro de ta facture dans ton modèle pour devis suivant
Es ce cela que tu veux
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
9 mai 2017 à 08:09
9 mai 2017 à 08:09
Bonjour Mike
Oui c'est exactement cela
Avec ton premier code ça fonctionne. Je l'ai laissé en xlsm
C'est peut être pas très complet mais ça fonctionne :-)
Si tu me donnes ton mail je t'envoies le classeur pour que tu vois ce que j'ai fait mais faut pas se moquer :-) je ne suis pas du tout une pro des macros
Oui c'est exactement cela
Avec ton premier code ça fonctionne. Je l'ai laissé en xlsm
C'est peut être pas très complet mais ça fonctionne :-)
Si tu me donnes ton mail je t'envoies le classeur pour que tu vois ce que j'ai fait mais faut pas se moquer :-) je ne suis pas du tout une pro des macros
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
Modifié le 9 mai 2017 à 13:00
Modifié le 9 mai 2017 à 13:00
Re,
l'intérêt d'un forum est le partage du savoir alors on va essayer dans un premier temps de se comprendre
commence par créer un Dossier que tu nommes comme tu veux, exemple Devis.
dupliquer ton fichier Excel que tu enregistres ou colles dans le Dossier Devis que tu viens de créer, dans ce même dossier tu crées un nouveau dossier que tu nommes Archives
ouvre le fichier clic droit sur l'onglet de ta feuille/Visualiser le code/Insertion Module et colle ce code
sur ta feuille de calcul crée un simple bouton avec la barre formulaire
et renomme le tout simplement Bouton
clic droit sur le bouton/Affecter une macro et pointe sur le code Devis
tu peux également faire un clic droit sur le bouton/Modifier le texte pour changer le texte sur le bouton (on peut également utiliser le bouton activex, mais verra plus tard)
saisir sur ta feuille en B5 le nom que tu veux donner à ton devis, lorsque tu cliqueras sur le bouton un devis sera créé à partir de ta feuille et archivé automatiquement dans le dossier Archives et avoir ton modèle vierge avec un compteur en E5 +1
A toi de jouer, si tu n'y arrives pas, on échangera les fichiers
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
l'intérêt d'un forum est le partage du savoir alors on va essayer dans un premier temps de se comprendre
commence par créer un Dossier que tu nommes comme tu veux, exemple Devis.
dupliquer ton fichier Excel que tu enregistres ou colles dans le Dossier Devis que tu viens de créer, dans ce même dossier tu crées un nouveau dossier que tu nommes Archives
ouvre le fichier clic droit sur l'onglet de ta feuille/Visualiser le code/Insertion Module et colle ce code
Sub Archivage_Devis()
'---------------------------------------Création du fichier temporaire
Application.DisplayAlerts = False '-------Annulation des alertes
'---------------------Nom du fichier à créer extension xls
chemin = ActiveWorkbook.Path
nom = [B5].Value & ".xls" 'nom du nouveau classeur dans cellule et définir extension si différente d'application
ActiveSheet.Shapes.Range(Array("Bouton")).Visible = False
Sheets("Feuil1").Copy
ActiveWorkbook.SaveAs chemin & "\Archives\" & nom, FileFormat:=xlExcel8 ' ou adresse si le nom est dans une cellule Range("E2").Value & ".xls"
ActiveWindow.Close
Application.DisplayAlerts = True '-------rétablissement des alertes
'---------------------------------------Après l'archivage le fichier se réinitialise
ActiveSheet.Shapes.Range(Array("Bouton")).Visible = True
Range("E4,A13:G15,D17:F20,B22:F25,B27,F28").ClearContents
If Range("I5").Value <> 1 Then
Range("E5").Value = Range("E5").Value + 1
End If
ActiveWorkbook.Save
End Sub
sur ta feuille de calcul crée un simple bouton avec la barre formulaire
et renomme le tout simplement Bouton
clic droit sur le bouton/Affecter une macro et pointe sur le code Devis
tu peux également faire un clic droit sur le bouton/Modifier le texte pour changer le texte sur le bouton (on peut également utiliser le bouton activex, mais verra plus tard)
saisir sur ta feuille en B5 le nom que tu veux donner à ton devis, lorsque tu cliqueras sur le bouton un devis sera créé à partir de ta feuille et archivé automatiquement dans le dossier Archives et avoir ton modèle vierge avec un compteur en E5 +1
A toi de jouer, si tu n'y arrives pas, on échangera les fichiers
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
julie13300
Messages postés
23
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
9 mai 2017
9 mai 2017 à 16:53
9 mai 2017 à 16:53
Bonjour
Je voulais juste te montrer ce que j'avais fait pour que tu puisses comprendre mes erreurs car erreur il y a c'est sur.
J'ai donc suivi à la lettre ce que tu m'as mis, j'ai même changer le nom de mon bouton puisqu'il était déjà créé en mettant Bouton pour vraiment suivre ton post pas à pas.
Où ca pêche c'est quand j'arrive à "saisir sur ta feuille en B5..........
là je comprends pas pourquoi tu me dis ça, déjà en B5 je ne peux rien mettre car j'ai l'adresse de la Sté, de plus même si je mets en I5 par ex , je comprends pas car je veux pas un nom mais un chiffre.
Enfin je l'ai quand meme fait, j'ai mis en I5 "nom" pour tester, j'ai modifié dans le code B5 en I5 et j'ai mis en extension xlsm
mais ça fonctionne pas
si je regarde le code que j'ai mis dans ThisWorkbook, ainsi que dans le module que j'ai inséré à la fin il y a en rouge <code>End Sub et tout en haut surligné en jaune Sub Devis()
Il doit manquer quelque chose
en tout cas je te remercie du temps que tu m'accordes
Julie
Je voulais juste te montrer ce que j'avais fait pour que tu puisses comprendre mes erreurs car erreur il y a c'est sur.
J'ai donc suivi à la lettre ce que tu m'as mis, j'ai même changer le nom de mon bouton puisqu'il était déjà créé en mettant Bouton pour vraiment suivre ton post pas à pas.
Où ca pêche c'est quand j'arrive à "saisir sur ta feuille en B5..........
là je comprends pas pourquoi tu me dis ça, déjà en B5 je ne peux rien mettre car j'ai l'adresse de la Sté, de plus même si je mets en I5 par ex , je comprends pas car je veux pas un nom mais un chiffre.
Enfin je l'ai quand meme fait, j'ai mis en I5 "nom" pour tester, j'ai modifié dans le code B5 en I5 et j'ai mis en extension xlsm
mais ça fonctionne pas
si je regarde le code que j'ai mis dans ThisWorkbook, ainsi que dans le module que j'ai inséré à la fin il y a en rouge <code>End Sub et tout en haut surligné en jaune Sub Devis()
Il doit manquer quelque chose
en tout cas je te remercie du temps que tu m'accordes
Julie
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
9 mai 2017 à 17:06
9 mai 2017 à 17:06
Re,
anonymise le fichier s'il contient des données confidentielles, ensuite
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies soit dans une réponse
soit tu clic sur mon pseudo puis sur lui écrire un message
anonymise le fichier s'il contient des données confidentielles, ensuite
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies soit dans une réponse
soit tu clic sur mon pseudo puis sur lui écrire un message
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 106
9 mai 2017 à 17:47
9 mai 2017 à 17:47
Re,
ton lien n'est pas bon, il ne semble pas complet
ton lien n'est pas bon, il ne semble pas complet
7 mai 2017 à 20:40
C'est exactement ce que je voulais
Merci beaucoup