Renommer un onlget via VBA

Résolu
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
Configuration: Un problème sans solution et un problème mal posé... (Albert Einstein)

2 réponses

  1. Gord21 Messages postés 928 Statut Membre 289
     
    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.
    1
  2. Behippie Messages postés 14 Statut Membre
     
    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
    0