Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comparaison entre 2 cellules/column

  • Initiateur de la discussion Initiateur de la discussion Achil
  • 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 !

A

Achil

Guest
Bonjour à tous,

Comme d'hab, j'ai besoin de votre aide.

je souhaite comparer entre 2 cellules et mettre en gras/couleur dans une autre cellule et en tenant compte aussi d'une différence si cellule non alignée.

Voir exple ci joint (column Result)

Merci d'avance 😱😱😱
 
Re : Comparaison entre 2 cellules/column

Bonjour Achil,

Comparer les textes situés sur une même ligne ne pose pas de problème, voyez le fichier joint et cette macro :

Code:
Sub Comparer()
Dim h As Long, cel As Range, i As Integer
'---initialisation---
Application.ScreenUpdating = False
[F2:F65536].ClearContents
[F2:F65536].Font.Bold = False
[F2:F65536].Font.ColorIndex = xlAutomatic
h = [E65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub
'---remplissage de la colonne F---
[F2].Resize(h) = [E2].Resize(h).Value
'---comparaison avec la colonne C---
For Each cel In [F2].Resize(h)
  For i = 1 To Len(cel.Text)
    If Mid(cel.Text, i, 1) <> Mid(cel.Offset(, -3).Text, i, 1) Then
      cel.Characters(i, 1).Font.Bold = True 'gras
      cel.Characters(i, 1).Font.ColorIndex = 3 'rouge
    End If
  Next
Next
End Sub
Par contre comparer des textes situés sur des lignes différentes n'est guère logique : comment savoir quels sont les textes à comparer ???

A+
 
Dernière modification par un modérateur:
Re : Comparaison entre 2 cellules/column

Merci pour la première solution 😱

mais n'est il pas possible de comparer en recherchant si par exple

Si reference = x , comparer B6 : D6
Si B6 = D6, comparer
Si B6 <> D6, recherche ds la column B et faire la comparaison

malheuresement je suis pas encore pro, mais j'espère que ma demande est un peu claire 😕

thankssss 😱😱
 
Re : Comparaison entre 2 cellules/column

Re,

Par contre comparer des textes situés sur des lignes différentes n'est guère logique

On peut toutefois rechercher les textes qui donnent un nombre de différences minimum :

Code:
Sub Comparer()
Dim h&, cel As Range, cel1 As Range, Ndif%(), i%
'---initialisation---
Application.ScreenUpdating = False
[F2:F65536].ClearContents
[F2:F65536].Font.Bold = False
[F2:F65536].Font.ColorIndex = xlAutomatic
h = [E65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub
For Each cel In [F2].Resize(h)
  '---recherche du nombre de différences minimum---
  cel = cel.Offset(, -3)
  ReDim Ndif(1 To h)
  For Each cel1 In [E2].Resize(h)
    For i = 1 To Len(cel.Text)
      If Mid(cel.Text, i, 1) <> Mid(cel1.Text, i, 1) Then _
        Ndif(cel1.Row - 1) = Ndif(cel1.Row - 1) + 1
    Next
  Next
  cel = [E1].Offset(Application.Match(Application.Min(Ndif), Ndif, 0))
  '---comparaison avec la colonne C---
  For i = 1 To Len(cel.Text)
    If Mid(cel.Text, i, 1) <> Mid(cel.Offset(, -3).Text, i, 1) Then
      cel.Characters(i, 1).Font.Bold = True 'gras
      cel.Characters(i, 1).Font.ColorIndex = 3 'rouge
    End If
  Next
Next
End Sub
Fichier joint.

Tout ça est un peu tiré par les cheveux non ?

Nota : dans votre fichier du post #1 le résultat en F6 n'est pas correct...

A+
 
Dernière modification par un modérateur:
Re : Comparaison entre 2 cellules/column

Re,

Si pour chaque référence les pays (Client 1/Client 2) se correspondent de manière biunivoque, on peut faire 2 tris préalables :

Code:
Sub Comparer()
Dim h As Long, cel As Range, i As Integer
'---initialisation---
Application.ScreenUpdating = False
[F2:F65536].ClearContents
[F2:F65536].Font.Bold = False
[F2:F65536].Font.ColorIndex = xlAutomatic
h = [E65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub
'---tris préalables---
[A:E].Sort [A1], , [B1], Header:=xlYes
[D:D].Insert: [A:A].Copy [D1]
[D:F].Sort [D1], , [E1], Header:=xlYes
[D:D].Delete
'---remplissage de la colonne F---
[F2].Resize(h) = [E2].Resize(h).Value
'---comparaison avec la colonne C---
For Each cel In [F2].Resize(h)
  For i = 1 To Len(cel.Text)
    If Mid(cel.Text, i, 1) <> Mid(cel.Offset(, -3).Text, i, 1) Then
      cel.Characters(i, 1).Font.Bold = True 'gras
      cel.Characters(i, 1).Font.ColorIndex = 3 'rouge
    End If
  Next
Next
End Sub
Fichier joint.

A+
 
Dernière modification par un modérateur:
Re : Comparaison entre 2 cellules/column

Bonjour Achil,

Notez que si les textes à comparer sont de longueurs différentes il faut prévoir 2 résultats.

Avec la solution des tris préalables :

Code:
Sub Comparer()
Dim h As Long, cel As Range, i As Integer
'---initialisation---
Application.ScreenUpdating = False
[F2:G65536].ClearContents
[F2:G65536].Font.Bold = False
[F2:G65536].Font.ColorIndex = xlAutomatic
h = Application.Max([C65536].End(xlUp).Row, [E65536].End(xlUp).Row) - 1
If h = 0 Then Exit Sub
'---tris préalables---
[A:E].Sort [A1], , [B1], Header:=xlYes
[D:D].Insert: [A:A].Copy [D1]
[D:F].Sort [D1], , [E1], Header:=xlYes
[D:D].Delete
'---remplissage des colonnes F et G---
[F2].Resize(h) = [C2].Resize(h).Value
[G2].Resize(h) = [E2].Resize(h).Value
'---comparaison des colonnes F et G---
For Each cel In [F2].Resize(h)
  For i = 1 To Application.Max(Len(cel.Text), Len(cel.Offset(, 1).Text))
    If Mid(cel.Text, i, 1) <> Mid(cel.Offset(, 1).Text, i, 1) Then
      cel.Characters(i, 1).Font.Bold = True 'gras
      cel.Characters(i, 1).Font.ColorIndex = 3 'rouge
      cel.Offset(, 1).Characters(i, 1).Font.Bold = True
      cel.Offset(, 1).Characters(i, 1).Font.ColorIndex = 3
    End If
  Next
Next
End Sub
Fichier (2).

A+
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
13
Affichages
919
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…