Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème avec For...next

4 réponses
Avatar
André Marsolais
Besoin d'aide! Je veux détruire les lignes 6 à 100 dont la colonne B est
vide. Voici les commandes que je fais. Toutes les lignes se détruisent, sauf
la ligne 1, même s'il y a du texte dans la colonne B.

col = 2 'col indique le N° de colonne ,ici B
lig = 100
For K = lig To 6 Step -1
If Cells(K, col) = "" Then ActiveCell.EntireRow.Delete: GoTo Saute
Saute:
lig = lig - 1
Next

Merci de votre aide!
--
André

4 réponses

Avatar
Ardus Petus
Bonjour André,

Dans to code:
For K = lig To 6 Step -1
=> tu t'rrêtes toujours à la ligne 6

Essaie plutôt
For K = lig To 1 Step -1

Cordialement,
--
AP

"André Marsolais" a écrit dans le
message de news:
Besoin d'aide! Je veux détruire les lignes 6 à 100 dont la colonne B est
vide. Voici les commandes que je fais. Toutes les lignes se détruisent,
sauf

la ligne 1, même s'il y a du texte dans la colonne B.

col = 2 'col indique le N° de colonne ,ici B
lig = 100
For K = lig To 6 Step -1
If Cells(K, col) = "" Then ActiveCell.EntireRow.Delete: GoTo Saute
Saute:
lig = lig - 1
Next

Merci de votre aide!
--
André


Avatar
AV
Une boucle est inutile et ralentit l'exécution...

[B6:B100].SpecialCells(xlCellTypeBlanks).EntireRow.Delete

AV
Avatar
JLuc
André Marsolais avait soumis l'idée :
Besoin d'aide! Je veux détruire les lignes 6 à 100 dont la colonne B est
vide. Voici les commandes que je fais. Toutes les lignes se détruisent, sauf
la ligne 1, même s'il y a du texte dans la colonne B.

col = 2 'col indique le N° de colonne ,ici B
lig = 100
For K = lig To 6 Step -1
If Cells(K, col) = "" Then ActiveCell.EntireRow.Delete: GoTo Saute
Saute:
lig = lig - 1
Next

Merci de votre aide!


Dans ta boucle, tu detruis toujours la ligne de la cellule active !
Si la cellule active est "A1" ...
Pour toi, ce serait :
For K = lig To 6 Step -1
If Cells(K, col) = "" Then
Cells(K, col).EntireRow.Delete
End If
Next

Mais je pense que la propositiopn d'AV est superieurement meilleur ;-)

--
JLuc

Avatar
André Marsolais
Bonjour,

Ça marche. Merci pour la rapidité de votre intervention!

Bonne journée
--
André



Besoin d'aide! Je veux détruire les lignes 6 à 100 dont la colonne B est
vide. Voici les commandes que je fais. Toutes les lignes se détruisent, sauf
la ligne 1, même s'il y a du texte dans la colonne B.

col = 2 'col indique le N° de colonne ,ici B
lig = 100
For K = lig To 6 Step -1
If Cells(K, col) = "" Then ActiveCell.EntireRow.Delete: GoTo Saute
Saute:
lig = lig - 1
Next

Merci de votre aide!
--
André