Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incrémenter le nom d'une feuille

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 !

Florian53

XLDnaute Impliqué
Bonjour à tous,

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

MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)

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.
 
Re : Incrémenter le nom d'une feuille

Bonjour

Florian53
PREAMBULE: évites les contacts en MP à l'avenir, stp . Merci.

Code:
Sub AutoSaveIncremental()
Dim MyName As String, MyNumber As Byte
Dim NomFichier$, nf$, n&
répertoire = ThisWorkbook.Path
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
If Val(Right(MyName, 3)) = 0 Then
MyName = MyName & "001"
Else
nf = Dir(répertoire & "\" & _
NyName & "???" & "*.xls")
n = 0
Do While nf <> ""
nf = Dir
n = n + 1
Loop
MyNumber = Val(Right(MyName, 3))
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) & Format(MyNumber + n, "000")
End If
ThisWorkbook.SaveAs MyName
End Sub
 
Dernière édition:
Re : Incrémenter le nom d'une feuille

Merci d'avoir répondu et désolé de t'avoir contacté par MP je pensais nullement que cal ne se faisait pas.

Dans le script dois je remplacer "Nomdefichier" par le mien en l'occurrence "demande d'achat"

Par quoi je dois remplacer "répertoire" j'ai essayé de mettre ceci mais cela ne fonctionne pas :

nf = Dir(C:\Documents and Settings\Florian\Mes documents & "\" & _


Car j'ai essayé de le copier tel quel il me met la même erreur il ne se souvient pas quand je le rallume a combien il s'est arrêté.

Merci
 
Dernière édition:
Re : Incrémenter le nom d'une feuille

Re

Tu peux retirer cette ligne (je viens de le faire dans mon précédent message)
(résidu d'un copier/coller)

Il faut tester dans un dossier qui au départ ne contient que le seul fichier avec cette macro.

PS: Si tu avais lu Lien supprimé, tu aurais su qu'il n'est pas conseillé d'envoyer ses questions en MP.
 
Re : Incrémenter le nom d'une feuille

Donc je dois remplacer "répertoire" par la destination de mon dossier?

j'ai essayé comme ceci mais cela ne fonctionne pas:

Sub AutoSaveIncremental()
Dim MyName As String, MyNumber As Byte
C:\Documents and Settings\Florian\Mes documents\essai = ThisWorkbook.Path
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
If Val(Right(MyName, 3)) = 0 Then
MyName = MyName & "001"
Else
nf = Dir(C:\Documents and Settings\Florian\Mes documents\essai & "\" & _
NyName & "???" & "*.xls")
n = 0
Do While nf <> ""
nf = Dir
n = n + 1
Loop
MyNumber = Val(Right(MyName, 3))
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) & Format(MyNumber + n, "000")
End If
ThisWorkbook.SaveAs MyName
End Sub
 
Re : Incrémenter le nom d'une feuille

Re

A tester

Code:
Sub AutoSaveIncremental()
Dim MyName As String, MyNumber As Byte
Dim NomFichier$, nf$, n&
répertoire = _
"C:\Documents and Settings\Florian\Mes documents\essai"
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
If Val(Right(MyName, 3)) = 0 Then
MyName = MyName & "001"
Else
nf = Dir(répertoire & "\" & _
NyName & "???" & "*.xls")
n = 0
Do While nf <> ""
nf = Dir
n = n + 1
Loop
MyNumber = Val(Right(MyName, 3))
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) & Format(MyNumber + n, "000")
End If
ThisWorkbook.SaveAs MyName
End Sub
 
Re : Incrémenter le nom d'une feuille

J'ai essayé et il enregistre mais vas 2 en 2 il passe de "demande d'achat001" à "003", "005"

ET quand je ferme "demande d'achat" et que je le rallume et que je recommence il continue de commencer à "001".
 
Re : Incrémenter le nom d'une feuille

Re

Il faut bien lite ce que j'écris

C'est ce que j'ai fais le dossier qui contient l'original "demande d'achat" est situé ici:

- C:\Documents and Settings\Florian\Mes documents\essai

et par défaut de excel il enregistre systématiquement dans :

- C:\Documents and Settings\Florian\Mes documents

Dans le dossier essai il ne contient que le fichier orignal.
 
Re : Incrémenter le nom d'une feuille

Re


Essaye comme ceci

Code:
[FONT=Courier New][COLOR=darkblue]Sub[/COLOR] AutoSaveIncremental()
[COLOR=darkblue]Dim[/COLOR] MyName [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR], MyNumber [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Byte[/COLOR]
[COLOR=darkblue]Dim[/COLOR] NomFichier$, nf$, n&
répertoire = _
"C:\Documents and Settings\Florian\Mes documents\essai[/FONT][FONT=Courier New]"
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
[COLOR=darkblue]If[/COLOR] Val(Right(MyName, 3)) = 0 [COLOR=darkblue]Then[/COLOR]
MyName = MyName & "001"
[COLOR=darkblue]Else[/COLOR]
nf = Dir(répertoire & "\" & _
NyName & "???" & "*.xls")
n = 0
[COLOR=darkblue]Do[/COLOR] [COLOR=darkblue]While[/COLOR] nf <> ""
nf = Dir
n = n + 1
[COLOR=darkblue]Loop[/COLOR]
MyNumber = Val(Right(MyName, 3))
MyName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7) & Format(MyNumber + n, "000")
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
ThisWorkbook.SaveCopyAs MyName & ".xls"
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR][/FONT]
 
Re : Incrémenter le nom d'une feuille

Cela ne marche sa n'incrémente pas.

j'ai l'impression qu'il ne manque pas grand chose juste une mémorisation du dernier numéro qui a était attribué pour qu'une fois relancer il enchaine avec les autres numéro.
 
Re : Incrémenter le nom d'une feuille

Cela ne marche sa n'incrémente pas.

j'ai l'impression qu'il ne manque pas grand chose juste une mémorisation du dernier numéro qui a était attribué pour qu'une fois relancer il enchaine avec les autres numéro.

J'ai essayé de regarder le code et réussi a éviter que cela incrémente de 2 mais plutôt de 1.

Mais toujours pas a mémoriser a quelle numéro mes demande d'achat se sont arrête
 
Re : Incrémenter le nom d'une feuille

Re



J'ai relu ton premier message

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

Tu veux dire le nom du classeur ou de la feuille ?

Car plus bas tu dis

Le problème que je rencontre est qu'une fois utilisé il me créer bien le classeur "demande d'achat001"
 
- 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

Discussions similaires

Réponses
8
Affichages
1 K
O
Réponses
5
Affichages
2 K
C
Réponses
8
Affichages
2 K
Genii
G
B
Réponses
9
Affichages
2 K
bodiallo
B
Y
Réponses
2
Affichages
1 K
ynx69
Y
R
Réponses
2
Affichages
2 K
R
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…