Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je voudrais réaliser un classeur de nom "demande d'achat":
Avec une macro intégrée dans ce classeur qui sert à incrémenter le nom de la feuille par exemple:
- demande d'achat001
- demande d'achat002
- demande d'achat003
Le script qui correspond à ça est le suivant:
Sub AutoSaveIncremental()
Dim MyName As String, MyNumber As Byte
If Val(Right(MyName, 3)) = 0 Then
MyName = MyName & "001"
Else
MyNumber = Val(Right(MyName, 3))
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) & Format(MyNumber + 1, "000")
End If
ThisWorkbook.SaveAs MyName
End Sub
Le problème que je rencontre est qu'une fois utilisé il me créer bien le classeur "demande d'achat001" mais si je le ferme et que je réutilise la macro il me marque :
Un fichier nommé "demande d'achat001.xls" existe déjà a cet emplacement. Voulez vous le remplacer?
Avec 3 trois choix possible:
- Oui, dans ce cas il le remplace
- Non, dans ce cas il me met erreur d'exécution
- Annulé
Je voudrais savoir si il serait possible qu'il mémorise à la valeur ou l'incrémentation c'est arrêté pour qu'il reprenne une fois que l'on lui demande.
Donc pour incrémenter le nom d'une feuille
1) créer un classeur vierge avec 3 feuilles par exemple
2) nomme la première feuille: demande d'achat001
3) sélectionne cette feuille
4) lance la macro ci-dessous
J'ai remarqué qu'il y avait beaucoup de questions sur la numérotation de document et le suivit de ces mêmes numéros.
Voici ce que j'ai fait : Macro complémentaire qui gère les numérotations
Codifié de 1 à xxx, vous pouvez gérer jusqu'à 65536 numéros différents pour les versions antérieures à excel 2007.
Dans le classeur exemple
une feuille d'initialisation de 5 n° différents avec un bouton.
la macro lance 2 macros de la macro complémentaire Init_numbers Code, Format, Valeur d'initialisation Save_numbers
Une feuille d'utilisation avec 2 formules
=Get_Number_Last(Code) ' Qui donne le dernier numéro utilisé
=Get_Number_Next(Code) ' Qui donne le prochain numéro
un Bouton qui lance 2 macro de la macro complémentaire Maj_numbers Code, Nouvelle valeur ' pour mettre à jour le numero Save_numbers ' Pour sauvegarder les numéros (à la fermeture par exemple)
je n'ai pas voulu faire une sauvegarde automatique pour laisser libre cette action en cas de non validation de document par exemple.
Installation de la macro (après copie des fichiers joints):
Menu outils / Macros Complémentaires
Bouton parcourir, chercher le fichier et le valider
Installation pour utilisation VBA (dans la fenetre VBA)
Menu Outils / Références
Cocher numeroter
J'ai remarqué qu'il y avait beaucoup de questions sur la numérotation de document et le suivit de ces mêmes numéros.
Voici ce que j'ai fait : Macro complémentaire qui gère les numérotations
Codifié de 1 à xxx, vous pouvez gérer jusqu'à 65536 numéros différents pour les versions antérieures à excel 2007.
Dans le classeur exemple
une feuille d'initialisation de 5 n° différents avec un bouton.
la macro lance 2 macros de la macro complémentaire Init_numbers Code, Format, Valeur d'initialisation Save_numbers
Une feuille d'utilisation avec 2 formules
=Get_Number_Last(Code) ' Qui donne le dernier numéro utilisé
=Get_Number_Next(Code) ' Qui donne le prochain numéro
un Bouton qui lance 2 macro de la macro complémentaire Maj_numbers Code, Nouvelle valeur ' pour mettre à jour le numero Save_numbers ' Pour sauvegarder les numéros (à la fermeture par exemple)
je n'ai pas voulu faire une sauvegarde automatique pour laisser libre cette action en cas de non validation de document par exemple.
Installation de la macro (après copie des fichiers joints):
Menu outils / Macros Complémentaires
Bouton parcourir, chercher le fichier et le valider
Installation pour utilisation VBA (dans la fenetre VBA)
Menu Outils / Références
Cocher numeroter
Pour lier la macro complementaire :
en Haut à gauche le bouton Officel (Rond)
en bas un bouton : options excel
Choisir à gauche : Complément
Enbas de la fenetre : bouton atteinde
chercher à l'aide du bouton parcourir la macro complementaire fournie
valider
ensuite :
dans le VBA : Menu outils / Reference
Trouver numeroter et le cocher, valider
(une fois que c'est fait, tu vois dans la fenetre de gauche sous la liste de tes modules, une liste de références apparaitre)
ensuite ecrire une macro d'initialisation (ne servira qu'une seule fois ou à chaque remise à zero du compteur
Code:
Sub init()
init_numbers [B][COLOR="Red"]10[/COLOR][/B], "", "0"
End Sub
en rouge : le code tres important
lancer la macro : le triangle dans la barre d'icone
dans ta macro :
Code:
Sub AutoSaveIncremental()
Dim MyName As String, [B]MyNumber As Variant[/B]
' Récupération du prochain numéro
[B]MyNumber = get_number_next([COLOR="red"][B]10[/B][/COLOR])[/B]
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) [B]& Format(MyNumber, "000"[/B])
' Mise à jour de la numerotation
maj_numbers 10,myNumber
' Sauvegarde
save_numbers
ThisWorkbook.SaveAs MyName
End Sub
En gras les modif à apporter
ps: si tu veux le dernier n° pour reouvrir le dernier fichier enregistré
Mynumber = get_number_last(10)
Mon fichier fonction sur 2007, donc pas de problemes (et je viens de tester)
Merci à toi cela fonctionne bien, par contre il coupe le nom de mon classeur:
l'original s'appelle "Demande d'achat"
et dés que je commence à incrémenter il me met "demande d'ac001' demande d'ac002"
J'ai essayé de regarder dans le script pour voir ce qui gérait la longueur du nom de classeur mais j'ai pas vu.
En fait je voulais savoir pourquoi il me simplifier le nom de mon classeur lors de l'enregistrement il passe de "demande d'achat" à "demande d'ac001"
Comme si il y avait une longueur de caractère a respecter avant que les chiffres se mettre au bout.
Je voudrais savoir aussi si il serait possible qu'une fois l'incrémenation elle me renvoie le lien hypertexte de la page enregistré (par exemple demande d'ac001") sur une cellule?
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD