Mettre en couleur les changements

Bonjour à tous,

J'aimerais pouvoir mettre les changements, opérés par la macro, en couleurs. Je pense que ceci est assez facile, mais étant toujours un gros débutant en la matière, je peine un peu à trouver le code exact.

Cette fonction sera utilisée pour une macro ne faisant que des replace. Ayant un fichier de 100.000 lignes, les couleurs m'aideraient à répéré d'un coup d'oeil tous les changements.

exemple :

Columns("K:K").Select

Selection.Replace What:="BEFR", Replacement:="BE", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Pouvez-vous m'aider ?

Grand merci !

Bonjour

Une solution

Avant le "Replace"

Copier la colonne K dans une colonne Vierge

Faire le "Replace"

Ensuite avec une simple MEFC comparer les 2 colonnes : Style =K1<>Z1 --> couleur

Disons que j'ai pas mal de colonnes dans lequel je dois travailler. Je ne préfère donc pas doubler mes colonnes.

Si je n'avais qu'une colonne à changer, j'aurais pu prendre ta solution.

Merci quand même !

Une autre solution svp ?

Quelqu'un aurait-il une soluce siouplé ?

Ajoute ceci à ta macro avant de faire le remplacement :

For ligne = 1 To Cells(Rows.Count, "K").End(xlUp).Row
    If Range("K" & ligne).Value = "BEFR" Then
    Range("K" & ligne).Interior.Color = 65535
    End If
Next ligne

Ok super ça marche !

Encore une petite question, si je peux. Mon fichier contient en fait plus de 100 replace à faire, d'où la macro. Plutôt que donc que de coller le code suivant avant chaque replace :

For ligne = 1 To Cells(Rows.Count, "K").End(xlUp).Row
    If Range("K" & ligne).Value = "BEFR" Then
    Range("K" & ligne).Interior.Color = 65535
    End If

...existe-t'il un moyen de faire un seul code demandant d'un seul coup que tous les changements soient mis en couleurs ?

Je ne pense pas, mais le mieux serait de mettre le bout de code en fonction et l'appeler avant chaque replace, avec comme argument la lettre de la colonne et le texte avant remplacement.

Tu peux aussi inclure dans cette fonction le code du replace de façon à compacter le code et le rendre plus lisible.

Function coloriseetremplace(colonne As String, ancien As String, nouveau As String)

For ligne = 1 To Cells(Rows.Count, colonne).End(xlUp).Row
    If Range("K" & ligne).Value = ancien Then
    Range("K" & ligne).Interior.Color = 65535
    End If
Next ligne

Columns(colonne & ":" & colonne).Select
Selection.Replace What:=ancien, Replacement:=nouveau, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

End Function

Sub test()

coloriseetremplace "K", "BEFR", "BE"

End Sub

Effectivement c'est pas simple.

Merci beaucoup pour ton aide en tout cas !

J'ai bien appris

Rechercher des sujets similaires à "mettre couleur changements"