36 feuilles, et je n'exgère pas !

  • Initiateur de la discussion Initiateur de la discussion Lucy
  • Date de début Date de début

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 !

L

Lucy

Guest
Bonjour,

J'ai un bug assez gênant. Comme le titre l'inique, j'ai un bout de code qui me fait 36 feuilles alors que j'en voulait que quatre (sur les 36, j'en ai quatre qui sont bonne d'ailleurs ^^ )
Voici le code :

Code:
    Carte.Sheets.Add
    Carte.Sheets.Select
    Nom = Carte.ActiveSheet.Name
    Carte.Sheets(Nom).Name = "util1"
    
    Carte.Sheets.Add
    Carte.Sheets.Select
    Nom = Carte.ActiveSheet.Name
    Carte.Sheets(Nom).Name = "util2"
    
    Carte.Sheets.Add
    Carte.Sheets.Select
    Nom = Carte.ActiveSheet.Name
    Carte.Sheets(Nom).Name = "util3"

    Carte.Sheets.Add
    Carte.Sheets.Select
    Nom = Carte.ActiveSheet.Name
    Carte.Sheets(Nom).Name = "util4"

"Carte" est un workbook fraichement créer lus haut dans le code
"Nom" n'est rien d'auter qu'un string
et ce sont les première instruction du code a utiliser "Carte"

Je suis débutante en vba, je me doute qu'il doit y avoir plus simple et ce'st d'ailleurs pour ça que ce truc ne marche pas bien, mais j'ai longtemps cherché la solution sans trouver ^^"

Merci d'avance,
Cordialement,
Lucy
 
Re : 36 feuilles, et je n'exgère pas !

bonjour Lucy et bienvenue sur le forum,

je te propose cette boucle (pour créer 4 fichier "util1", "util2",...)

nota: remplacer ThisWorkbook par ton classeur

Code:
With ThisWorkbook
    For i = 1 To 4
        ' ajouter une feuille en dernière position
        .Sheets.Add after:=.Sheets(.Sheets.Count)
        'modifier son nom
        .Sheets(.Sheets.Count).Name = "util" & i
    Next i
End With

a+
 
Re : 36 feuilles, et je n'exgère pas !

Merci de ton aide rapide mromain, ça marche impec. (j'ai pas utilisé de boucle parce que c'est util1,2... que j'ai en vrai ^^" )

Sinon, pour ma culture de programmeur, vous sauriez pas pourquoi j'avais 36 feuilles ?
 
Re : 36 feuilles, et je n'exgère pas !

Et moi je peut vous certifié que le problème ne vient que de là ^^
Je peut pas vous montrer mon code parce qu'il est assez conséquent et qu'il y a pas mal de variable confidentielle dedans ^^"
Mais enfin, ne vous traquassez pas pour moi 😉

Encore merci de votre aide
 
Re : 36 feuilles, et je n'exgère pas !

re salut Lucy, vbacrumble,

je pense avoir compris d'où ça vient :

quand tu écris :
Code:
Carte.Sheets.Select
tu sélectionnes toutes les feilles de ton classeur
et quand tu écris :
Code:
Carte.Sheets.Add
tu insères autant de feuilles que tu en avais sélectionné.

imaginons, on a un classeur avec 3 feuilles, si on exécute ce code :
Code:
ThisWorkbook.Sheets.Select
ThisWorkbook.Sheets.Add
il se retrouvera avec 6 feuilles.

a+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour