VBA: client blacklisté ? via un 2nd fichier
Adeline
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour !
Je souhaiterais avoir une macro (excel 2007) dans mon fichier , qui lorsqu'elle est activée, ouvre le 2nd fichier "Blacklist.xls" (situé dans le même répertoire que le premier fichier) et scan la colonne A du fichier 2 (blacklist.xls).
Colonne A du fichier 2 (blacklist.xls) ( et sauf ligne 1 car entête de colonnes) ce sont des noms de clients (ou des noms de société). yen a 1500 lignes pour le moment mais c'est voué à augmenter
Le fichier 1 est une liste de dossiers avec en colonne G le nom des clients et en colonne H le nom de la société pour chaque ligne.
L'idée, c'est d'indiquer, en colonne AB du fichier 1 si le client ou sa société à demander à être blakclisté.
Pour résumer, si le nom du client (fichier 1 col G) ou sa société (fichier 1 col H) sont présent dans la colonne A de la blaclist.xls (fichier2), alors indiquer "Client Blacklisté" en colonne AB du fichier 1 (ou se situerait la macro).
D'une certaine façon, la macro serait un vlookup entre colonne G et H fichier 1 versus col A de la blacklist et qui mettent "client blacklisté" coll AB fichier 1 en tant que résultat quand ça match.
Laisser vide si le nom du client ou sa compagnie n'apparaissent pas dans la blacklist.
Les 2 fichiers ont 1 entête, donc les informations qui nous interressent commencent à partir de la ligne 2.
J'espère avoir été claire :)
MErci à vous !!!!
Adeline
Je souhaiterais avoir une macro (excel 2007) dans mon fichier , qui lorsqu'elle est activée, ouvre le 2nd fichier "Blacklist.xls" (situé dans le même répertoire que le premier fichier) et scan la colonne A du fichier 2 (blacklist.xls).
Colonne A du fichier 2 (blacklist.xls) ( et sauf ligne 1 car entête de colonnes) ce sont des noms de clients (ou des noms de société). yen a 1500 lignes pour le moment mais c'est voué à augmenter
Le fichier 1 est une liste de dossiers avec en colonne G le nom des clients et en colonne H le nom de la société pour chaque ligne.
L'idée, c'est d'indiquer, en colonne AB du fichier 1 si le client ou sa société à demander à être blakclisté.
Pour résumer, si le nom du client (fichier 1 col G) ou sa société (fichier 1 col H) sont présent dans la colonne A de la blaclist.xls (fichier2), alors indiquer "Client Blacklisté" en colonne AB du fichier 1 (ou se situerait la macro).
D'une certaine façon, la macro serait un vlookup entre colonne G et H fichier 1 versus col A de la blacklist et qui mettent "client blacklisté" coll AB fichier 1 en tant que résultat quand ça match.
Laisser vide si le nom du client ou sa compagnie n'apparaissent pas dans la blacklist.
Les 2 fichiers ont 1 entête, donc les informations qui nous interressent commencent à partir de la ligne 2.
J'espère avoir été claire :)
MErci à vous !!!!
Adeline
A voir également:
- VBA: client blacklisté ? via un 2nd fichier
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Find vba - Astuces et Solutions
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
1 réponse
Bonjour
macro non testée: au besoin:
mettre un extrait (200 lignes) des classeurs sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
macro non testée: au besoin:
mettre un extrait (200 lignes) des classeurs sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
Const source As String = "feuil1" 'nom de l'onglet fichier blacklist à adapter
Const cible As String = "feuil1" 'nom de l'onglet fichier maitre à adapter
'si le nom du client (fichier 1 col G) ou sa société (fichier 1 col H) sont présent _
dans la colonne A de la blaclist.xls (fichier2), alors indiquer "Client Blacklisté" en _
colonne AB du fichier 1 (ou se situerait la macro).
Sub signaler_liste_noire()
Dim Black As Object, Derlig As Integer, Cptr As Integer
Dim T_out, T_cible
ChDir ThisWorkbook.Path
Workbooks.Open Filename:="blacklist.xls"
Set Black = CreateObject("scripting.dictionary")
With Sheets(source)
Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row
For Cptr = 2 To Derlig
ref = .Cells(Cptr, "A")
If Not Black.exists(ref) Then Black.Add ref, ""
Next
End With
ActiveWorkbook.Close
With Sheets(cible)
Derlig = .Columns("G").Find("*", , , , , xlPrevious).Row
ReDim T_out(Derlig - 1)
T_cible = (.Range("G2:H" & Derlig).Value)
For Cptr = 1 To UBound(T_cible)
If Black.exists(T_cible(Cptr, 1)) Or Black.exists(T_cible(Cptr, 2)) Then _
T_out(Cptr) = "client blacklisté"
Next
.Range("AB2").Resize(UBound(T_out), 1) = Application.Transpose(T_out)
End With
End Sub