vba-incrementer les noms de feuilles (pour Isabelle)
8 réponses
Pierre.M
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de
retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes
besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse
d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus
bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click()
Dim model()
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm") )
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If mm <> nn Then
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm")
Else
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1
End If
Unload Me
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If x = 0 Then
ActiveSheet.Name = mm
Else
ActiveSheet.Name = mm & "_" & x
End If
Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de
retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes
besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse
d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas
(09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click()
Dim model()
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm") )
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If mm <> nn Then
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm")
Else
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1
End If
Unload Me
End Sub
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
Pierre.M
Bonsoir Isabelle,
désolé, mais ca ne fonctionne toujours pas...
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au 2eme enregistrement de meme mais incremente avec 1 au lieu de 2 (1234__1) et au 3eme la macro plante ("erreur... impossible de donner le meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi des fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
Bonsoir Isabelle,
désolé, mais ca ne fonctionne toujours pas...
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au
2eme enregistrement de meme mais incremente avec 1 au lieu de 2
(1234__1) et au 3eme la macro plante ("erreur... impossible de donner
le meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de
numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi
des fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle <iii@iii> said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm"))
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If x = 0 Then
ActiveSheet.Name = mm
Else
ActiveSheet.Name = mm & "_" & x
End If
Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de
retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes
besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse
d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus
bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click()
Dim model()
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm") )
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If mm <> nn Then
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm")
Else
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1
End If
Unload Me
End Sub
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au 2eme enregistrement de meme mais incremente avec 1 au lieu de 2 (1234__1) et au 3eme la macro plante ("erreur... impossible de donner le meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi des fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
isabelle
tu as bien une date dans la cellule Range("AK3") de la feuille active au moment de l'exécution ? d'après ton résultat tu en n'a pas.
met ton fichier sur ci-joint pour que je puisse faire un test.
isabelle
Bonsoir Isabelle,
désolé, mais ca ne fonctionne toujours pas...
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au 2eme enregistrement de meme mais incremente avec 1 au lieu de 2 (1234__1) et au 3eme la macro plante ("erreur... impossible de donner le meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi des fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
tu as bien une date dans la cellule Range("AK3") de la feuille active au moment de l'exécution ?
d'après ton résultat tu en n'a pas.
met ton fichier sur ci-joint pour que je puisse faire un test.
isabelle
Bonsoir Isabelle,
désolé, mais ca ne fonctionne toujours pas...
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au
2eme enregistrement de meme mais incremente avec 1 au lieu de 2
(1234__1) et au 3eme la macro plante ("erreur... impossible de donner le
meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de
numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi des
fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle <iii@iii> said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm"))
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If x = 0 Then
ActiveSheet.Name = mm
Else
ActiveSheet.Name = mm & "_" & x
End If
Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de
retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes
besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la
gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus
bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click()
Dim model()
For Each f In ActiveWorkbook.Sheets
nn = f.Name
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm") )
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If mm <> nn Then
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm")
Else
ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _
Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1
End If
Unload Me
End Sub
tu as bien une date dans la cellule Range("AK3") de la feuille active au moment de l'exécution ? d'après ton résultat tu en n'a pas.
met ton fichier sur ci-joint pour que je puisse faire un test.
isabelle
Bonsoir Isabelle,
désolé, mais ca ne fonctionne toujours pas...
Au 1er enregistrement j'obtiens la reference sans la date (1234_), au 2eme enregistrement de meme mais incremente avec 1 au lieu de 2 (1234__1) et au 3eme la macro plante ("erreur... impossible de donner le meme nom...").
Peut-etre qu'il serait plus simple de definir un nouveau systeme de numerotage des feuilles. Dommage celui-ci convenait bien. Comme quoi des fois c'est plus simple a la main...
Merci encore de t'investir pour moi et bonne soiree.
Pierre
On 2006-10-12 02:49:17 +0200, isabelle said:
bonjour Pierre,
dit moi si c'est mieux,
For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
isabelle
Bonsoir Isabelle,
j'ai bien repondu a ta proposition de code, bien qu'avec beaucoup de retard..., ce qui fait que tu ne l'as peut-etre pas trouvee.
En attendant j'ai essaye de bricoler des trucs pour l'adapter a mes besoins, mais ca ne fonctionne pas. Peut-etre aurais tu la gentillesse d'y jeter un oeil?
Voir donc le fil "vba-incrementer les noms des feuilles" un peu plus bas (09.10.06) pour les explications. Et voici mon code ;-(((
Private Sub go_Click() Dim model() For Each f In ActiveWorkbook.Sheets nn = f.Name mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm") ) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If mm <> nn Then ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") Else ActiveSheet.Name = Sheets("Modèle").Range("J3").Value & "_" & _ Format(Sheets("Modèle").Range("AK3"), "mm") & "_" & x + 1 End If Unload Me End Sub
Avec tous mes remerciements. Bonne soiree.
Pierre
Pierre.M
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil" c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
Pierre.M
Bonjour Isabelle,
c'est vrai, j'aurai du voir ca tout seul... Pardon. On touche le but a present. Apres modification, mon 1er enregistrement marche (5678_10), le 2eme s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur d'execution 1004, impossible de donner le meme nom..."). Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose, mais je ne sais pas l'ecrire... Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil" c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
Bonjour Isabelle,
c'est vrai, j'aurai du voir ca tout seul... Pardon.
On touche le but a present.
Apres modification, mon 1er enregistrement marche (5678_10), le 2eme
s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur
d'execution 1004, impossible de donner le meme nom...").
Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il
faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose,
mais je ne sais pas l'ecrire...
Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu
ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle <iii@iii> said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil"
c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
c'est vrai, j'aurai du voir ca tout seul... Pardon. On touche le but a present. Apres modification, mon 1er enregistrement marche (5678_10), le 2eme s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur d'execution 1004, impossible de donner le meme nom..."). Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose, mais je ne sais pas l'ecrire... Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil" c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
isabelle
bonjour Pierre,
il y avait effectivement un problème avec cette ligne : nn = f.Name je l'ai modifier par : nn = Left(f.Name,7)
For Each f In ActiveWorkbook.Sheets nn = Left(f.Name,7) mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
a+ isabelle
Bonjour Isabelle,
c'est vrai, j'aurai du voir ca tout seul... Pardon. On touche le but a present. Apres modification, mon 1er enregistrement marche (5678_10), le 2eme s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur d'execution 1004, impossible de donner le meme nom..."). Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose, mais je ne sais pas l'ecrire... Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil" c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
bonjour Pierre,
il y avait effectivement un problème avec cette ligne :
nn = f.Name
je l'ai modifier par :
nn = Left(f.Name,7)
For Each f In ActiveWorkbook.Sheets
nn = Left(f.Name,7)
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
If nn = mm Then
x = x + 1
End If
Next
Sheets("Modèle").Copy before:=Sheets(Sheets.Count)
If x = 0 Then
ActiveSheet.Name = mm
Else
ActiveSheet.Name = mm & "_" & x
End If
Unload Me
a+
isabelle
Bonjour Isabelle,
c'est vrai, j'aurai du voir ca tout seul... Pardon.
On touche le but a present.
Apres modification, mon 1er enregistrement marche (5678_10), le 2eme
s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur
d'execution 1004, impossible de donner le meme nom...").
Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il
faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose, mais
je ne sais pas l'ecrire...
Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu
ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle <iii@iii> said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil"
c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active
"Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" &
Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le
faire...)
il y avait effectivement un problème avec cette ligne : nn = f.Name je l'ai modifier par : nn = Left(f.Name,7)
For Each f In ActiveWorkbook.Sheets nn = Left(f.Name,7) mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm")) If nn = mm Then x = x + 1 End If Next Sheets("Modèle").Copy before:=Sheets(Sheets.Count) If x = 0 Then ActiveSheet.Name = mm Else ActiveSheet.Name = mm & "_" & x End If Unload Me
a+ isabelle
Bonjour Isabelle,
c'est vrai, j'aurai du voir ca tout seul... Pardon. On touche le but a present. Apres modification, mon 1er enregistrement marche (5678_10), le 2eme s'incremente bien (5678_10_1) mais au 3eme ca plante la macro ("erreur d'execution 1004, impossible de donner le meme nom..."). Je pense qu'il subsiste un petit probleme avec le x et le x+1. Il faudrait ensuite un (x+1)+1 pour le 3eme enregistrement je suppose, mais je ne sais pas l'ecrire... Puis-je te mettre une derniere fois a contribution?
Merci enormement pour ton aide qui me fait bien progresser, meme si tu ne t'en rends pas compte...;-)))
Pierre
On 2006-10-12 23:28:09 +0200, isabelle said:
re bonjour Pierre,
dans ton fichier la macro s'exécute à partir de la feuille "Acceuil" c'est cette feuille qui est active au moment de l'exécution.
actuellement dans la macro la date est trouver sur la feuille active "Acceuil"
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(ActiveSheet.Range("AK3"), "mm"))
il faudrait modifier cette commande par :
mm = CStr(Sheets("Modèle").Range("J3").Value & "_" & Format(Sheets("Modèle").Range("AK3"), "mm"))
puisque la date est sur la feuille "Modèle"
isabelle
voila:
http://cjoint.com/?kmxdRikBeG
Supprime d'abord la feuille 7890_11 (je crois que j'ai oublie de le faire...)
A+
Pierre
Pierre.M
MerciMerciMerciMerciMercisabelle!!!! Enfin je vais pouvoir finir ce truc qui m'embetais depuis un moment... Et avant le weekend en plus;-))) Merci encore. Vraiment.
Pierre
On 2006-10-13 16:52:27 +0200, isabelle said:
bonjour Pierre,
il y avait effectivement un problème avec cette ligne : nn = f.Name je l'ai modifier par : nn = Left(f.Name,7)
MerciMerciMerciMerciMercisabelle!!!!
Enfin je vais pouvoir finir ce truc qui m'embetais depuis un moment...
Et avant le weekend en plus;-)))
Merci encore. Vraiment.
Pierre
On 2006-10-13 16:52:27 +0200, isabelle <iii@iii> said:
bonjour Pierre,
il y avait effectivement un problème avec cette ligne :
nn = f.Name
je l'ai modifier par :
nn = Left(f.Name,7)
MerciMerciMerciMerciMercisabelle!!!! Enfin je vais pouvoir finir ce truc qui m'embetais depuis un moment... Et avant le weekend en plus;-))) Merci encore. Vraiment.
Pierre
On 2006-10-13 16:52:27 +0200, isabelle said:
bonjour Pierre,
il y avait effectivement un problème avec cette ligne : nn = f.Name je l'ai modifier par : nn = Left(f.Name,7)