Selection feuille de calcul

  • Initiateur de la discussion vincent
  • Date de début
V

vincent

Guest
bonjour,
j'essaye d'effacer des feuilles de calcul dont le nom est 0,1,2,... nombre_membre,

avec le code suivant:
For i = 0 To nombre_membre
Sheets(i).Delete
Next i

lors de l'execution de la macro j'ai une erreur d'index,
qui sait ou est l'erreur ?
merci
bonne journee
vincent
 
Y

yeahou

Guest
Salut Vincent, le forum

I est variant ou integer et est utilisé en compteur, dans ce cas il sort un entier en sheets(i).delete et tu effaces les feuilles par index et non par nom. il faut faire une conversion en texte avant.

Application.DisplayAlerts = False
Dim f As String
For i = 0 To nombre_membre
f = i
Sheets(f).Delete
Next i

Cordialement, A+
 
S

Sapin

Guest
Salut Vincent

lorsque tu utilise
For i = 0 To nombre_membre
Sheets(i).Delete
Next i

tu as bien nombre_membre feuilles au départ par contre des que tu supprimes la i=1, les index ne vont plus que de 1 à nombre_membre-1
i=2 --> 1 à nombre_membre-2
etc...

d'où l'erreur que tu rencontres...

Je te propose la solution suivante:

dim compteur as integer
compteur=0
For i = 0 To nombre_membre
Sheets(i-compteur).Delete
compteur=compteur +1
Next i

Ca doit marcher sauf erreur de ma part
Sapin
 
Y

yeahou

Guest
Salut Vincent, le forum

si tu tiens à conserver une suppression par index tu peux faire

For i = nombre_membre + 1 to 1 Step -1
Sheets(i).Delete
Next i

l'index 0 n'existant pas, si tes feuilles sont au nombre de 10 et sont nommées de 0 à 9, il faut faire une boucle de ce type pour supprimer les bonnes feuilles. Mais tu supposes alors que tes feuilles sont en premier dans le classeur.

Cordialement, A+
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar