Microsoft 365 Rechercher NOM et Prenom Inversé

  • Initiateur de la discussion Initiateur de la discussion carlos
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

carlos

XLDnaute Impliqué
Bonjour,
savez vous comment rechercher la cellule contenant par exemple "JEAN DUPONT" dans la colonne "B" mais qui est écrit "DUPONT Jean" ?
Bonne journée
Carlos
 
Bonjour carlos, djidji59430, dysorthographie,

Voyez le fichier joint et cette macro affectée au bouton :
VB:
Sub Recherche()
Dim s, d As Object, i&, a, ub%, tablo, x$, flag As Boolean, j%, n&
'---liste recherchée sans doublon---
s = Split([E2]) 'cellule à adapter
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For i = 0 To UBound(s)
    If s(i) <> "" Then d(s(i)) = " " & LCase(s(i)) & " "
Next
'---analyse---
If d.Count Then
    a = d.items: ub = UBound(a)
    tablo = [B1].CurrentRegion.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 2 To UBound(tablo)
        x = " " & LCase(Application.Trim(tablo(i, 1))) & " "
        flag = True
        For j = 0 To ub
            If InStr(x, a(j)) = 0 Then flag = False: Exit For
        Next j
        If flag Then n = n + 1: tablo(n, 1) = tablo(i, 1): tablo(n, 2) = i
    Next i
End If
'---restitution---
With Feuil1 'CodeName
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[E5] 'cellule de restitution, à adapter
        If n Then
            .Resize(n, 2) = tablo
            .Resize(n, 2).Interior.Color = [E2].Interior.Color
            .Resize(n, 2).Borders.Weight = xlHairline 'bordures
        End If
        .Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1, 2).Delete xlUp 'RAZ en dessous
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
A+
 

Pièces jointes

Bonjour,
Merci à tous pour votre interet à mon problème.
J'ai essayé d'adapter la proposition de Job75 à mon fichier mais le niveau est trop haut pour moi . Je suis désolé Job75.
Je vous propose donc de reformuler ma demande pour pouvoir mieux l'adapter (CF PJ)
Bonne journée
 

Pièces jointes

Bonsoir Job75,
En faite, je recupere la liste des noms d'un questionnaire Microsoft Forms que j'ai mis en ligne avec identifiant. Ces noms qui sont mis d'office n'ont pas le meme format que ma base de donnée
Je cherche juste à boucler sur une liste de personne pour pouvoir les retrouver un a un.
Vous avez ete pedagogue dans la proposition de votre code mais quand je dis "trop haut" c'est juste que je n'ai pas le niveau pour reussir à boucler sur les noms les uns après les autres.
C'est vrai que mon exemple est tordu mais je cherche à adapter une solution.

C'est cela que je ne comprends pas :
If n Then
.Resize(n, 2) = tablo
End If
.Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1, 2).Delete xlUp 'RAZ en dessous
Bonne soirée
 
Ma macro fait uniquement une chose très simple : elle recherche toutes les cellules en colonne B qui contiennent tous les mots situés en E2, dans un ordre quelconque.

Ce que vous demandez maintenant n'est pas clair :

- que recherche-t-on, des mots ou des textes quelconques ?

- que fait-on si le texte recherché existe sur plusieurs lignes ?

- que doit-on faire avec les caractères parasites : voyelle avec ou sans accent, apostrophe etc... ?
 
Bonsoir Job75,
votre macro fonctionne très très bien et elle a répondu parfaitement à ma première demande.
Je pensais juste pouvoir boucler la colonne des "noms à trouver" dans la "colonne recherche" mais je n'y arrive pas. J'ai essayé avec "For each Cell in range ..." mais ca ne marche pas dans l'exemple que je vous ai envoyé
Il suffirait seulement que vous puissiez mettre en face de chaque nom de la "colonne trouvé" le numéro de ligne comme vous l'avez fait dans votre fichier en cellule F5.
Merci et bonne soirée
 
Bonsoir Job75, , djidji59430, dysorthographie,

Oui , djidji59430, il peut y avoir des "Pierre Henry LEVY" et des "Valery Giscard d'Estaing".
Oui, dysorthographie, il n'y a pas de norme seulement un Forms qui met les noms et prénoms en MAJUSCULE et SUPPRIME tous les accents. Et il faut les retrouver avec des accents. Je ne sais pas si cela sera possible finalement .
Job75, ce ne sera que des noms et des prenoms en majuscule recherchant des Noms et prénoms avec des minuscules , des accents , des apostrophes et parfois composés mais ils ne seront jamais sur plusieurs lignes (Pas de doublon).
C'est vrai qu'a détailler tout cela je me dis que cela n'est certainement pas possible et trop tordu.
Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
376
  • Question Question
Réponses
7
Affichages
371
Réponses
4
Affichages
142
Réponses
2
Affichages
332
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
502
Retour