Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Phil69970

XLDnaute Barbatruc
Bonjour @melinavy

Je te propose :
Le critère est en A1

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) = [A1] Then .Range("A" & i).EntireRow.Delete
    Next i
End With
End Sub

*Merci de ton retour

@Phil69970
 

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
0
Affichages
153
Réponses
1
Affichages
168
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…