OVH Cloud OVH Cloud

boucle gentil

4 réponses
Avatar
jive7
Bonjour, voilà je débute et je suis à peu prés content du 1er résultat que je
parviens à obtenir mais j'ai encore des zones d'ombres.

Voilà je fais une boucle sur une colonne pour supprimer toute les lignes qui
ne contiennent pas "toto" dans leur 1er cellule de ligne. (j'ai déjà posté
pour cà mais ca à fait un thread super long, dc je rafraichi par un nouveau
post :-) merci daniel)..

...le probléme c'est que ca ne me supprime pas les lignes vides ou les
cellules qui contiennent une formule.

voici mon code :
"Sub suppligne()
Dim Ligne As Long
Ligne = Range("A5").Row
For i = Ligne To 300
If Range("A" & i).Value <> "toto" Then
Range("A" & i).EntireRow.Delete
End If
Next i
End Sub
"


voilà les formules en question c'est tout con (genre en B1=A1) puisque en
faite une ligne sur deux j'ai cà), et comme ca me supprime pas lorsqu'il
rencontre une formule, j'ai plein de =#REF!.

voilà si vous avez une idée.

merci.

4 réponses

Avatar
jps
bonjour jive7
je te copie une proc de lSteph qui devrait répondre à ton attente pour les
lignes vides (à adapter)
pour celles avec formules, regarde du côté de HasFormula....je n'utilise pas
mais je sais que ça existe....
jps

Sub aavides()

Dim i As Long

For i = [a65536].End(xlUp).Row To 1 Step -1

If IsEmpty(Cells(i, 1)) Or _

UCase(Cells(i, 1)) Like "*CC*" Then

Rows(i).EntireRow.Delete

End If

Next

End Sub

"jive7" a écrit dans le message de news:

Bonjour, voilà je débute et je suis à peu prés content du 1er résultat que
je
parviens à obtenir mais j'ai encore des zones d'ombres.

Voilà je fais une boucle sur une colonne pour supprimer toute les lignes
qui
ne contiennent pas "toto" dans leur 1er cellule de ligne. (j'ai déjà posté
pour cà mais ca à fait un thread super long, dc je rafraichi par un
nouveau
post :-) merci daniel)..

...le probléme c'est que ca ne me supprime pas les lignes vides ou les
cellules qui contiennent une formule.

voici mon code :
"Sub suppligne()
Dim Ligne As Long
Ligne = Range("A5").Row
For i = Ligne To 300
If Range("A" & i).Value <> "toto" Then
Range("A" & i).EntireRow.Delete
End If
Next i
End Sub
"


voilà les formules en question c'est tout con (genre en B1¡) puisque en
faite une ligne sur deux j'ai cà), et comme ca me supprime pas lorsqu'il
rencontre une formule, j'ai plein de =#REF!.

voilà si vous avez une idée.

merci.



Avatar
JB
Bonjour,

http://cjoint.com/?evl0d131cP

Sub essai()
For i = [A65000].End(xlUp).Row To 1 Step -1
If Cells(i, 1) <> "toto" Then Cells(i, 1).EntireRow.Delete
Next i
End Sub

Cordialement JB
Avatar
jive7
Merci JPS. un EntireRow delete trés efficace

Merci JB , c'est effectivement une gentil boucle que tu me présent là et qui
marche trés bien !
Je viens aussi de voir appremment que lorsque tu écris tout ton if sur une
ligne tu n'a pas besoin de end if non ?., pas de déclaration de variable, du
variante donc, et une piece jointe trés illustrative.


Bonjour,

http://cjoint.com/?evl0d131cP

Sub essai()
For i = [A65000].End(xlUp).Row To 1 Step -1
If Cells(i, 1) <> "toto" Then Cells(i, 1).EntireRow.Delete
Next i
End Sub

Cordialement JB




Avatar
jps
bonjour jive7
JB est parti à l'apéro et me charge de te transmettre sa réponse
en effet, si tu écris

If......Then.....

sur une seule ligne, tu n'as pas besoin de End If
jps

"jive7" a écrit dans le message de news:

Merci JPS. un EntireRow delete trés efficace

Merci JB , c'est effectivement une gentil boucle que tu me présent là et
qui
marche trés bien !
Je viens aussi de voir appremment que lorsque tu écris tout ton if sur une
ligne tu n'a pas besoin de end if non ?., pas de déclaration de variable,
du
variante donc, et une piece jointe trés illustrative.


Bonjour,

http://cjoint.com/?evl0d131cP

Sub essai()
For i = [A65000].End(xlUp).Row To 1 Step -1
If Cells(i, 1) <> "toto" Then Cells(i, 1).EntireRow.Delete
Next i
End Sub

Cordialement JB