Supprimer une ligne d'un tableau si

Bonjour,

J'essaye de supprimer une ligne du tableau1 si la colonne "D" contient la valeur "Vente", et aussi supprimer une ligne du tableau2 si la colonne "D" contient la valeur "Achat".

j'ai essayé avec ce code mais je n'arrive pas à le faire fonctionner correctement.

Sub delete_row_if()

Dim r1 As Integer
For r1 = Sheets("Tombés").Range("Tableau1").Rows.Count To 1 Step -1
    If Cells(r1, "D") = "Vente" Then
        Sheets("Tombés").Rows(r1).EntireRow.Delete
    End If
Next

Dim r2 As Integer
For r2 = Sheets("Tombés").Range("Tableau2").Rows.Count To 1 Step -1
    If Cells(r1, "D") = "Achat" Then
        Sheets("Tombés").Rows(r2).EntireRow.Delete
    End If
Next

End Sub
Je sais pas si quelqu'un pourrais corriger ce code ou bien fournir un code plus stable.

Bonjour

J'essaye de supprimer une ligne du tableau1 si la colonne "D" contient la valeur "Vente", et aussi supprimer une ligne du tableau2 si la colonne "D" contient la valeur "Achat".

j'ai essayé avec ce code mais je n'arrive pas à le faire fonctionner correctement

C'est quoi votre souci. Le code est bon là

Cordialement

Le code ne semble pas de supprimer toutes les lignes dont la valeur de la colonne "D" = "Vente" du tableau1, et ne supprime rien du tableau2.

Si vous êtes sur la feuille concernée par les Range Tableau1 et Tableau2, je ne vois pas de souci

Au besoin mettez votre fichier en ligne (sans données confidentielles), ce sera plus facile

Crdlt

Voila ci-joint le fichier avec la macro.Cordialement,

11hb-test.xlsm (33.04 Ko)

Essayez comme ceci

Sub delete_row_if1()
Dim i As Integer, ligtitre As Integer

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Sheets("Tombés")
    With .ListObjects("Tableau1")
        ligtitre = .HeaderRowRange.Row
        For i = .ListRows.Count + ligtitre To ligtitre Step -1
            If Cells(i, 4).Value = "Vente" Then .ListRows(i - ligtitre).Range.Delete
        Next i
    End With

    With .ListObjects("Tableau2")
        ligtitre = .HeaderRowRange.Row
        For i = .ListRows.Count + ligtitre To ligtitre Step -1
            If Cells(i, 4).Value = "Achat" Then .ListRows(i - ligtitre).Range.Delete
        Next i
    End With
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

si ok, merci de ..

Cordialement

Merci Dan, ça a marché

Rechercher des sujets similaires à "supprimer ligne tableau"