XL 2021 VBA pour comparer des données

Cristobal

XLDnaute Nouveau
Bonjour à tous,

Dans le fichier joint, je souhaite mettre en couleur les données communes des colonnes A et C à l'aide d'une VBA.
Celle que j'ai mise ne fonctionne pas.
Pouvez-vous me dire pourquoi?

Je vous remercie par avance pour votre aide.

Bonne fin de week end à tous
 

Pièces jointes

  • Comparaison.xlsm
    27.9 KB · Affichages: 5

Laurent78

XLDnaute Occasionnel
Bonjour,

Tes "valeurs" ne sont pas de même nature en A des valeurs numériques, en C du texte (probablement un copier/coller d'un autre truc).
Pour contourner :
Dans ton code VBA :
- parcours uniquement à partir de la ligne 2
- ajoute une opération 1* pour que Excel fasse un transtypage à la volée.



VB:
Sub ColorSameValues()
    Dim ws As Worksheet
    Dim rngA As Range
    Dim rngC As Range
    Dim cellA As Range
    Dim cellC As Range
   
    ' Spécifier la feuille de calcul
    Set ws = ThisWorkbook.Sheets("Feuil1")
   
    ' Spécifier les plages de cellules à comparer
    Set rngA = ws.Range("A2:A439")
    Set rngC = ws.Range("C2:C439")
   
    ' Parcourir les cellules de la colonne A
    For Each cellA In rngA
        ' Parcourir les cellules de la colonne C
        For Each cellC In rngC
            ' Vérifier si les valeurs sont identiques
            If 1 * cellA.Value = 1 * cellC.Value Then
                ' Mettre en couleur les cellules identiques
                cellA.Interior.Color = RGB(255, 0, 0) ' Rouge
                cellC.Interior.Color = RGB(255, 0, 0) ' Rouge
            End If
        Next cellC
    Next cellA
End Sub
 
Dernière édition:

Laurent78

XLDnaute Occasionnel
Merci beaucoup Laurent78....

ça fonctionne...super
de rien. Au passage, tu pourrais également passer par une mfc, et de préférence après avoir fait en sorte que les colonnes A & C contiennent même type de données; ce que tu peux faire via un copier/collage spécial opération, choisir multiplication (la cellule copiée contenant la valeur numérique 1 et les cellules "coller" sont C2 à Cxxx).
L'avantage : pas de vba, pas de macro à exécuter, c'est quasi instantané.
 

Pièces jointes

  • Comparaison sans vba.xlsx
    23.3 KB · Affichages: 3

Cristobal

XLDnaute Nouveau
J'ai voulu appliquer la VBA à une autre feuille mais ça ne fonctionne pas, c'est la ligne ci-dessous qui semble poser problème:

' Vérifier si les valeurs sont identiques
If 1 * cellA.Value = 1 * cellC.Value Then

Concernant l'autre solution tu pourrais détailler car je n'ai pas compris comment tu as fais ( je ne suis pas très doué)
Merci pour tout
 

Laurent78

XLDnaute Occasionnel
J'ai voulu appliquer la VBA à une autre feuille mais ça ne fonctionne pas, c'est la ligne ci-dessous qui semble poser problème:

' Vérifier si les valeurs sont identiques
If 1 * cellA.Value = 1 * cellC.Value Then

Concernant l'autre solution tu pourrais détailler car je n'ai pas compris comment tu as fais ( je ne suis pas très doué)
Merci pour tout
A.Je pense que les données que tu as sur ton autre feuille ne sont pas de même nature.
B. pour l'autre possibilité. Si tes données de la colonne C sont un copier/coller d'un autre truc et que du coup, elles arrivent avec un type de données un peu bancal, tu peux les transformer de la façon suivante. Dans une cellule, vide, n'importe où en dehors de ton tableau (disons G1) tu saisie la valeur numérique 1, tu valides. Ensuite, tu te remets sur G1 et tu fais copier (CTRL + C), ensuite, tu sélectionne toutes les cellules de la colonne C qui contiennent ces valeurs "bancales", ensuite, dans l'onglet Accueil, tu chosis "collage spécial" et en bas de la fenêtre dans la partie "opération" tu choisis "multiplicaton", cela va, pour chacune des valeur de tes cellules les multiplier par 1 et dans ce cas, Excel fera un transtypage à la volée. Tes cellules contiendrons des valeurs numériques, comme pour la colonne A. Charge à toi, d'utiliser le même format.
Ensuite, je t'invite à regarder les 2 règles de MFC (Mise en Forme Conditionnelle) que tu as dans mon dernier fichier.

1710084841903.png
 

Cristobal

XLDnaute Nouveau
J'ai bien mis toutes mes données sous le même format mais ça ne fonctionne pas (PJ), je fais des tests car j'ai souvent ce genre de comparaison à faire

Pour la 2ème solutions dans ton tableau quand je clique sur MEF conditionnelle comment je visualise ce que tu as fais?

Merci par avance
 

Statistiques des forums

Discussions
312 209
Messages
2 086 273
Membres
103 168
dernier inscrit
isidore33