VbCopier un tableau d'une feuille vers autre avec mise à jour sans doublon

Bonsoir

J'essaye de copier les données d'un tableau qui est en feuille 3 de A1 à E29 et qui sera alimenté de mises à jour par un robot

vers un tableau en feuille 1 qui contiendra l'historique et doit récupérer les nouveaux éléments de la feuille 3. Sans doublons (la date peut servir de critère)

J'ai ecris le code suivant:

Sub CopieBD()

Sheets("Feuil3").Activate

Range("A2").CurrentRegion.Copy Destination:=Feuil1.Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
Feuil1.Select

End Sub

Il met copie bien les données de la feuille 3 sur la feuille 1 mais si j'execute à nouveau il ne se passe rien

alors qu'il aurait du les recopier en dessous à nouveau (je ne me suis pas encore occupé des doublons)

Le problème est qu'il compte les lignes de la feuille3 (29)et se positionne à la ligne suivante dans la feuille 1

alors que je voudrais qu'il compte les lignes de la feuille 1 pour se positionner à la ligne suivante....

Et je n'y arrive pas...

help!

Bonsoir Mr

Un fichier exemple est très utile pour trouver une solution adéquate a votre question

Merci de me répondre!

Je travaille sur ce fichier que j'adapterai ensuite

image

et je veux le recopier sur la feuill1 (Date) qui est vide actuellement en A1

mais ca j'y arrive , la difficulté est de pouvoir ensuite recopier les mises à jour dans la première ligne vide de la feuille1

et ensuite de ne as recopier les doublons (date identique) par exemple....

Merci!

Bonsoir,

Une proposition à adapter à ton fichier.

Cdlt.

7terry1515.xlsm (22.50 Ko)
Public Sub CopyData()
Dim lo As ListObject, lo2 As ListObject, r As Range
    Set lo = Range("T_Source").ListObject
    Set lo2 = Range("T_Cible").ListObject
    If lo.InsertRowRange Is Nothing Then
        With lo2
            If .InsertRowRange Is Nothing Then
                Set r = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
            Else
                Set r = .InsertRowRange.Cells(1)
            End If
        End With
        lo.DataBodyRange.Copy
        r.PasteSpecial xlPasteValuesAndNumberFormats
        Application.CutCopyMode = False
        lo2.Range.RemoveDuplicates Columns:=1, Header:=xlYes
    End If
    Set r = Nothing: Set lo2 = Nothing: Set lo = Nothing
End Sub

Merci Jean-Eric!

Mais que mettre dans T_source et T_cible?

Comment lui faire comprendre que la source est en feuille 3 et la cible en feuille 1(1ère ligne vide)?...

voici un très simple exemple peut être utile pour vous pour déterminer et filtres les doublons .

Bonjour,

Les données sont sous forme de tableaux structurés (dynamiques).

Ma proposition révisée.

j'ai inhibé la suppression des doublons en colonne Date (exemple).

Cdlt.

11terry1515.xlsm (23.66 Ko)

Mille mercis Jean-Eric,

C'est génial, cela fonctionne parfaitement! et avec le document je comprends mieux!

Je vais étudier cela de prés pour m'améliorer!

Vraiment merci! merci! je ramais toute la journée d'hier! je n'avais pas pensé à nommer les tableaux (entre autre..)!

Rechercher des sujets similaires à "vbcopier tableau feuille mise jour doublon"