Recherche de valeurs communes dans deux colonnes
Bonjour
Je suis confronté a un problème. Et comme je suis débutant en VBA, j'aimerais vous exposez mon problème afin que vous m'aidez à le résoudre.
En effet, dans l'exercice que je dois faire, le but est de pouvoir enlever ou supprimer les valeurs communes dans une colonne d'une feuille Excel grâce au vba.
1 - j'ai une colonne ou il y a des valeurs inscrites dans un tableau d'une feuille (feuille 1) à supprimé grâce à l'autre colonne de l'autre feuille 2
2 une deuxième colonne ou il y a des valeurs dans un autre tableau d'une autre feuille (feuille 2)
Ainsi, ces deux feuilles appartiennent au même fichier Excel et dans ces feuilles des tableaux dont je dois faire une recherche pour supprimer les valeurs identiques aux deux colonnes dans la première feuille 1.
Merci de m'aider au plus vite.
Cordialement
Bonjour,
En faisant au plus simple, si tu débutes avec explications
Bonjour visiondeb, M12
Un essai avec la méthode Autofilter...........ctrl + e pour exécuter la macro....
----->Résultat à vérifier (654 lignes supprimées ?).
Sub filtre_et_supprime()
Dim Mondico As Object
Dim J As Long, lig
Dim plage As Range, derlig As Long
Dim val1 As Long, val2 As Long
Application.ScreenUpdating = False
Set Mondico = CreateObject("Scripting.dictionary")
With Sheets("Feuil2")
For J = 2 To .Range("A" & Rows.Count).End(xlUp).Row 'critères à supprimer
Mondico(.Range("A" & J).Value) = ""
Next J
End With
With Sheets("Feuil1")
derlig = .Range("A" & Rows.Count).End(xlUp).Row
Set plage = Range("A2:A" & Rows.Count)
val1 = Application.CountA(plage) 'nombre de valeurs avant suppression
If MsgBox("Etes-vous certain de vouloir supprimer toutes les lignes contenant les critères de la feuille 2 ?", vbYesNo, "Confirmez") = vbYes Then
With plage
.AutoFilter Field:=1, Criteria1:=Mondico.keys, Operator:=xlFilterValues 'filtre colonne A feuil1 suivant critères Feuil2
Rows(plage.Row + 1 & ":" & plage.Row + plage.Rows.Count - 1).Delete
'.AutoFilter Field:=1
.AutoFilter
val2 = Application.CountA(Range("A2:A" & Rows.Count)) 'nombre de valeurs après suppression
End With
MsgBox val1 - val2 & " lignes ont été supprimées" 'message avec nombre de lignes supprimées
End If
End With
End Sub
source: https://forum.excel-pratique.com/viewtopic.php?t=53866
merci à Banzai64
Cordialement,
[quote=M12 post_id=838326 time=1581785215 user_id=35364]
Bonjour,
Merci pour ton aide, mais est-il possible de faire ça sans le bouton? j'aimerais que ça le fasse automatiquement
Bien Cordialement
Merci pour vos réponses mais, mon problème est plus critique. Comme je débute en vba.
T&M, Garanties et RPFH sont des contrats.
Alors ce que je voulais faire c'est de supprimé les numéros de ESN qui sont en T&M et GARANTIES et qui appartiennent à la feuille(DATABASE_F) => Tableau (RPFH) car dans cette table on doit avoir les Numéros ESN en RPFH.
DATABASE_F : Comporte en colonne les numéros ESN (T&M, Garanties et RPFH)
DATABASE_C : Comporte en colonne les numéros ESN (T&M, Garanties et RPFH), et contrats garanties et autres)
ESPO =>RPFH
ESPH =>RPFH
Garantie MRO =>Garanties
Garantie OEM=>Garanties
TM exclusif=>T&M
TM non exclusif=>T&M
Offload GE=>T&M
Prospect=>Others
Et donc j'ai fais une recherche v pour voir les numéros ESN qui sont assignés en RPFH, T&M et Garanties.
Et donc ce que je voulais faire en VBA, c'est de faire une recherche sur les numéro ESN dans la tableau PACT(DATABASE_F) et ceux qui ne sont pas assigné en RPFH , je l'ai supprime.
Pour la recherche v en Excel :
colonne 4 = > RECHERCHEV([ESN];DATABASE_C_INDUCTION[[ESN]:[CONTRACT TYPE]];4;FAUX)
et cela m'a donné sur chaque ligne du tableau PACT, les contrats liés a leurs RPFH, T&M et Garanties.
Je ne sais pas comment l'appliqué en VBA car je suis débutant pour la suppression des ESN non RPFH sur la colonne ESN .
Merci de me répondre , vraiment très urgent
Cordialement