J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me
sert à dupliquer une feuille
"Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un
userform et s'active quand je
clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé
avec le contenu de la cellule [I3] de la feuille à partir de laquelle
j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en
renommant sa copie sans passer par l'étape de création de la feuille "
Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode
est déjà existante j'ai pas de création et l'affichage d'un message
m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click()
Sheets("Modèle").Copy Before:=Sheets(2)
Sheets("Modèle (2)").Select
ActiveSheet.Name = [i3]
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
anonymousA
Bonjour,
Déjà , je ne comprends pas que tu mettes ActiveSheet.Name = [i3] à cet endroit dans le code, car la feuille active à ce moment est Modèle2 et n'est donc plus la feuille qui était active lorsque ton commandbutton a été cliqué. Je te propose le code suivant qui d'une part résoud ce problème et d'autre part controle si la valeur dans la cellule I3 de la feuille active ( feuille active au moment du click sur le commandbutton) est approprié pour un nom de feuille. Par ailleurs, ce code répond à ta demande de non création de feuille s'il existe déjà une feuille du même nom et d'avertissement par message. Enfin, je ne saurais trop te conseiller de travailler avec le codename de ta feuille Modèle plutot qu'avec son nom car un utilisateur peut changer le nom de ta feuille et dans ce cas, le code sera inefficace(en admettant que le Codename de ta feuille Modèle soit MODELE, p.e MODELE.Copy Before:=Sheets(2) plutot que Sheets("Modèle").Copy Before:=Sheets(2)).
On Error GoTo errhandler temp = [i3].Value
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = temp Exit Sub
errhandler: MsgBox "soit la a création d'une nouvelle feuille a été impossible," _ & "soit le nom souhaité pour la nouvelle feuille est inapproprié "
A+
Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me sert à dupliquer une feuille "Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un userform et s'active quand je clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé avec le contenu de la cellule [I3] de la feuille à partir de laquelle j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en renommant sa copie sans passer par l'étape de création de la feuille " Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode est déjà existante j'ai pas de création et l'affichage d'un message m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click() Sheets("Modèle").Copy Before:=Sheets(2) Sheets("Modèle (2)").Select ActiveSheet.Name = [i3] End Sub
Bonjour,
Déjà , je ne comprends pas que tu mettes ActiveSheet.Name = [i3]
à cet endroit dans le code, car la feuille active à ce moment est
Modèle2 et n'est donc plus la feuille qui était active lorsque ton
commandbutton a été cliqué.
Je te propose le code suivant qui d'une part résoud ce problème et
d'autre part controle si la valeur dans la cellule I3 de la feuille
active ( feuille active au moment du click sur le commandbutton) est
approprié pour un nom de feuille.
Par ailleurs, ce code répond à ta demande de non création de feuille
s'il existe déjà une feuille du même nom et d'avertissement par message.
Enfin, je ne saurais trop te conseiller de travailler avec le codename
de ta feuille Modèle plutot qu'avec son nom car un utilisateur peut
changer le nom de ta feuille et dans ce cas, le code sera inefficace(en
admettant que le Codename de ta feuille Modèle soit MODELE, p.e
MODELE.Copy Before:=Sheets(2) plutot que Sheets("Modèle").Copy
Before:=Sheets(2)).
On Error GoTo errhandler
temp = [i3].Value
For Each sh In ThisWorkbook.Sheets
If sh.Name = temp Then
MsgBox " il existe déjà une feuile avec ce nom"
Exit Sub
End If
Next
Sheets("Modèle").Copy Before:=Sheets(2)
ActiveSheet.Name = temp
Exit Sub
errhandler:
MsgBox "soit la a création d'une nouvelle feuille a été impossible," _
& "soit le nom souhaité pour la nouvelle feuille est inapproprié "
A+
Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me
sert à dupliquer une feuille
"Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un
userform et s'active quand je
clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé
avec le contenu de la cellule [I3] de la feuille à partir de laquelle
j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en
renommant sa copie sans passer par l'étape de création de la feuille "
Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode
est déjà existante j'ai pas de création et l'affichage d'un message
m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click()
Sheets("Modèle").Copy Before:=Sheets(2)
Sheets("Modèle (2)").Select
ActiveSheet.Name = [i3]
End Sub
Déjà , je ne comprends pas que tu mettes ActiveSheet.Name = [i3] à cet endroit dans le code, car la feuille active à ce moment est Modèle2 et n'est donc plus la feuille qui était active lorsque ton commandbutton a été cliqué. Je te propose le code suivant qui d'une part résoud ce problème et d'autre part controle si la valeur dans la cellule I3 de la feuille active ( feuille active au moment du click sur le commandbutton) est approprié pour un nom de feuille. Par ailleurs, ce code répond à ta demande de non création de feuille s'il existe déjà une feuille du même nom et d'avertissement par message. Enfin, je ne saurais trop te conseiller de travailler avec le codename de ta feuille Modèle plutot qu'avec son nom car un utilisateur peut changer le nom de ta feuille et dans ce cas, le code sera inefficace(en admettant que le Codename de ta feuille Modèle soit MODELE, p.e MODELE.Copy Before:=Sheets(2) plutot que Sheets("Modèle").Copy Before:=Sheets(2)).
On Error GoTo errhandler temp = [i3].Value
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = temp Exit Sub
errhandler: MsgBox "soit la a création d'une nouvelle feuille a été impossible," _ & "soit le nom souhaité pour la nouvelle feuille est inapproprié "
A+
Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me sert à dupliquer une feuille "Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un userform et s'active quand je clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé avec le contenu de la cellule [I3] de la feuille à partir de laquelle j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en renommant sa copie sans passer par l'étape de création de la feuille " Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode est déjà existante j'ai pas de création et l'affichage d'un message m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click() Sheets("Modèle").Copy Before:=Sheets(2) Sheets("Modèle (2)").Select ActiveSheet.Name = [i3] End Sub
Excel...lent
Bonjour anonymousA,
Tout d'abord merci de t'interresser à ma demande.
Alors si j'ai bien compris l'histoire du codename, ton code adapté à mon classeur ça donne ce qui a à la fin de ma réponse.
Sinon ce code est le code d'un des bouton de mon userform ( son nom : ListeDeroulante ). L'userform est appelé depuis une page "Accueil" sur laquelle la cellule i10 possède le nom que doit prendre la copie de la feuille "Modèle" ( codename = feuil2 ). Cette cellule prend le nom après choix dans une listeBox de l'userform.
Tout fonctionne très bien sauf ce que je voulais éviter, c.a.d que lorsque je veux créer une copie avec un nom déjà existant j'ai bien la msgbox qui s'active mais malheureusement aussi cela me crée quand même la copie du "Modèle" avec comme nom "Modèle (2)" c'est précisémment ce que je voudrais éviter. Je souhaiterais que dans ce cas on s'arrête à la msgbax et on revienne à mon userform.
As-tu une solution ?
Merci
Private Sub CommandButton2_Click() On Error GoTo errhandler temp = [i10].Value
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next DEPROT_CLASS Feuil2.Copy Before:=Sheets(2) 'Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = temp PROT_CLASS ListeDeroulante.Hide Exit Sub
errhandler: MsgBox "soit la création d'une nouvelle feuille a été impossible," _ & "soit le nom souhaité pour la nouvelle feuille est inapproprié " ListeDeroulante.Hide End Sub
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Bonjour anonymousA,
Tout d'abord merci de t'interresser à ma demande.
Alors si j'ai bien compris l'histoire du codename, ton code adapté à mon
classeur ça donne ce qui a à la fin
de ma réponse.
Sinon ce code est le code d'un des bouton de mon userform ( son nom :
ListeDeroulante ). L'userform est
appelé depuis une page "Accueil" sur laquelle la cellule i10 possède le nom
que doit prendre la copie de la feuille "Modèle" ( codename = feuil2 ).
Cette cellule prend le nom après choix dans une listeBox de l'userform.
Tout fonctionne très bien sauf ce que je voulais éviter, c.a.d que lorsque
je veux créer une copie avec un nom déjà existant j'ai bien la msgbox qui
s'active mais malheureusement aussi cela me crée quand même la copie du
"Modèle" avec comme nom "Modèle (2)" c'est précisémment ce que je voudrais
éviter. Je souhaiterais que dans ce cas on s'arrête à la msgbax et on
revienne à mon userform.
As-tu une solution ?
Merci
Private Sub CommandButton2_Click()
On Error GoTo errhandler
temp = [i10].Value
For Each sh In ThisWorkbook.Sheets
If sh.Name = temp Then
MsgBox " il existe déjà une feuile avec ce nom"
Exit Sub
End If
Next
DEPROT_CLASS
Feuil2.Copy Before:=Sheets(2)
'Sheets("Modèle").Copy Before:=Sheets(2)
ActiveSheet.Name = temp
PROT_CLASS
ListeDeroulante.Hide
Exit Sub
errhandler:
MsgBox "soit la création d'une nouvelle feuille a été impossible," _
& "soit le nom souhaité pour la nouvelle feuille est inapproprié "
ListeDeroulante.Hide
End Sub
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Alors si j'ai bien compris l'histoire du codename, ton code adapté à mon classeur ça donne ce qui a à la fin de ma réponse.
Sinon ce code est le code d'un des bouton de mon userform ( son nom : ListeDeroulante ). L'userform est appelé depuis une page "Accueil" sur laquelle la cellule i10 possède le nom que doit prendre la copie de la feuille "Modèle" ( codename = feuil2 ). Cette cellule prend le nom après choix dans une listeBox de l'userform.
Tout fonctionne très bien sauf ce que je voulais éviter, c.a.d que lorsque je veux créer une copie avec un nom déjà existant j'ai bien la msgbox qui s'active mais malheureusement aussi cela me crée quand même la copie du "Modèle" avec comme nom "Modèle (2)" c'est précisémment ce que je voudrais éviter. Je souhaiterais que dans ce cas on s'arrête à la msgbax et on revienne à mon userform.
As-tu une solution ?
Merci
Private Sub CommandButton2_Click() On Error GoTo errhandler temp = [i10].Value
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next DEPROT_CLASS Feuil2.Copy Before:=Sheets(2) 'Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = temp PROT_CLASS ListeDeroulante.Hide Exit Sub
errhandler: MsgBox "soit la création d'une nouvelle feuille a été impossible," _ & "soit le nom souhaité pour la nouvelle feuille est inapproprié " ListeDeroulante.Hide End Sub
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Excel...lent
Re anonymousA,
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se trouvant à la fin du code et bien sur au passage j'ai donc comme je te le disais création quand même de la copie "Modèle (2) ". Comme si la macro sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à "temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Re anonymousA,
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la
bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets
If sh.Name = temp Then
MsgBox " il existe déjà une feuile avec ce nom"
Exit Sub
End If
Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se
trouvant à la fin du code et bien sur au passage j'ai donc comme je te le
disais création quand même de la copie "Modèle (2) ". Comme si la macro
sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment
au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la
cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à
"temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se trouvant à la fin du code et bien sur au passage j'ai donc comme je te le disais création quand même de la copie "Modèle (2) ". Comme si la macro sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à "temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
michdenis
Bonjour Excellent,
Ceci devrait être suffisant :
'Variable déclarée dans le haut du module formulaire Dim F As String '---------------- Private Sub CommandButton2_Click() On Error Resume Next Application.EnableEvents = False Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = F Sheets(F).Select Application.EnableEvents = True End Sub '---------------- Private Sub UserForm_Initialize() F = ActiveSheet.Range("i3") End Sub '----------------
Salutations!
"Excel...lent" a écrit dans le message de news: Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me sert à dupliquer une feuille "Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un userform et s'active quand je clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé avec le contenu de la cellule [I3] de la feuille à partir de laquelle j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en renommant sa copie sans passer par l'étape de création de la feuille " Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode est déjà existante j'ai pas de création et l'affichage d'un message m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click() Sheets("Modèle").Copy Before:=Sheets(2) Sheets("Modèle (2)").Select ActiveSheet.Name = [i3] End Sub
Bonjour Excellent,
Ceci devrait être suffisant :
'Variable déclarée dans le haut du module formulaire
Dim F As String
'----------------
Private Sub CommandButton2_Click()
On Error Resume Next
Application.EnableEvents = False
Sheets("Modèle").Copy Before:=Sheets(2)
ActiveSheet.Name = F
Sheets(F).Select
Application.EnableEvents = True
End Sub
'----------------
Private Sub UserForm_Initialize()
F = ActiveSheet.Range("i3")
End Sub
'----------------
Salutations!
"Excel...lent" <vpco@free.fr> a écrit dans le message de news: O3fGfaG7FHA.3588@TK2MSFTNGP15.phx.gbl...
Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me
sert à dupliquer une feuille
"Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un
userform et s'active quand je
clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé
avec le contenu de la cellule [I3] de la feuille à partir de laquelle
j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en
renommant sa copie sans passer par l'étape de création de la feuille "
Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode
est déjà existante j'ai pas de création et l'affichage d'un message
m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click()
Sheets("Modèle").Copy Before:=Sheets(2)
Sheets("Modèle (2)").Select
ActiveSheet.Name = [i3]
End Sub
'Variable déclarée dans le haut du module formulaire Dim F As String '---------------- Private Sub CommandButton2_Click() On Error Resume Next Application.EnableEvents = False Sheets("Modèle").Copy Before:=Sheets(2) ActiveSheet.Name = F Sheets(F).Select Application.EnableEvents = True End Sub '---------------- Private Sub UserForm_Initialize() F = ActiveSheet.Range("i3") End Sub '----------------
Salutations!
"Excel...lent" a écrit dans le message de news: Bonsoir la communaté,
J'ai un code (voir à la fin de ce post ) dans un de mes classeurs qui me sert à dupliquer une feuille "Modèle" et renommer la nouvelle feuille ainsi crée . Ce code est dans un userform et s'active quand je clique sur un des boutons de l'userform. Le "Modèle" dupliqué est renommé avec le contenu de la cellule [I3] de la feuille à partir de laquelle j'appelle l'userform.
J'aimerais savoir s'il est possible de dupliquer le "Modèle" tout en renommant sa copie sans passer par l'étape de création de la feuille " Modèle (2) " ?
Comment puis-je faire pour que si la feuille que je crée par cette méthode est déjà existante j'ai pas de création et l'affichage d'un message m'informant que la page existe déja ?
Merci pour votre aide.
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Private Sub CommandButton2_Click() Sheets("Modèle").Copy Before:=Sheets(2) Sheets("Modèle (2)").Select ActiveSheet.Name = [i3] End Sub
anonymousA
Dans le principe, tu as tout compris. La 1ere partie du code teste si il existe déjà une feuille du même nom que ce qui se trouve dans la variable temp, variable qui a recu la valeur de la cellule I3 de la feuille active. Je ne vois aucune raison pour que ce code ne fonctionne pas et soit "sauté" car il est vraiment tout ce qu'il y a de + simple. Si c'est le cas, et franchement , je ne vois vraiment pas pourquoi tente de mettre en commentaires le on error et regarde si la proc se plante.
A+
Re anonymousA,
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se trouvant à la fin du code et bien sur au passage j'ai donc comme je te le disais création quand même de la copie "Modèle (2) ". Comme si la macro sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à "temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Dans le principe, tu as tout compris. La 1ere partie du code teste si il
existe déjà une feuille du même nom que ce qui se trouve dans la
variable temp, variable qui a recu la valeur de la cellule I3 de la
feuille active.
Je ne vois aucune raison pour que ce code ne fonctionne pas et soit
"sauté" car il est vraiment tout ce qu'il y a de + simple. Si c'est le
cas, et franchement , je ne vois vraiment pas pourquoi tente de mettre
en commentaires le on error et regarde si la proc se plante.
A+
Re anonymousA,
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la
bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets
If sh.Name = temp Then
MsgBox " il existe déjà une feuile avec ce nom"
Exit Sub
End If
Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se
trouvant à la fin du code et bien sur au passage j'ai donc comme je te le
disais création quand même de la copie "Modèle (2) ". Comme si la macro
sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment
au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la
cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à
"temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Dans le principe, tu as tout compris. La 1ere partie du code teste si il existe déjà une feuille du même nom que ce qui se trouve dans la variable temp, variable qui a recu la valeur de la cellule I3 de la feuille active. Je ne vois aucune raison pour que ce code ne fonctionne pas et soit "sauté" car il est vraiment tout ce qu'il y a de + simple. Si c'est le cas, et franchement , je ne vois vraiment pas pourquoi tente de mettre en commentaires le on error et regarde si la proc se plante.
A+
Re anonymousA,
Excuse-moi une petite correction sur ma précédente réponse.
En fait quand je tente de créer une copie déjà existante je n'ais pas la bonne MsgBox. Au lieu d'avoir celle qui se trouve dans la boucle
For Each sh In ThisWorkbook.Sheets If sh.Name = temp Then MsgBox " il existe déjà une feuile avec ce nom" Exit Sub End If Next
Et puis sortir du code en fait c'est l'autre MsgBox que j'ai celle se trouvant à la fin du code et bien sur au passage j'ai donc comme je te le disais création quand même de la copie "Modèle (2) ". Comme si la macro sautait la boucle du code.
Ce qui me paraît pas logique puisque si j'ai bien compris le code notamment au niveau de cette boucle :
1 - tu déclares une variable "temp" à laquelle tu affectes le contenu de la cellule [i10].
2 - Puis dans la boucle, si une page de mon classeur (sh.name) est égale à "temp" on a MsgBox puis sortie code sans création
Ou est ce que je me suis planté ?
Merci encore
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Excel...lent
Bonsoir à tous,
Merci à vous pour vos coups de main, je vais essayer tout ça et si j'ai un soucis je reviendrais quemander votre aide si préciseuse...
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm
Bonsoir à tous,
Merci à vous pour vos coups de main, je vais essayer tout ça et si j'ai un
soucis je reviendrais quemander votre aide si préciseuse...
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Merci à vous pour vos coups de main, je vais essayer tout ça et si j'ai un soucis je reviendrais quemander votre aide si préciseuse...
Cordialement.
Excel...lent
N'oubliez pas votre lampe à huile et votre casque et descendez dans ces mines d'or pour des explorations fructueuses : http://www.excelabo.net/ http://frederic.sigonneau.free.fr http://dj.joss.free.fr/ http://jacxl.free.fr http://www.cathyastuce.com/excel.htm