Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
367
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…