je vous souhaite tout d’abord de bonnes fêtes de fin d’année
mon sujet concerne l’incrémentation d’un numéro de devis
dans mon fichier Excel joint j’utilise cette macro qui m’a été proposée par les membres du forum et qui fonctionne très bien. grâce à cette macro, dans mon « formulaire devis » le numéro de devis s’incrémente automatiquement et doit repasser à « 1 » à chaque changement d’année, le numéro de devis est sous la forme « MA-LUC-21-0001 »
par contre je me suis rendu compte que je devais faire le changement manuellement pour le premier devis de l’année.
je m’explique:
admettons que sur mon fichier excel « formulaire devis » le dernier numéro de devis de l’année 2021 soit le « MA-LUC-21-0256 »; lorsque je vais ouvrir mon « formulaire devis » pour la première fois en 2022, il affichera le dernier numéro « MA-LUC-21-0256 » et non « MA-LUC-22-0001 ». donc lorsque je vais lancer la macro, le premier devis de l’année 2022 sera enregistré avec le numéro « MA-LUC-21-0256 »
d’où ma question :
peut-on faire en sorte que lorsque j’ouvre mon « formulaire devis » pour la première fois en 2022, la date du jour soit prise en compte pour mettre à jour le numéro de devis et afficher « MA-LUC-22-0001 »
est-ce possible ???
j’espère que mes explications ont été claires
merci pour vos retours test.xlsm (19,5 Ko)
Testes en mettant l’année 2020 en Cellule C2 onglet « données » puis cliques sur le bouton onglet « devis » le numéro se mets bien ainsi :
« MA-LUC-21-0001 »
Signe que dés que l’année du jour est celle de la cellule C2+1 celle-ci est remplacée par la nouvelle année et le compteur en cellule E1 redémarre à la valeur initiale : 1
Sinon c’est le fonctionnement normal qui s’effectue
Donc au premier jour de 2022 c’est cette particularité qui sera la règle
merci pour ton retour rapide
je viens de tester mais je ne vois pas la différence
lorsque je mets la date 2020 dans la cellule C2 de l’onglet « données », je bascule ensuite sur l’onglet « devis » il me faut appuyer sur le bouton « nouveau devis » pour que le numéro de devis devienne « MA-LUC-21-0001 »
est-ce que je fais la manip correctement ?
Oui c est tout à fait cela
Cela ne te convient pas ?
"MA-LUC-21-0001 » est bien là preuve de la reinitialisation du compteur au changement d année
N est ce pas ce que tu souhaites ?
c’est bien ce que je souhaite.
il faut en fait savoir que lorsque j’appuis sur le bouton « nouveau devis » dans mon formulaire, la macro complète enregistre les données du devis dans un fichier excel, enregistre également le devis au format PDF et imprime ce même devis. Pour finir la macro supprime les données de mon formulaire et incrémente le numéro de devis. j’ai donc ensuite un formulaire vierge avec un nouveau numéro.
C’est pour cette raison que si j’ouvre à nouveau le formulaire en 2022 son numéro sera sous la forme « MA-LUC-21-0256 » (dernier devis de 2021), en effet le numéro n’aura pas été incrémenté en tenant compte de l’année, puisque le dernier lancement de la macro aura été fait en 2021.
Comme je l’explique dans mon premier message, en appuyant sur le bouton « nouveau devis » le numéro du premier devis de 2022 sera « MA-LUC-21-0256 » et ensuite pour le deuxième devis j’aurais effectivement comme numéro de devis le « MA-LUC-22-0001 ».
je pense que c’est la macro qui n’est pas construite correctement
existe-t-il des solutions ?
comme je l’expliquais dans mon premier message
« peut-on faire en sorte que lorsque j’ouvre mon « formulaire devis » pour la première fois en 2022, la date du jour soit prise en compte pour mettre à jour automatiquement le numéro de devis et afficher « MA-LUC-22-0001 » » dans ce cas sans avoir à lancer la macro ???
faut-il créer une seconde macro ?
mes compétences ne me permettent pas de répondre à ces questions
« la date du jour soit prise en compte »
En d autres termes cela correspond concrètement à quoi dans le fichier ?
Cette mise à jour souhaitée doit se traduire de quelle manière
Merci de me dire
le date du jour correspond à la date de création du devis
en l’occurrence si un devis est fait le 01/01/2022 et si c’est le premier devis de l’année, la mise à jour consiste à ce que son numéro devienne automatiquement « MA-LUC-22-0001 »
de quelle façon y arriver ??
Bonjour
Ce n est pas ce que je demande
Quand tu souhaites qu à l ouverture du fichier le 1° Janvier 2022 celui-ci ait basculé avec une numérotation réinitialisée à la nouvelle année qu attends tu de voir au premier coup d oeil dans tes onglets au niveau des données comme signe de ce basculement attendu ?
Car j ai intégré celui-ci dans ton bouton qui tu l as constaté produit bien la référence facture dans cet esprit mais cela ne te convient pas
Que te faut il de plus à l ouverture quelles données dans quelles cellules dans quelles onglet pour enfin répondre à ton attente
J avoue être perplexe et dans l incompréhension
Merci de m éclairer
je suis désolé, je vois que mes explications ne sont pas très claires et je ne sais pas comment les formuler autrement dans un langage informatique
je pense au final qu’il me faut deux boutons, un premier « nouveau devis » pour l’incrémentation d’un nouveau numéro de devis et un second « enregistrement devis » qui me permette d’enregistrer les données des cellules de mon formulaire devis dans un tableau excel.
peut-on dans ces conditions, grâce à une macro, ne faire apparaître qu’un bouton « nouveau devis » et lorsque on appui dessus faire apparaître « enregistrement devis » et masquer « nouveau devis » et inversement.
tant que le bouton « nouveau devis » n’est pas activé le formulaire devis est verrouillé
en pièce jointe un fichier qui peut peut-être éclairer mes explications devis test.xlsm (23,4 Ko)
Je te propose cette évolution dans ton dernier fichier transmis
J’ai inclus dans ta macro « enregistrement » en tout début la réinitialisation de la numérotation lors du changement d’année si celui-ci est détecté le jour de son exécution
Ainsi avec le traitement j’ai mis ceci dans les onglets :
j’ai exécuté la macro « enregistrement » que j’ai arrêté au moyen d’un point d’arrêt juste après mes lignes de code de réinitialisation de la numérotation pour le changement d’année :
Celui_ci a été mis à jour alors que le traitement de la macro « enregistrement » n’a pas été encore effectué seule la partie des lignes de code de la réinitialisation de la numérotation suite au changement d’année a été exécutée ni plus ni moins
Pour moi cela doit te convenir ou je ne comprends rien à tes attentes
merci de t’arracher les cheveux pour moi
Ta proposition fonctionne parfaitement dans le fichier joint, c’est exactement ce que je souhaite
par contre lorsque j’insère les lignes de macro dans ma macro complète je n’ai pas le même résultat
et vues mes connaissances en VBA, seul je n’y arriverai jamais, à moins d’un miracle
voici ma macro complète, ça fait un peu usine à gaz !!
peux-tu faire quelque chose ?
« par contre lorsque j’insère les lignes de macro dans ma macro complète je n’ai pas le même résultat »
Quelles lignes de macro uniquement les miennes pour réinitialiser la numérotation ?
Cette partie est totalement indépendant et doit être placées en tête ce qui semble le cas
Elles n’ont aucune action hors mis onglet « données » cellule C2 cellule E2 onglet « devis » cellule F3 si une nouvelle année est détectée
Pour le reste si tu as des résultats non conformes ce n’est pas ces lignes de code qui peuvent en être à l’origine
Quand tu dis je n’ai pas le même résultat peux tu préciser les différences obtenues
oui, lorsque j’insère uniquement tes lignes de macro, mais ce ne sont pas elles qui sont en cause puisque ça fonctionne parfaitement avec le fichier que tu m’as envoyé
dans mon formulaire devis lorsque je mets « 2020 » dans la cellule C2 de l’onglet « données » et que j’appuis sur le bouton « enregistrement devis » de l’onglet « devis » de ma macro complète, j’ai un bug sur cette ligne
je crois que j’ai trouvé l’erreur, dans ma macro je protège chaque feuille après chaque action et c’est la cause de l’erreur. l’onglet « devis » était protégé c’est pour cette raison que l’action n’a pas pu s’exécuter
Parfait
Il suffit d’enlever la protection avant ma partie de code puis la remettre
En tout début de la macro tu effectues dans le code une déprotection de l’onglet « données »
Il faut réaliser cette même opération avec ces mêmes lignes en changeant le nom données par devis pour déprotéger l’onglet « devis »
Réalises la même opération sur les lignes de code qui suivent qui remettent la protection pour l’onglet « données »
Cela devrait normalement résoudre la difficulté
les différents essais sont concluants, je te remercie FFO
j’apprécie le fait de mettre tes compétences et connaissances au service des autres
à bientôt pour d’autres sujets