Macro comparer colonne & decaler vers le bas

Bonjour à tous

je suis nouveau et je suis novice en VBA Excel

Je cherche à effectuer un macro pour un tableau comportant 45 000 lignes

Explications

J ai un tableau avec 4 colonnes

je souhaiterai automariser le decaler vers bas pour les colonnes C & D

dans le cas ou Colonne A n est pas egale à la colonne B

si joint un fichier exemple avec mon document de base et le document final souhaité

Si quelqu un pouvait m aider , ca eviterai de faire les 45 000 lignes manuellement

Dans l attente de vous lire

Remerciements par avance

Pierre

35modele.zip (7.56 Ko)

Bonjour,

Pour 45000 lignes, il faudrait faire des tableaux (je sais pas faire !)

à tester

Sub Essai()
Dim Lg&, cL%, i%, x%, c As Range
    Application.ScreenUpdating = False
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    cL = Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1
    For i = 2 To Lg
        Set c = Range("b1:b" & Lg).Find(Cells(i, "a"), LookIn:=xlValues)
        If Not c Is Nothing Then
            Cells(c.Row, "b").Resize(1, cL - 2).Copy Destination:=Cells(i, cL)
        End If
    Next i
        Cells(2, cL).Resize(Lg, cL).Cut Destination:=Cells(2, "b")
        Range("a1").Activate
        Range("a1") = "tableau final"
End Sub

Amicalement

Claude

27icreas-colonnes.zip (15.47 Ko)

Bonjour Claude

Merci de ton aide pour ce script

mais je viens d essayer et il blocage au niveau de la ligne 6

Peux tu encore m aider

je peux si tu le souhaites envoyer mon docuement par email PV

Joyeux Noel

Merci

Pierre

re,

Non, envoie simplement la structure réelle de la feuille,

pas besoin des 40000 lignes

Claude

re,

merci de rester sur le fil du forum, plutôt qu'en MP

essaye

Sub Essai()
Dim Lg&, cL%, i%, x%, c As Range
    Application.ScreenUpdating = False
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    cL = Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1
    For i = 2 To Lg
        Set c = Range("c1:c" & Lg).Find(Cells(i, "b"), LookIn:=xlValues)
        If Not c Is Nothing Then
            Cells(c.Row, "c").Resize(1, cL - 3).Copy Destination:=Cells(i, cL)
        End If
    Next i
        Cells(2, cL).Resize(Lg, cL - 3).Cut Destination:=Cells(2, "c")
        Range("a1").Activate
End Sub

édit 25/12 16h06 :

erreur dans les Dim, il faut lire

Sub Essai()
Dim Lg&, cL%, i&, c As Range

Amicalement

Claude

Bonjour

Encore merci pour ton aide qui m a fait gagner enormement de temps

Et bravo pour ce Forum

Bonne fêtes de fin d année à tous

Cordialement

Pierre

Rechercher des sujets similaires à "macro comparer colonne decaler bas"