Supprimer une ligne sur deux sur une plage donnée

Le
Christophe
Bonjour:

Excel 2007

Dans une macro j'avais
Range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:2=
7,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,5=
3:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71").Select
Selection.Delete Shift:=xlUp

Ca fonctionnait parfaitement mais j'ai été obligé de modifié comme
suit car la plage de donnée exs maintenant plus grande
Range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:2=
7,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,5=
3:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71,73:73,75:75,77:7=
7,79:79,81:81,83:83,85:85,87:87,89:89,91:91,93:93,95:95,97:97,99:99,101:101=
,103:103,105:105,107:107,109:109,111:111,113:113,115:115,117:117,119:119,12=
1:121,123:123,125:125,127:127").Select
Selection.Delete Shift:=xlUp

Ca devrait fonctionner sauf que j'obtiens un Run-Time error '1004'
method 'Range' of object'_Global' failed.

En fait, ca fonction jusqu'au
range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:2=
7,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,5=
3:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71,73:73,75:75,77:7=
7,79:79,81:81,83:83,85:85,87:87,89:89")
mais dès que je rajoute 89:89 et au delà ca plante.

Sinon à la place j'ai essayé

Range("A1:EZ250").Select
For I = 3 To Selection.Count Step 2
Selection.Rows(I).Delete
Next

Mais là non seulemnent ca ne marche pas toujours mais c'est très long.

Salutations.

Christophe
Questions / Réponses high-tech
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
isabelle
Le #22453441
bonjour Christophe,

il faut commencer par le bas,

For I = 251 to 3 To Step -2
Rows(I).Delete
Next

isabelle

Le 2010-08-08 15:30, Christophe a écrit :
Range("A1:EZ250").Select
For I = 3 To Selection.Count Step 2
Selection.Rows(I).Delete
Next
Sam
Le #22453541
Bonjour,
- as tu remarqué que ta macro ne supprimait pas les bonnes lignes car quand
tu supprimes la ligne 3, toutes les lignes remontent, la ligne 5 devient la
ligne 4 etc
il faut donc commencer par le bas
- pour gagner en rapidité, évite les Select

ah tiens, Isabelle a déjà donné une solution identique à ce que j'allais
proposé

N'oublie pas de mettre un chiffre impair pour la première ligne à supprimer
(for I = 251 ou for I = 249)

Cordialement
Michel dit "Sam"

"Christophe"
Bonjour:

Excel 2007

Dans une macro j'avais
Range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:27,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,53:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71").Select
Selection.Delete Shift:=xlUp

Ca fonctionnait parfaitement mais j'ai été obligé de modifié comme
suit car la plage de donnée exs maintenant plus grande
Range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:27,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,53:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71,73:73,75:75,77:77,79:79,81:81,83:83,85:85,87:87,89:89,91:91,93:93,95:95,97:97,99:99,101:101,103:103,105:105,107:107,109:109,111:111,113:113,115:115,117:117,119:119,121:121,123:123,125:125,127:127").Select
Selection.Delete Shift:=xlUp

Ca devrait fonctionner sauf que j'obtiens un Run-Time error '1004'
method 'Range' of object'_Global' failed.

En fait, ca fonction jusqu'au
range("3:3,5:5,7:7,9:9,11:11,13:13,15:15,17:17,19:19,21:21,23:23,25:25,27:27,29:29,31:31,33:33,35:35,37:37,39:39,41:41,43:43,45:45,47:47,49:49,51:51,53:53,55:55,57:57,59:59,61:61,63:63,65:65,67:67,69:69,71:71,73:73,75:75,77:77,79:79,81:81,83:83,85:85,87:87,89:89")
mais dès que je rajoute 89:89 et au delà ca plante.

Sinon à la place j'ai essayé

Range("A1:EZ250").Select
For I = 3 To Selection.Count Step 2
Selection.Rows(I).Delete
Next

Mais là non seulemnent ca ne marche pas toujours mais c'est très long.

Salutations.

Christophe
Christophe
Le #22453591
Sam:

Merci pour l'explication de texte. Effectivement, je n'y arrivais pas
et je comprends mieux pourquoi maintenant.

Christophe
Christophe
Le #22453671
Merci beaucoup Isabelle. C'est exactement ça.

Christophe

For I = 251 to 3 Step -2
Rows(I).Delete
Next
Publicité
Poster une réponse
Anonyme