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 !
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 ?
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
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
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