Recherche partielle
Oly
-
Oly -
Oly -
Bonjour,
voici mon problème sur excel.
J'ai deux fichier assez volumineux contenant des titres de produits.
Les deux fichier n'utilisent pas les même noms de produits exact mais en réalité ce sont les même produits.
Par exemple ; Fichier 1 : pâte à dent à la menthe poivré. Fichier 2 : Dentifrice à la menthe.
Mon but est de faire un ménage pour uniformiser le tout. Cependant je ne peux pas faire de rechercheV et si je regarde les doublons mot par mot cela me prendrait une éternité.
Il y a t'il un moyen de faire des recherches partielles sans avoir de mots clés spécifique. Je veux simplement qui retrouve des mots similaires dans les deux tables.
Merci.
voici mon problème sur excel.
J'ai deux fichier assez volumineux contenant des titres de produits.
Les deux fichier n'utilisent pas les même noms de produits exact mais en réalité ce sont les même produits.
Par exemple ; Fichier 1 : pâte à dent à la menthe poivré. Fichier 2 : Dentifrice à la menthe.
Mon but est de faire un ménage pour uniformiser le tout. Cependant je ne peux pas faire de rechercheV et si je regarde les doublons mot par mot cela me prendrait une éternité.
Il y a t'il un moyen de faire des recherches partielles sans avoir de mots clés spécifique. Je veux simplement qui retrouve des mots similaires dans les deux tables.
Merci.
A voir également:
- Recherche partielle
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Moteur de recherche 1fichier ✓ - Forum Réseaux sociaux
4 réponses
Bonjour,
tu as l'addin fuzzy logic qui fait ça : http://www.emarketeur.fr/ressources/productivite/comparaison-listes-excel-fuzzy-logic-donne-coup-de-vieux-vlookup/
eric
tu as l'addin fuzzy logic qui fait ça : http://www.emarketeur.fr/ressources/productivite/comparaison-listes-excel-fuzzy-logic-donne-coup-de-vieux-vlookup/
eric
Bonjour Oly, bonjour le forum,
Avec le peu d'infos que tu daignes fournir, sans les fichiers, voici ce que je te propose :
Dans un des deux fichiers (au choix), tu crées une UserFom nommée Userform1 avec :
- 1TextBox nommée TextBox1
- 2 Labels nomées Label1 et Label2
- 2 ListBoxes nommées ListBox1 et ListBox2

Tu y copies le code ci-dessous en adaptant les noms (classeur2, onglet1 et onglet2). Le fichier devra être enregistrer sous avec l'extension .xlsm pour conserver le code...
Il faut que les deux classeurs soient ouverts.
Tu lances l'UserForm1 (soit tu crées bouton soit une macro avec le code : UserForm1.Show).
Tu tapes le texte recherché et au fur et à mesure que tu édites les caractères les deux ListBoxes se remplissent t'indiquant l'emplacement du mot dans les deux fichiers...
Si tu n'y arrives pas, envoie les deux fichiers...
Avec le peu d'infos que tu daignes fournir, sans les fichiers, voici ce que je te propose :
Dans un des deux fichiers (au choix), tu crées une UserFom nommée Userform1 avec :
- 1TextBox nommée TextBox1
- 2 Labels nomées Label1 et Label2
- 2 ListBoxes nommées ListBox1 et ListBox2

Tu y copies le code ci-dessous en adaptant les noms (classeur2, onglet1 et onglet2). Le fichier devra être enregistrer sous avec l'extension .xlsm pour conserver le code...
Private C1 As Workbook 'déclare la variable C1 (Classeur 1) Private C2 As Workbook 'déclare la variable C1 (Classeur 1) Private O1 As Worksheet 'déclare la variable O1 (Onglet 1) Private O2 As Worksheet 'déclare la variable O2 (Onglet 2) Private TV1 As Variant 'déclare la variable TV1 (Tableau des Valeurs de l'onglet 1) Private TV2 As Variant 'déclare la variable TV2 (Tableau des Valeurs de l'onglet 2) Private I1 As Long 'déclare la variable I1 (Incrément 1) Private I2 As Long 'déclare la variable I2 (Incrément 2) Private J1 As Integer 'déclare la variable J1 (incrément 1) Private J2 As Integer 'déclare la variable J2 (incrément 2) Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm Set C1 = ThisWorkbook 'définit le classeur C1 Set C2 = Workbooks("second_classeur.xlsm") 'définit le classeur C2 (à adapter à ton cas) Set O1 = C1.Sheets("Feuil1") 'définit l'onglet O1 (à adapter à ton cas) Set O2 = C2.Sheets("Feuil2") 'définit l'onglet O2 (à adapter à ton cas) Me.Caption = "RECHERCHE" 'définit le titre de l'UserForm Me.Label1.Caption = C1.Name & " - " & O1.Name 'renvoie dans l'étiquette Label1 le nom du classeur C1 et le nom de l'onglet O1 Me.Label1.Caption = C2.Name & " - " & O2.Name 'renvoie dans l'étiquette Label2 le nom du classeur C2 et le nom de l'onglet O2 TV1 = O1.Range("A1").CurrentRegion 'définit le tableau des valeurs TV1 TV2 = O2.Range("A1").CurrentRegion 'définit le tableau des valeurs TV2 End Sub Private Sub TextBox1_Change() 'au changement dans la TextBox1 Me.ListBox1.Clear 'vide la ListBox1 Me.ListBox2.Clear 'vide la ListBox2 If Me.TextBox1.Value = "" Then Exit Sub 'si la Textbox1 est effacée, sort de la procédure For I1 = 1 To UBound(TV1, 1) 'boucle 1 : sur toutes les lignes I1 du tableau des valeurs TV1 For J1 = 1 To UBound(TV1, 2) 'boucle 2 : sur toutes les colonnes J1 du tableau des valeurs TV1 'condition : si le texte édité dans la TextBox1 est contenu dans la donnée ligne I1 colonne J1 du tableau des valeurs TV1 If InStr(1, TV1(I1, J1), Me.TextBox1.Value, vbTextCompare) > 0 Then 'ajoute la donnée à la ListBox1 en mentionnant sa ligne et sa colonne Me.ListBox1.AddItem "Ligne " & I1 & " / Colonne" & J1 & " - " & TV1(I1, J1) End If 'fin de la condition Next J1 'prochaine colonne de la boucle 2 Next I1 'prochaine ligne de la boucle 1 For I2 = 1 To UBound(TV2, 1) 'boucle 1 : sur toutes les lignes I2 du tableau des valeurs TV2 For J2 = 1 To UBound(TV2, 2) 'boucle 2 : sur toutes les colonnes J2 du tableau des valeurs TV2 'condition : si le texte édité dans la TextBox1 est contenu dans la donnée ligne I2 colonne J2 du tableau des valeurs TV2 If InStr(1, TV2(I2, J2), Me.TextBox1.Value, vbTextCompare) > 0 Then 'ajoute la donnée à la ListBox2 en mentionnant sa ligne et sa colonne Me.ListBox2.AddItem "Ligne " & I2 & " / Colonne" & J2 & " - " & TV2(I2, J2) End If 'fin de la condition Next J1 'prochaine colonne de la boucle 2 Next I1 'prochaine ligne de la boucle 1 End Sub
Il faut que les deux classeurs soient ouverts.
Tu lances l'UserForm1 (soit tu crées bouton soit une macro avec le code : UserForm1.Show).
Tu tapes le texte recherché et au fur et à mesure que tu édites les caractères les deux ListBoxes se remplissent t'indiquant l'emplacement du mot dans les deux fichiers...
Si tu n'y arrives pas, envoie les deux fichiers...
ok ouais je comprends, mais y aurait-il moyen de le faire sans que j'ai à éditer les caractères mais plutôt que excel fasse une recherche de mot doublon.
Car j'ai beaucoup trop de lignes dans le fichier et par exemple sur un fichier il peut y avoir le nom de matelas inc. et dans l'autre ils s'appelle les matelas inc. mais je veux qu'il fasse le lien que c'est la même entreprise?
Car j'ai beaucoup trop de lignes dans le fichier et par exemple sur un fichier il peut y avoir le nom de matelas inc. et dans l'autre ils s'appelle les matelas inc. mais je veux qu'il fasse le lien que c'est la même entreprise?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu approfondir ton exemple? que souhaites-tu obtenir avec "pâte à dent à la menthe poivré" et "Dentifrice à la menthe"?
bonjour, en fait je cherche à faire des jumelages avec par exemple le mot menthe. Mais ok peut être que mon exemple n'était pas le meilleur. Par exemple dans un fichier j'ai une compagnier qui s'appelle Les matelas Inc. et la dans les autres colonnes j'ai toutes ses informations produits vendus, prix etc. et dans l'autre fichier l'utilisateur à nommé l'entreprise Les matelas, sans le Inc. alors je veux jumeler ces deux champs meme si les noms ne sont pas exactement les mêmes. Comme une rechercheV mais avec une valeur partielle de mot
Tu le télécharges et l'installes comment cet addin ?
Merci pour le lien, je n'arrivais pas à mettre la main dessus.
Cela à l'air de bien fonctionner même si je reste persuadé qu'il serait plus judicieux de vérifier à la saisie les informations.
Ne risque-t-on pas de marier "les matelas de Nouvelle-Zélande" avec "les matelas de la nouvelle Lozère" ?
Mais des fois tu hérites d'un vieux fichier, et il faut le remettre d'équerre avant de pouvoir verrouiller un peu mieux les saisies.
Mais bon, comme ça n'a pas trop l'air d'intéresser le demandeur.
eric