A voir également:
- Trouver les termes communs dans les cellules d'une colonne
- Déplacer une colonne excel - Guide
- Trouver adresse mac - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Aller à la ligne dans une cellule excel - Guide
- Colonne word - Guide
1 réponse
via55
Messages postés
14474
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
19 septembre 2024
2 728
21 mars 2015 à 00:23
21 mars 2015 à 00:23
Bonsoir
Une possibilité par macro (à adapter à ton fichier)
En supposant la liste des phrases en colonne A sur cent lignes, on retourne la liste des communs en colonne C :
Macro à mettre dans un module (ALT F11 pour ouvrir l'éditeur puis Insertion et Module) et à lancer après depuis la feuille à partir de l'onglet Developpeurs et Macros
Cdlmnt
Une possibilité par macro (à adapter à ton fichier)
En supposant la liste des phrases en colonne A sur cent lignes, on retourne la liste des communs en colonne C :
Sub communs() 'boucle sur les lignes 1 à 100 For n = 1 To 100 'A ADAPTER ' decompose la chaine de la cellule A de la ligne a = Split(Range("A" & n), " ") ' pour chaque mot de la chaine For Each c In a ' chaine v composé du mot en majuscule entouré d'* v = "*" & UCase(c) & "*" 'boucle sur les lignes suivant celle en cours For t = n + 1 To 100 'A ADAPTER ' vérifie si la chaine v existe dans la chaine de la cellule If UCase(Range("A" & t).Value) Like v Then ' si oui on incrémente la variable de ligne de 1 x = x + 1 ' et on inscrit le mot commun en colonne C Range("C" & x) = c End If Next t Next c Next n ' une fois la liste des mots communs établi en colonne C : Dim Ligne As Long ' derniere ligne non vide de la colonne C Ligne = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row ' suppression des doublons en colonne C ActiveSheet.Range("$C$1:$C$" & Ligne).RemoveDuplicates Columns:=1, Header:=xlNo End Sub
Macro à mettre dans un module (ALT F11 pour ouvrir l'éditeur puis Insertion et Module) et à lancer après depuis la feuille à partir de l'onglet Developpeurs et Macros
Cdlmnt
Modifié par Raymond PENTIER le 21/03/2015 à 03:06
C'est pourquoi notre brillant ami via55 a été obligé de créer une macro spécifique, en utilisant le langage VBA, pour essayer de trouver une solution à ton problème.
21 mars 2015 à 13:13
Merci pour l'intérêt que vous avez porté à mon problème.
@Raymond : C'est vrai, il faut avoir une base en VBA, je ne suis pas un pro mais je m'en sors un peu.
@via55 : Merci beaucoup pour ta macro, c'est un bon départ pour ce que je veux faire. ton idée de spliter la phrase est ingénieuse, je m'en suis inspiré pour utiliser la fonction d'excel qui permet de diviser un texte en colonnes, à partir de là je pense pouvoir faire quelque chose.
pour vous donner une idée plus précise sur ma situation :
Il s'agit de trouver la meilleure façon de codifier les noms de fournisseurs (phrase en colonnes), de tel façon à ce qu'il sera facile de les repérer lors d'une saisie, en introduisant dans un champ, un ID de 10 caractère, ce dernier ne doit pas contenir de nom générique (qui se répète souvent dans d'autres noms de fournisseurs, comme : Electrique, Entreprises, acier, transport, services, ....) pour réduire le temps de recherche.
donc je me suis dit qu'en supprimant les noms génériques des phrases, je vais pouvoir garder des noms spécifiques que je pourrais ensuite codifier en 10 caractères facilement en les standardisant.
je vais continuer à travailler dessus sur la base de vos conseils. si toutefois vous avez de meilleures idées je suis toujours preneur.
Merci et bon samedi à vous.