VBA: Copier ligne en haut tableau (après insertion ligne)

Bonjour

Besoin d'aide!

Voir fichier joint

Merci d'avance

Nonno

11essai.xlsm (39.45 Ko)

Bonsoir Nonno, bonsoir le forum,

Peut-être comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim TSS As ListObject 'déclare la variable TSS (Tableau Structuré Source)
Dim PLS As Range 'déclare la variable PLS (PLage Source)
Dim TSD As ListObject 'déclare la variable TSD (Tableau Structuré Destination)
Dim PLD As Range 'déclare la variable PLD (PLage Destination)
Dim LI As Integer 'déclare la variable LI (LIgne)

If Target.Address = "$B$4" Then 'condition : si le changement a lieu dans la cellue B4
    Set TSS = Me.ListObjects("tableau6") 'définit le tableau structuré source TSS
    Set PLS = TSS.DataBodyRange 'définit la plage PLS
    Set TSD = Worksheets("Archivage").ListObjects("Tableau1") 'définit le tableau structuré destination TSD
    Set PLD = TSD.DataBodyRange 'définit la plage destination PLD
    LI = Target.Offset(1, 0).Value - TSS.HeaderRowRange.Row 'définit la ligne LI (dans le tableau structuré TSS)
    If TSD.ListRows.Count = 0 Then TSD.ListRows.Add 'si le tableau structuré destination n'a aucune ligne, ajoute une ligne
    Set PLD = TSD.DataBodyRange 'définit la plage PLD
    PLS.Rows(LI).Copy PLD.Cells(1, 1) 'copie la ligne LI de la plage source PLS et la colle dans la première cellule de la plage PLD
    TSD.ListRows.Add (1) 'ajoute une ligne en premier dans le tableau structuré destination TSD
End If 'fin de la condition
End Sub

Bonjour ThauThème

Merci pour ta réponse, mais étant "nul" en VBA je n'arrive pas à la faire fonctionner!

Je pense que je me suis mal expliqué, j'ai omis de signaler que j'ai déjà dans (VBA Project) un private Sub d'où message "Nom Ambigu"

Bonne journée

Crdlmt

Nonno

4essai.xlsm (40.89 Ko)

Re,

Oui c'est un peu ma faute j'aurais dû préciser.

Les événementielles (les macros qui se déclenchent automatiquement en réaction à un événement donnée) comme Change, SelectionChange, etc., se placent toujours dans l'onglet où tu veux qu'elles agissent. Pas dans un module standard.
Comme tu avais déjà un événementielle Change dans l'onglet Mouvement, je l'ai remplacée par le code que je t'avais proposé.

4nonno-ep-v01.xlsm (39.36 Ko)

Merci Thau Thème

Super! avec les 'Commentaires' qui m'aident à la compréhension de ton codage

Encore merci

Cordialement

Nonno

Rechercher des sujets similaires à "vba copier ligne haut tableau insertion"