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

Microsoft 365 Comparer le texte de deux colonnes (plusieurs mots/cellule) pour trouver 1 mot en commun

L

Lagertha

Guest
Bonjour à tous!
Je suis toute fraîchement arrivée ici et je vous découvre en faisant mes recherches depuis plusieurs jours sur ma problématique.
Je n'y ai pas encore trouvé de solution. Je vous l'expose en espérant que vos lumière me sauveront.

Je pars d'une liste de noms de dossier en colonne A (environ 22 000 lignes)

J'ajoute en colonne B, quotidiennement, une liste de dossiers qui me vient de l'internationale pour vérifier que nous n'avons pas les mêmes clients pour des missions qui seraient en conflit. Cette liste ne contient pas plus de 50 lignes.

La difficultés: chaque cellule de la colonne A et B comprend plusieurs mots (nom de la société, parfois la branche de la filiale, ...).
Il me faut tester chaque cellule de la colonne B pour vérifier qu'au moins un mot ne se trouve pas dans ma colonne A. Je ne cherche donc pas des cellules identiques (donc pas de RECHERCHE, etc...) mais des cellules qui auraient au moins un mot en commun (sans tenir compte de la casse).
J'ai testé quelques macros trouvées sur le site mais elles ne permettent la comparaison que de deux cellules de la même ligne. Je suis vraiment perdue.

Exemple joint.

Je vous remercie par avance pour toute l'aide que vous pourriez m'apporter
 

Pièces jointes

  • Comparaison des deux colonnes.xlsx
    9.2 KB · Affichages: 14
Dernière modification par un modérateur:

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
@Lagertha à dit :
Donc, de ce que j'ai compris, si dans la colonne B, il y a deux mots (ex : Had Bad ou Dal Bel ou Sam Zia .....) il faut chercher dans la colonne A, si le mot Had existe puis le mot Bad et ainsi de suite et non pas la combinaison Had Bad.
- Pour @RyuAutodidacte , je ne retrouve pas ceci dans votre fichier (ou alors mal interprété le résultat)
- Pour @laurent950, j'ai une erreur dans l'exécution du code

- Pour @mapomme, je ne retrouve pas ceci dans votre fichier (ou alors mal interprété le résultat)

Donc au final, peut être ai-je mal interprété la demande. Je ne sais plus en fait.
De plus que @Lagertha ne s'est toujours pas manifestée depuis pour avoir son avis.
Bon week-end à tous
@+ Lolote83
 

laurent950

XLDnaute Accro
Re @Lolote83

Il faut ajouter On Error Resume Next

VB:
Private Sub UserForm_Initialize()
    On Error Resume Next
    ' Initialise la barre de progression
    Me.LabelProgress.Caption = "Progression : 0%"
    Me.ProgressBar1.Value = 0
    Me.ProgressBar1.Min = 0
    Me.ProgressBar1.Max = 100
End Sub

Sans les numéros de lignes c'est plus claire ?
 

Pièces jointes

  • SansNumLigne_ComparaisonDesDeuxColonnes-Regex-ColorTxt-Adresse(ComplexeModuledeClasse).xlsm
    43.8 KB · Affichages: 5
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour le fil

@RyuAutodidacte
Tu parles de ceci ?
Re,

@Staple1600

Je l'ai pas encore ouvert mais je suppose que oui
J'ai été son padawan sur un autre forum, et sur mon post, il a eu la gentillesse de me créer
un module de classe Dictionnaire pour Collection ici
Grace à lui j'ai énormément évolué en vba (et bien sur d'autres personne comme notre ami patricktoulon)
Mais le plus gros de mon apprentissage c'était avec Marc-L dont je lui suis entièrement reconnaissant

Edit : je reconnais bien son avatar
 
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re bonjour,
Dans mon exemple, j'ai effectivement afficher un label comme si c'était une progress bar.
Par contre, dans votre exemple, il y a un label + un control progressbar ? Du coup, quand j'ai rajouté mon propre control progressBar dans votre exemple, cela a fonctionné. Ce que je ne comprend pas c'est pourquoi, si vous avez vous aussi chargé un progressbar, celui-ci n'a pas été reconnu au lancement de la macro et donc qu'il m'a fallu en reconstruire une.
Par contre, je n'ai pas vraiment compris :
Le code est plus clair (avec ou sans) les numéros de lignes ?
Poste #12 (avec Numéros de Lignes) ?
Poste #20 (sans Numéros de lignes) ?
@+ Lolote83
 

laurent950

XLDnaute Accro
Re @Lolote83

Le code est plus clair (avec ou sans) les numéros de lignes ?
Poste #12 (avec Numéros de Lignes) ?

Poste #20 (sans Numéros de lignes) ? [Le Mot] ; [Le Mot Suivant]

Il y a deux affichages pour cette progress barre
- Le label pour les parties traitées.
- la progress barre l'avancement.



Part 1/2, Celle ou je remplis le module de classe avec la variable collection
- Col.Add Item:=Res, Key:=TDon(j) ' ........... MetaDonnées Mot Colonne A
- Re remplit le module de classe
- Je consigne cette classe dans la variable collection avec la clé = Le mot

Part 2/2, Celle qui va remplir l'information de la colonne B avec les informations trouvées dans le module de classe qui correspond à la clé
- For Each élément In Col
- Set Res = élément
- pattern = Res.Key ' J'utilise une expression régulière qui peut être réglée par la suite
- Ce qui est long c'est cette partie de code
- Mettez en couleur la correspondance dans la cellule de la colonne A
- Je n'ai pas tout détaillé le code mais c'est l'idée.
 
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
- Pour @RyuAutodidacte , je ne retrouve pas ceci dans votre fichier (ou alors mal interprété le résultat)
Bonjour @Lolote83 ,

Dans l'exemple donnée par @Lagertha (plus que minime)

J'ajoute en colonne B, quotidiennement, une liste de dossiers qui me vient de l'internationale pour vérifier que nous n'avons pas les mêmes clients pour des missions qui seraient en conflit. Cette liste ne contient pas plus de 50 lignes.
D'après ce que j'ai compris, et pour ma part les "ok" sont les dossier sur lesquelles ils peuvent travailler et les cellule vides dans la colonne test les dossiers sur lesquelles ils rentrent en conflits

Dans mon code j'ai rempli dans une collection chaque mot (entier) en clé de la colonne A pour vérifier les mots (entier) de la colonne B
J'aurais pu inverser la logique en commençant par la colonne B et j'aurais eu le même résultat …

Le résultat sur mon code :


j'ai le même résultat que l'exemple de @Lagertha
Avec un filtre automatique et un mise en forme conditionnelle c'est très rapide de ce focus sur ce que l'on veut

PS : la barre de progression c'est bien mais vu que pour 23 000 lignes le code dure moins de 1 seconde
je ne suis pas sure que cela soit utile
 

laurent950

XLDnaute Accro
Bonsoir @Lolote83
'
Pour vos question en Poste #16 / 19 / 21 / 22
'
'
J'ai fait l'exemple de la Progress Barre de vos questions à vos Poste.
AvecProgressBarreCréationd'uneProgressBarreExplication.xlsm
'
J'ai remplacer la ProgressBarre initial par une Progressbarre avec Label.
AvecLabelCréationd'uneProgressBarreExplication.xlsm

Alors les les Poste #12 (Avec Numéros de lignes)

et le Poste #20(Sans Numéros de lignes)

Cela devrait être OK.
'
Puis j'ai ajouté au Module de classe : (Pour décharger les variables de ce module de class)
Private Sub Class_Terminate()
'
Bien que je n'ai pas déchargé les variables dans le module standard a la fin, a suivre.
'
Je vous Poste les deux modèle @Lolote83
ProgressBarre avec 2 Label
'
Puis celui de vos questions en Poste #16 / 19 / 21 / 22
ProgressBarre avec 1 Label et ProgressBarre


Si quelqu'un souhaite le mode d'emplois pour créer la Progresse barre label
je peux poster toutes la procédure en partant d'un nouveau classeur Excel.
 

Pièces jointes

  • AvecLabelCréationd'uneProgressBarreExplication.xlsm
    48.9 KB · Affichages: 5
  • AvecProgressBarreCréationd'uneProgressBarreExplication.xlsm
    111 KB · Affichages: 7
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour le fil,

@laurent950
Étant donné que je suis sur Mac je préfère de mon coté la compatibilité multi-platefome Mac/PC
Je penche donc pour cette version :
AvecLabelCréationd'uneProgressBarreExplication.xlsm

Avec l'autre version ca bug … une référence surement qui n'existe que pour Windows …
 
L

Lagertha

Guest
Re bonjour @Lagertha,
Voici la Version 3 qui normalement prend en compte uniquement l'exactitude des mots.

Je pense qu'avec cette version, la demande devrait du coup mieux correspondre.
A tester.
Merci du retour
Cordialement
Lolote83
Bonjour @Lolote83 et merci pour votre travail.
J'ai tenté, depuis vendredi, à plusieurs reprises, de faire fonctionner ces deux derniers fichiers avec les listes que je traite mais hélas, à chaque fois, l'outil Excel à cessé de fonctionné, tout à planté et je n'ai pas eu d'autres choix que de forcer l'arrêt du programme. C'était le cas encore à l'instant et j'en suis désolée...
 
L

Lagertha

Guest
Bonjour @laurent950,
Merci pour votre travail. Il semblerait que le traitement soit plus rapide que ce que j'ai testé précédemment, hélas je n'ai pas de résultat. Je vous joins une capture d'écran.
 

Pièces jointes

  • laurent950 message d'erreur.PNG
    9 KB · Affichages: 8

Discussions similaires

Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…