[E - 03] Macro : Problème avec fonction Find

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 !

documentation

XLDnaute Nouveau
Bonjour a tous,

j'ai un léger problème du au fait que je ne connais pas bien VBA
J'ai une macro qui me trouve des différences entre deux plages sur deux onglets et met les différences en rouge.

Pour les chiffres, cette macro fonctionne très bien !
En revanche, j'aimerais la faire tourner sur une colonne de 500 lignes, ou chaque cellule contient un Nom et un prénom.
Le problème est que dans l'onglet 1, les cellules sont sous la forme :

Jean Baptiste Chevalier
Pierre de Machin
etc.


et dans l'onglet 2 :

Chevalier Jean Baptiste
de Machin Pierre


Ainsi, ma macro me détecte des erreurs partout, car elle cherche un contenu exact. De plus, j'ai besoin que cela soit sous forme de macro (pas de rretraitement de colonne manuel, c'est pour qq qui veut juste avoir a lancer ttes les macros)

Voici la macro en question :

Code:
Sub colorier()
 
For Each cel In Range("H1:H300")
Set absent = Range("'2'!H1:'2'!H300").Find(cel, LookIn:=xlValues, LookAt:=xlWhole)
If absent Is Nothing Then
cel.Interior.ColorIndex = 3
End If
Next
 
End Sub



Voyez vous quelquechose a faire sur la partie

Code:
Find(cel, LookIn:=xlValues, LookAt:=xlWhole)afin que cela fonctionne ?


D'avance merci !

Cordialement
 
Re : [E - 03] Macro : Problème avec fonction Find

Bonjour

Le problème est plus complexe, il faudrait avec "split" décomposer les noms puis rechercher si un élément du nom est présent et vérifier si le reste du nom est présent.

exemple d'algorithme

Do
extraire le nom de famille
Rechercher la ligne de la base qui contient ce nom de famille (find et LookAt:=XlPart)
Si ligne = 0 on sort de la boucle
connaissant la ligne on vérifie le prénom avec "instr"
si "instr" renvoie une valeur supérieure à 0 on a trouvé
action à réaliser
loop

JP
 
Re : [E - 03] Macro : Problème avec fonction Find

Merci de ta réponse.

Je suis débutant donc ca me parait un peu complexe.

Penses tu qu'il y a possibilité d'extraire le nom de famille de chaque onglet avec une macro (dans un cas le nom est tjrs a gauche, dans l'autre tjrs a droite) sans utiliser "split"?

Ou une macro, qui garderait d'une colonne de cellule a chaque fois uniquement le mot de gauche ou de droite ?

car si j'ai le nom de famille uniquement, je peux faire tourner ma macro de comparaison
 
Re : [E - 03] Macro : Problème avec fonction Find

Merci pour ta macro
Malheureusement elle ne fonctionne pas je ne comprends pas pourquoi...


Sinon j'ai trouvé ceci :



Code:
dim cell as Range
For Each cell In Selection
cell = Split(cell, " ", 2)
Next cell

Cela conserve le premier mot de ma cellule.

Voyez vous un moyen de garder le dernier mot ?

Ce serait parfait car ca le conserverait dans la même cellule et je n'aurais qu'à garder le premier mot dans un onglet, le dernier dans l'autre, et hop je compare !
 
- 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

Retour