Sheets.count ou ThisWorkbook.Worksheets.Count

Le
Péhemme
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont 209
à supprimer ; je conserve les 3 premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après n'avoir
détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0 ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #25890662
Hello,

Pour faire simple
Clique droit dans les onglets de feuille
- Sélectionner toutes les feuilles
- Touche CTRL appuyée, désélectionner les 3 feuilles a ne pas supprimer
- Clique droit ==>supprimer

--
Salutations
JJ


"Péhemme"
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont 209 à supprimer ; je conserve les 3
premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après n'avoir détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)
Péhemme
Le #25890692
Re-bonsoir à Tous,
Eh bien mes amis il faut, à l'instar de la suppression des lignes, commencer
par la fin.
J'ai (enfin) trouvé la solution sur commentçamarche.net :

Application.DisplayAlerts = False
For Compteur = Worksheets.Count To 4 Step -1
Nom = Sheets(Compteur).Name
Select Case Nom
Case "ACCUEIL", "DATA", "Départ"

Case Else
Sheets(Compteur).Delete
End Select
Next Compteur
Application.DisplayAlerts = True

qui fonctionne parfaitement bien.
Le principal est d'arriver à ses fins.
Bonne soirée à Tous
Michel

"Péhemme" a écrit dans le message de groupe de discussion :
l99qcl$9ab$

Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont 209
à supprimer ; je conserve les 3 premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après n'avoir
détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)
Péhemme
Le #25890722
Mon cher Jacky...
T'es un p'tit malin toi ! :-))
Mes 202 feuilles sont masquées.
Il faut que je les ouvre (une macro, je sais faire..).
Puis effectuer ta manip "à la main", sauf que ma première page ne se
déselecte pas (?) et est donc supprimée.
J'ai essayé en enregistrant la macro,... c'est d'une lecture assez
surprenante.
Maintenant que je suis sur la voie, je vais perfectionner la macro que j'ai
publiée et pense l'adopter.
Merci de ton aide
Bien amicalement
Michel


"Jacky" a écrit dans le message de groupe de discussion :
l99r5s$bfa$

Hello,

Pour faire simple
Clique droit dans les onglets de feuille
- Sélectionner toutes les feuilles
- Touche CTRL appuyée, désélectionner les 3 feuilles a ne pas supprimer
- Clique droit ==>supprimer

--
Salutations
JJ


"Péhemme" l99qcl$9ab$
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont
209 à supprimer ; je conserve les 3 premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après
n'avoir détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)
Péhemme
Le #25890712
N'empêche que la question se pose :
y a-t-il une limite fixée par Excel au nombre de page à supprimer par une
boucle For Each ?
ou :
étais-je imprécis dans la syntaxe de ma macro ?
Michel


"Jacky" a écrit dans le message de groupe de discussion :
l99r5s$bfa$

Hello,

Pour faire simple
Clique droit dans les onglets de feuille
- Sélectionner toutes les feuilles
- Touche CTRL appuyée, désélectionner les 3 feuilles a ne pas supprimer
- Clique droit ==>supprimer

--
Salutations
JJ


"Péhemme" l99qcl$9ab$
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont
209 à supprimer ; je conserve les 3 premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après
n'avoir détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)
Jacky
Le #25890842
RE...
Ceci fonctionne chez moi sans problèmes ni restriction du nombre de feuilles
'----------------
Sub JJ()
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Worksheets
If sh.Name sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
'----------------
--
Salutations
JJ


"Péhemme"
Mon cher Jacky...
T'es un p'tit malin toi ! :-))
Mes 202 feuilles sont masquées.
Il faut que je les ouvre (une macro, je sais faire..).
Puis effectuer ta manip "à la main", sauf que ma première page ne se déselecte pas (?) et est donc
supprimée.
J'ai essayé en enregistrant la macro,... c'est d'une lecture assez surprenante.
Maintenant que je suis sur la voie, je vais perfectionner la macro que j'ai publiée et pense l'adopter.
Merci de ton aide
Bien amicalement
Michel


"Jacky" a écrit dans le message de groupe de discussion : l99r5s$bfa$

Hello,

Pour faire simple
Clique droit dans les onglets de feuille
- Sélectionner toutes les feuilles
- Touche CTRL appuyée, désélectionner les 3 feuilles a ne pas supprimer
- Clique droit ==>supprimer

--
Salutations
JJ


"Péhemme"
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont 209 à supprimer ; je conserve les 3
premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après n'avoir détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)



Péhemme
Le #25890922
Oui Jacky, cela fonctionne parfaitement.
Ce qui est pour moi surprenant car j'avais également testé cette approche et
la macro (dé)bloquait.
Malheureusement, je viens de détruire mes fichiers de tests et ne peux plus
comparer avec mes tentatives de tout ordre.
De mémoire, je crois en effet que j'écrivais "or" au lieu de "and".
Mârci beaucoup.
Bien amicalement
Michel


"Jacky" a écrit dans le message de groupe de discussion :
l99ujn$kio$

RE...
Ceci fonctionne chez moi sans problèmes ni restriction du nombre de feuilles
'----------------
Sub JJ()
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Worksheets
If sh.Name Then
sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
'----------------
--
Salutations
JJ


"Péhemme" l99sc2$eho$
Mon cher Jacky...
T'es un p'tit malin toi ! :-))
Mes 202 feuilles sont masquées.
Il faut que je les ouvre (une macro, je sais faire..).
Puis effectuer ta manip "à la main", sauf que ma première page ne se
déselecte pas (?) et est donc supprimée.
J'ai essayé en enregistrant la macro,... c'est d'une lecture assez
surprenante.
Maintenant que je suis sur la voie, je vais perfectionner la macro que
j'ai publiée et pense l'adopter.
Merci de ton aide
Bien amicalement
Michel


"Jacky" a écrit dans le message de groupe de discussion :
l99r5s$bfa$

Hello,

Pour faire simple
Clique droit dans les onglets de feuille
- Sélectionner toutes les feuilles
- Touche CTRL appuyée, désélectionner les 3 feuilles a ne pas supprimer
- Clique droit ==>supprimer

--
Salutations
JJ


"Péhemme" l99qcl$9ab$
Bonsoir à Tous,

Ahrrr !
Je ne sais même plus faire une boucle.
J'ai un fichier dans lequel j'ai 212 feuilles (sheets.count : 212) dont
209 à supprimer ; je conserve les 3 premières.
Que j'écrive l'une ou l'autre de ces boucles elles s'arrêtent après
n'avoir détruit que 102 feuilles (?).

For i = 4 To Sheets.Count
Sheets(i).Delete
Next i
ou :
For i = 4 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Delete
'Debug.Print ThisWorkbook.Worksheets(i).Name
Next i

reste 107...
relançant la macro :
2ème passage : reste 55
3ème passage : reste 29
4ème passage : reste 9
5ème passage : reste 6
6ème passage : reste 1
7ème passage : reste 0... ouf !

Où merde-je ?
Merci d'avance
Michel (W7 ; Excel 2010)



Publicité
Poster une réponse
Anonyme