bonjour,

dans mon fichier excel, j'ai un tableau de devis, comprenant
dans la colonne A la quantité,
en B la référence du produit,
en I le prix unitaire
en K le code produit,
en S la marque du produit.


A l'ouverture du ficher, la colonne S n'est pas vide!

Je cherche a faire une macro qui lorsqu'il n'y a pas de référence d'entrée, la ligne se supprime!

Dans ma macro actuelle, je fais une recherche pour trouver la 1ere ligne de me tableau et la derniere
>> ça c'est bon il sauvegarde les bonnes valeurs
Ensuite je cherche si les lignes qui ont une marque (colonne S non vide) mais qui n'ont pas de référence,
Si j'en trouve une, je l'efface!

voici mon code actuel


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub effacer_ligne()
 
    For i = 1 To 100
        If Range("A" & i).Value = "Qté" Then
            ligne_min = i + 1
        End If
 
        If Range("H" & i).Value = "Total :" Then
            ligne_max = i - 2
        End If
 
     Next i
 
    For i = ligne_min To ligne_max
        If Range("B" & i).Value = "" And Range("S" & i).Value <> "" Then
            Rows(i).Delete Shift:=xlShiftUp
        End If
    Next i
 
End Sub
Actuellement quand je lance ma macro, elle s'exécute correctement mais elle ne supprime pas toutes les lignes vides.
Sur les 6 linges de mon tableau si une seule ligne est remplie, sur les 5 lignes a supprimer seulement 3 ont étées supprimées