DoubleZero
XLDnaute Barbatruc
Bonsoir à toutes et à tous,
La macro ci-après :
trouvée sur ce fil : https://www.excel-downloads.com/thr...et-mettre-en-evidence-les-differences.143668/, permet la détection de différences entre deux colonnes.
Toutefois, je ne parviens pas à l’adapter à mes besoins.
Partant du même principe, je souhaiterais que la colonne « Différences » laisse apparaître clairement - couleur de police rouge/gras, par exemple - la (les) différence(s) entre deux colonnes de données, qu'il s'agisse de texte, numéro(s) et/ou nombre(s).
Auriez-vous, s’il vous plaît, une solution ?
Je vous remercie pour votre aide .
La macro ci-après :
Code:
Sub correction()
Dim maFeuille As Worksheet
Dim nbLigneVideConsecutive As Integer
Dim LigneEnCours As Long 'integer ne suffit pas (capacité + 32 000 / - 32 000, il y a 65 000 lignes dans la feuille)
Dim CarEnCours As Integer
Dim TxtTst As String, TxtRef As String, TxtAlert As String
Dim maCell As Range
Set maFeuille = ActiveWorkbook.ActiveSheet
Set maCell = maFeuille.Cells(6, 3)
nbLigneVideConsecutive = 0
LigneEnCours = 3
Do While nbLigneVideConsecutive < 5 ' paramétrable pour déclencher la sortie
If maFeuille.Cells(LigneEnCours, 2) = maFeuille.Cells(LigneEnCours, 3) Then
'les deux cellules sont identiques mais sont elles vides ?
If maFeuille.Cells(LigneEnCours, 2) = "" Then
'elles sont vides : j'incrémente mon compteur qui me sert à sortir
nbLigneVideConsecutive = nbLigneVideConsecutive + 1
End If
Else ' il y a une différence, analysons la.
Set maCell = maFeuille.Cells(LigneEnCours, 4)
TxtTst = maFeuille.Cells(LigneEnCours, 2)
TxtRef = maFeuille.Cells(LigneEnCours, 3)
maCell = TxtRef
For CarEnCours = 1 To Len(TxtTst)
If Mid(TxtTst, CarEnCours, 1) = Mid(TxtRef, CarEnCours, 1) Then
' si le caractère est identique je lui affecte la couleur noir RGB(0,0,0,)
With maCell.Characters(Start:=CarEnCours, Length:=1).Font
.Name = "Verdana"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = RGB(0, 0, 0)
End With
Else 'si le caractère est différent je lui affecte la couleur rouge RGB(255,0,0)
With maCell.Characters(Start:=CarEnCours, Length:=1).Font
.Name = "Verdana"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = RGB(255, 0, 0)
End With
End If
Next CarEnCours
End If
LigneEnCours = LigneEnCours + 1
Loop
MsgBox ("Correction terminée")
End Sub
trouvée sur ce fil : https://www.excel-downloads.com/thr...et-mettre-en-evidence-les-differences.143668/, permet la détection de différences entre deux colonnes.
Toutefois, je ne parviens pas à l’adapter à mes besoins.
Partant du même principe, je souhaiterais que la colonne « Différences » laisse apparaître clairement - couleur de police rouge/gras, par exemple - la (les) différence(s) entre deux colonnes de données, qu'il s'agisse de texte, numéro(s) et/ou nombre(s).
Auriez-vous, s’il vous plaît, une solution ?
Je vous remercie pour votre aide