Macro Excel 2016

bonjour, depuis plusieurs jours j'essaye de modifier une macro qui fonctionne bien mais qui n'agit que sur une seul colonne donc mon souhait serait que:

lorsqu'une donnée est indiquée sur la feuille 1/colonne A, elle soit mise en couleur sur la feuille2 (colonne A,B et éventuellement sur d autres colonnes par la suite)

je vous remercie par avance de votre soutien .

régis.

4essai.xlsm (16.54 Ko)

Bonjour Rio44,

Modification du code. Pour l'exemple j'ai choisi la colonne Z1 en finale. Mais si ton tableau devait être plus grand tu peux prendre ZZ1... etc...

Sub Compare()
Dim Lig1 As Long, Derlig1 As Long, Derlig2 As Long, Cp As Variant
Dim Lig2 As Long
    Derlig1 = Sheets("Feuil1").Range("A65535").End(xlUp).Row
    Derlig2 = Sheets("feuil2").Range("A65535").End(xlUp).Row
    DerCol = Sheets("feuil2").Range("Z1").End(xlToLeft).Column
    With Sheets("Feuil2")
    For Col = 1 To DerCol
        For Lig1 = 2 To Derlig1
            Cp = Sheets("feuil1").Cells(Lig1, "A")
            For Lig2 = 2 To Derlig2
                If Cp = .Cells(Lig2, Col) Then
                    .Cells(Lig2, Col).Interior.ColorIndex = 6
                End If
            Next Lig2
        Next Lig1
    Next Col
    End With
End Sub

Bons tests, bonne continuation.

bonjour X Cellus,

quelle rapidité ! ta macro fonctionne parfaitement juste indiqué la colonne qui suit car si je lui indique Z1, cette colonne n'est pas prise en compte donc lui indiquer la colonne AA.

alors un GRAND merci et vive ce forum d'entraide.

(je vais quand même décortiquer ce code pour mieux le comprendre, je débute en vba)

A nouveau,

Ne pas oublier de clore le sujet si cela convient. Merci.

bonjour X Cellus

petit retour de ton code j ai voulu faire un test sur un classeur autant lorsqu'il y a que 100 lignes ça fonctionne par contre quand j’atteins les 100000 lignes (oui je sais se sera un gros classeur) j ai l'impression qu' excel tourne sans fin et n'aboutit plus.

je suis obligé de le forcer à fermer.

excel 2016 64bit.

as tu d'autres pistes?

merci.

Bonjour

Dans ton code avant le End Sub rajoute cela

Application.ScreenUpdating = True

Bonjour Rio44,

Effectivement si tu as beaucoup de lignes et de colonnes. Il prendra un peu plus de temps.

Par contre ajoute en début de macro et en fin de macro ces lignes avec Application.ScreenUpdating.

Sub Compare()
Dim Lig1 As Long, Derlig1 As Long, Derlig2 As Long, Cp As Variant
Dim Lig2 As Long 
Application.ScreenUpdating=False   'Evite le rafraîchissement de l'écran
'suite du code macro
....
    Next Lig1
  Next Col
  End With
Application.ScreenUpdating=True   'Remet le rafraîchissement de l'écran
End Sub

Bons tests, bonne continuation.

rebonjour X Cellus

je vais essayé avec ces modification

j'ai encore une question qui est lié à mon problème, les colonnes auront des tailles différentes ( des plus longues et plus courtes en nombre de lignes) il y a t il une amélioration à faire par rapport à ces différence(ex: colonne A à 150000 lignes et B 125000 lignes etc.)

merci.

Rechercher des sujets similaires à "macro 2016"