Intégrer une condition dans un string pour effacer des lignes

ConseilRestauration Messages postés 2 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 18 octobre 2007 - 18 oct. 2007 à 11:57
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 19 oct. 2007 à 11:49
Bonjour à tous,
j'ai fais plusieures recherches sur différents forums mais je n'ai pas trouvé mon bonheur, et mon niveau en prog ne me permet pas de me dépatouiller.

J'ai un listing materiel (1000 lignes). Je voudrai supprimer la ligne entiere si dans ma colonne quantité j'ai zero. Jusqu'ici tout va bien.
Mon probleme c'est que j'ai des lignes vides qui séparent mes différentes familles de materiel (souci de présentation) et si je lance un string sans condition ça m'ecrase ma mise en page (ce qui reviens à perdre plus de temps à rétablir qu'a supprimer manuellement le materiel dont la quantité est zero). Du coup il faudrait integer une autre condition, mais là je bloque....

voilà le code que j'ai pour le moment :

Public Sub effac11()

Dim plage As String

plage = Range("A11:A" & Range("A65536").End(xlUp).Row).Address

For Each cel In Range(plage).Offset(0, 2)

If cel.Value = "" Then

cel.EntireRow.Delete

End If

Next cel

End Sub

merci pour vos posts
pierre

3 réponses

welcometomyheaven Messages postés 24 Date d'inscription dimanche 11 juin 2006 Statut Membre Dernière intervention 8 août 2008
18 oct. 2007 à 12:26
bonjour

après la suppression de ta ligne désirée, il faut que tu fasse appel à la procèdure de mise en page de ton listing

bonne chance
0
ConseilRestauration Messages postés 2 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 18 octobre 2007
18 oct. 2007 à 13:50
Bonjour, merci pour ton indication mais je pense que le plus simple est de programmer :

Regarde chaque ligne,
    Si la cellule dans la colonne "libellé matériel" est non nul alors verifié si la quantité est nulle dans la colonne "quantité" est nul alors supprime la ligne
sinon ne fait rien.

comme ça il ne touche pas aux lignes vides qui me servent de mise en page.

le probleme c'est que je ne sait pas traduire ça en code vbA !!!
quelqu'un a t il une idée???
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 oct. 2007 à 11:49
Oui, quelqu'un a une idée...

Mais il faudrait que tu précises un peu où sont les libellés et les quantités.
Pour effacer des lignes, tu devrais commencer par la fin.

DerniereLigne = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerniereLigne To 2 Step - 1
    If Range("Libellé" & i) <> "" and Range("Quantité" & i) = 0 Then
       Rows(i).Delete
    End If
Next

Change les mots en bleu pour les lettres nécessaires

MPi²
0
Rejoignez-nous