Microsoft 365 VBA - Suppresion ligne en fonction d'un critère

melinavy

XLDnaute Nouveau
Bonjour à tous,

J'aimerai supprimer une ligne d'une base de donnée tableau (Feuille "DATA") avec un critère se situant dans la colonne A.
Le critère se situe dans la feuille "Formulaire" en A1, il s'agit d'un chiffre classique genre 1,2,3 ..
J'aimerai que si il y a le chiffre 3 en A1 dans formulaire ça supprime la ligne ayant 3 en colonne A dans la Feuille DATA (sachant que c'est une référence unique)

Actuellement j'ai ce code( avec pour exemple la valeur 3), mais je n'arrive pas à introduire une sorte de rechercheV ou de condition du genre Sheets("Formulaire").Range("A1").

Merci pour votre aide,
Bonne journée et une excellente fin d'année :)

Sub Suppression()

Dim Derlig As Long, b As Long
With ActiveWorkbook.Worksheets("DATA")
Derlig = .Range("A2").End(xlDown).Row
For b = Derlig To 2 Step -1
If .Range("A" & b).Value = 3 Then
.Range("A" & b).EntireRow.Delete
End If
Next b
End With
End Sub
 

melinavy

XLDnaute Nouveau
Bonjour Phil,
Merci de ton aide,
Le critère est dans Formulaire A1 et la liste de recherche si je peux m'exprimer ainsi est en colonne A de la feuille DATA.
Sachant que la ligne 1 c'est les en têtes de colonnes.

J'ai l'impression que ton code ne tient pas compte de la différence de feuille ..
 

M12

XLDnaute Accro
Bonjour
Bonjour Phil
le code de Phil est bon, il suffit juste de modifier pour la référence en A1 de l'autre onglet
VB:
Sub Suppression()
Dim Derlig&, i&
With Worksheets("DATA")
    Derlig = .Range("A2").End(xlDown).Row
    For i = Derlig To 2 Step -1
        If .Range("A" & i) = Sheets("Formulaire").Range("A1") Then .Range("A" & i).EntireRow.Delete
    Next i
End With
End Sub
 

Phil69970

XLDnaute Barbatruc
Re

Je n'avais pas compris qu'il y avait une 2eme feuille qui s'appelle "Formulaire"

VB:
Sub Suppression()

Dim Derlig&, i&
With Worksheets("DATA")
    Derlig = .Range("A2").End(xlDown).Row
    For i = Derlig To 2 Step -1
        If .Range("A" & i) = Worksheets("Formulaire").[A1] Then .Range("A" & i).EntireRow.Delete
    Next i
End With
End Sub

@Phil69970
 

Discussions similaires

Réponses
3
Affichages
547
Réponses
11
Affichages
396