Se connecter avec
S'enregistrer | Connectez-vous

Excel VBA: Copier une feuille et renommer

Dernière réponse : dans Programmation

Bonjour à tous,

Je suis une novice en matière de vba et je cherche à ecrire une macro qui normalement devrait etre simple, mais je n'arrive pas à obtenir le résultat attendu.

Lorsque je clicque sur l'onglet Nouvelle feuille, je voudrais que la nouvelle feuille qui se crée soit une copie conforme de la feuille d'avant, mais qu'elle soit renommée avec un nom que je précise. J'arrive à copier la feuille mais le problème c'est qu'une fois que je clique sur l'onglet nouvelle feuille, une feuille en plus se crée portant le nouveau nom que j'ai précisé et qui est vide!
(ma première feuille porte le nom "Situation1", et j'aimerai renommer la feuile qui se crée "Situation2...etc")

Bon, voici mon code:

  1. Sub Workbook_NewSheet(ByVal Sh As Object)
  2. copierenommer (Sh.Name)
  3. End Sub
  4.  
  5. Sub copierenommer (onglet As String)
  6.  
  7. onglet = "Situation" & Sheets.Count
  8. Sheets("Situation1").Copy After:=Sheets(Sheets.Count)
  9. Sheets(Sheets.Count).Name = onglet
  10. Sheets(onglet).Select
  11.  
  12. End Sub


Merci d'avance,

Sofia
Lassé par la pub ? Créez un compte
Expert Programmation

Ligne 2. Pas de parenthèses lors de l'appel d'une Sub.

Citation :
Lorsque je clicque sur l'onglet Nouvelle feuille

Je n'ai pas compris. Qu'est-ce que "l'onglet Nouvelle feuille" ?

M'enfin, l'événement Workbook_NewSheet se produit lorsqu'une nouvelle feuille est créée dans le classeur. Si dans cet événement tu remets la création d'une feuille, tu risques de boucler indéfiniment ! (Je me demande pourquoi il ne le fait pas d'ailleurs)

Pourquoi passes-tu en paramètre la variable onglet alors que tu la redéfinis lign 7 ?
Lassé par la pub ? Créez un compte