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

Signaler
Messages postés
2
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
18 octobre 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

Messages postés
24
Date d'inscription
dimanche 11 juin 2006
Statut
Membre
Dernière intervention
8 août 2008

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
Messages postés
2
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
18 octobre 2007

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???
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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²