XL 2016 Macro système d'archivage d'un tableau dans un autre tableau déroulant

babacool22

XLDnaute Nouveau
Bonjour, bonsoir à toutes et à tous.

J'aimerai solliciter votre aide pour résoudre l'erreur sur mon code.
Le contexte : Sur un jeu vidéo j'achète et je revends des objets en faisant une plus value, j'enregistre mes transactions dans un tableau excel, afin de ne pas avoir un tableau principal trop "gros" j'ai essayais de mettre en place un système d'archivage à partir d'un bouton qui enverrait les données de mon tableau principal dans un tableau déroulant situé sur une autre feuille "Archive".
J'en suis rendu ici avec une erreur de compilation sur ma variable table qui est mon tableau, voici le code ainsi qu'un fichier de test.
VB:
Private Sub CommandButton1_Click()

 'Déclaration des variables
    Dim table As Range
    Dim archive As Worksheet
    Dim lastRow As Long

    'Sélection de la plage de cellules à archiver
    Set table = ThisWorkbook.Sheets("Feuil1").Range("D8:K37")

    'Vérification de l'existence de la feuille archive
    On Error Resume Next
    Set archive = ThisWorkbook.Sheets("Archive")
    On Error GoTo 0
    If archive Is Nothing Then
        'Création d'une nouvelle feuille pour l'archive
        Set archive = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        archive.Name = "Archive"
    End If

    'Trouver la dernière ligne utilisée dans la feuille archive
    lastRow = archive.Cells(archive.Rows.Count, "A").End(xlUp).Row + table.Rows.Count

    'Copie des données du tableau à archiver
    table.EntireRow.Copy Destination:=archive.Range("A" & lastRow)

    'Formater la plage de cellules copiée comme un tableau
    archive.Range ("A" & lastRow & ":K" & lastRow + [SIZE=5][B][COLOR=rgb(250, 197, 28)]table[/COLOR][/B][/SIZE])
End Sub

PS: mon erreur est "table" écris en jaune.

En vous remerciant pour l'intérêt porté à mon problème.

Bien cordialement,
Babacool22
 

Pièces jointes

  • tableau achat revente avc macro.xlsm
    39.7 KB · Affichages: 10

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Comme votre macro ne dis pas ce que vous voulez faire ensuite, essayez avec table.Rows.Count, si je comprends bien. Parce lastRow + table c'est mélanger torchon et serviettes (Nombre Entier et Objet Range)
archive.Range ("A" & lastRow & ":K" & lastRow + table.Rows.Count)

Mais si vous utilisiez un tableau structuré pour vos archive, vous n'auriez aucun besoin de le mettre en forme.
 

babacool22

XLDnaute Nouveau
Bonjour Hasco,

Merci de l'intérêt porter à mon problème.
J'ai essayer votre solution, j'ai une erreur ici :

archive.Range ("A" & lastRow & ":K" & lastRow + table.Rows.Count)

Le but de cette macro est d'archivé mon tableau principal et de stocké les informations de celui-ci dans un tableau déroulant situé sur une autre feuille.

Je n'ai pas connaissance du tableau structuré, je vais me documenter sur le net.

Bien cordialement,
Babacool
 

Discussions similaires

Réponses
11
Affichages
650

Statistiques des forums

Discussions
312 084
Messages
2 085 190
Membres
102 809
dernier inscrit
Sandrine83