Renommer un onlget via VBA
Résolu
Behippie
Messages postés
14
Statut
Membre
-
Behippie Messages postés 14 Statut Membre -
Behippie Messages postés 14 Statut Membre -
Bonjour à tous,
Voici mon problème:
J'ai créer une macro qui copie mon onglet "Modèle" et qui le renomme d'après les valeurs des cellules E2 et E3 se trouvant dans l'onglet "Données" (ex.: cellule E3 = "Sacha" cellule E2 = "TOUILLE").
En claire ça donne ceci :
Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
' Crée une copie du modèle
Sheets("Modèle (2)").Name = Sheets("Données").Range("E3").Text + " " + Sheets("Données").Range
("E2").Text
' Renomme l'onglet "Sacha TOUILLE"
Malheureusement, si je relance la macro, il y a un blocage car l'onglet "Sacha TOUILLE" existe déjà....
Que faut-il rajouter (boucle ou autre) pour que la macro vérifie si un onglet "Sacha TOUILLE" existe déjà (dans ce cas, elle crée un onglet "Sacha TOUILLE2") et si ce n'est pas le cas et le crée normalement...
Comme lorque l'on crée un nouvelle onglet, l'onglet "Feuil1" apparaît, si on le copie il devient, "Feuil1 (2)"
J'éspère avoir été suffisament claire!!?!!? :-(
Par avance, merci pour votre aide
Voici mon problème:
J'ai créer une macro qui copie mon onglet "Modèle" et qui le renomme d'après les valeurs des cellules E2 et E3 se trouvant dans l'onglet "Données" (ex.: cellule E3 = "Sacha" cellule E2 = "TOUILLE").
En claire ça donne ceci :
Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
' Crée une copie du modèle
Sheets("Modèle (2)").Name = Sheets("Données").Range("E3").Text + " " + Sheets("Données").Range
("E2").Text
' Renomme l'onglet "Sacha TOUILLE"
Malheureusement, si je relance la macro, il y a un blocage car l'onglet "Sacha TOUILLE" existe déjà....
Que faut-il rajouter (boucle ou autre) pour que la macro vérifie si un onglet "Sacha TOUILLE" existe déjà (dans ce cas, elle crée un onglet "Sacha TOUILLE2") et si ce n'est pas le cas et le crée normalement...
Comme lorque l'on crée un nouvelle onglet, l'onglet "Feuil1" apparaît, si on le copie il devient, "Feuil1 (2)"
J'éspère avoir été suffisament claire!!?!!? :-(
Par avance, merci pour votre aide
Configuration: Un problème sans solution et un problème mal posé... (Albert Einstein)
2 réponses
-
Bonjour,
Tu peux créer une fonction qui test l'existance de ton onglet.
Function Onglet_existe(Nom As String) Dim feuille as WorkSheet Dim Existe as Boolean Existe = False For Each feuille In ActiveWorkbook.Sheets If feuille.Name = Nom Then Existe = True End If Next feuille Onglet_existe = Existe End Function
Une fois que cette fonction est créée, tu peux ajouter dans ton code :i=1 If Onglet_existe("Sacha Touille") Then While Onglet_existe("Sacha Touille" & i) i=i+1 Wend Sheets("Modèle (2)").Name = "Sacha Touille" & i Else Sheets("Modèle (2)").Name = "Sacha Touille" End If
J'ai mis Sacha Touille pour plus de clarté, mais tu peux remplacer par ta syntaxe dépendant des cellules.
Remarque : j'utilise & plutôt que + pour concaténer 2 chaînes je le trouve moins ambigu.
-
Ca marche au top....
Ta macro est parfaite et je te remercie infiniement Gord21 pour avoir pris de ton temps afin de m'aider...
:-) à bientôt