Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction If dans une macro:HELP!!

T

Thierry

Guest
Bonjour,

J'ai crée une macro qui à la fin ajoute une feuille "résumé" à mon classeur Excel.

Seulement, je voudrais que cette feuille soit effacé à chaque fois que la macro est lancée à nouveau, mais je ne sais pas comment faire.

Si je mets le code suivant au début de ma macro:

Sheets("Résumé").Select
ActiveWindow.SelectedSheets.Delete

Ca fait bugger la macro au premier lancement car la feuille n'existe pas.

Quelqu'un aurait-t-il une solution?

Merci
 
L

Lord Nelson

Guest
Salut Thierry,

Tu peux tester l'existence de ta feuille "résumé" comme ceci :

Dim WS As Worksheet
For Each WS In Sheets
If WS.Name = "résumé" Then
WS.Delete
Exit For
End If
Next

A+
Horatio
 
T

Thierry

Guest
Merci pour cette réponse ça m'aide beaucoup.
Une dernière pour la route et promis j'arrete.

Mon probleme est maintenant le suivant:

Quand la macro ajoute une feuille dans le classeur, elle s'appelle, feuille 2, puis feulle 3, puis feuille 4 etc...

Or dans mon code je ne sais pas comment appeler cette feuille vierge qui vient de se créer pour ensuite faire ma feuille résumé...

Sheets("Table").Select
Sheets.Add
Sheets("Sheet2").Select
Sheets("Sheet2").Name = "Résumé"

Même si "résumé" est effacé à chaque fois que la macro est lancé, le N° de la feuille ajoutée monte d'un cran...

Merci
 
L

Lord Nelson

Guest
Salut Abel, Wilfried, Re Thierry,

D'accord avec vous pour ActiveSheet.Name. On peut créer la feuille en dernière position avec "After" :

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Résumé"

A+
Horatio
 

Discussions similaires

Réponses
19
Affichages
634
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…