Copie automatique d'une colonne suite à une modification

Bonjour,

je veux copier les cellules d'une colonne d'une feuille à une autre suite à une modification de n'importe quelle cellule de la colonne source.

vous trouvez ci-joint un fichier pour démonstration.

Merci.

177colonne.zip (6.78 Ko)

Bonjour,

Avec ce code à placer dans la feuille "Origine"

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan pour compteabadou
Dim lg As Integer
If Not Intersect(Target, Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
lg = Sheets("Copie").Range("A" & Rows.Count).End(xlUp).Row + 1
Target.Copy Sheets("Copie").Range("A" & lg)
End If
End Sub

Clique droite sur l'onglet "Origine" puis choisir "visualiser le code" et coller le code ci-avant dans la fenêtre

Amicalement

Bonjour,

Merci Dan pour la ta réponse,

ça marche bien mais est ce qu'il y a une méthode pour garder toujours la copie de la colonne source même après insertion d'une ligne dans la source. je pense que je dois parcourir les cellules après cette insertion pour assurer la copie.

en quelque sorte je veux avoir la colonne source identique à la destination (modification, insertion, suppression ).

Merci.

Bonjour à tous,

Ici, on copie la colonne entière

Private Sub Worksheet_Change(ByVal Target As Range)
Dim EnT$
    If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
            Application.ScreenUpdating = False
        With Sheets("copie")
            EnT = .Range("a1") 'en-tête
            Columns("a").Copy Destination:=.Range("a1")
            .Range("a1") = EnT
        End With
    End If
End Sub

Salut Dan

Amicalement

Claude

re,

Salut Claude,

ça marche bien mais est ce qu'il y a une méthode pour garder toujours la copie de la colonne source même après insertion d'une ligne dans la source. je pense que je dois parcourir les cellules après cette insertion pour assurer la copie

cela fait deux choses là... soit tu modifies une cellule ou tu ajoutes une cellule par insertion de ligne ?

Et la c'est la cellule modifiée que tu veux en feuille copie ou la colonne complète avant le changement de cellule ou insertion d'une nouvelle ligne ?

Amicalement

Merci dubois,

ça marche,

mais ça bug quand j'insère une ligne. dans la feuille source.

Merci.

re,

Tout dépend du contexte de l'opération,

essaye en ajoutant cette ligne

If Target.Count > 1 Then Exit Sub

mais les lignes insérées ou supprimées ne se répercutent

pas dans destination.

code complet

Private Sub Worksheet_Change(ByVal Target As Range)
Dim EnT$
    If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
            Application.ScreenUpdating = False
        With Sheets("copie")
            EnT = .Range("a1") 'en-tête
           Columns("a").Copy Destination:=.Range("a1")
            .Range("a1") = EnT
        End With
    End If
End Sub

si pas çà, envoie le fichier

Claude

Dan a écrit :

cela fait deux choses là... soit tu modifies une cellule ou tu ajoutes une cellule par insertion de ligne ?

Et la c'est la cellule modifiée que tu veux en feuille copie ou la colonne complète avant le changement de cellule ou insertion d'une nouvelle ligne ?

Amicalement

re Dan,

c'est la colonne entière que je veux recopier et pas obligé avant le changement mais aussi après le changement et même comme j'ai dit à dubois, après insertion et suppression des lignes.

en tous cas je pense que ça marche avec la solution de dubois et si tu as autre solution plus efficace elle sera la bienvenue.

Merci à vous.

re,

Ok si la solution de Claude te convient.

N'oublie pas de cloturer le fil.. --> clique sur le V vert.

Amicalement

Merci à vous Dan et Claude.

Rechercher des sujets similaires à "copie automatique colonne suite modification"