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

XL 2016 VBA Ajout dans tableau structuré

MickaelKeul

XLDnaute Nouveau
Bonjour,
J'ai un petit problème de code... je dois rajouté un ensemble de valeurs copier d'un tableau externe dans mon tableau structuré mais je voudrais que ces valeurs s'ajoute a la suite dans mon tableau structuré.
Je suis pas tres doué maisj'ai eu beau chercher je trouve pas ...

Merci de votre aide

Code:
' Copie les valeurs du classeur 1
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy

'Colle les valeurs dans le classeur 2
Workbooks("Outil Mercu (2).xlsm").Worksheets("Base").Range("BaseArticles").PasteSpecial Paste:=xlPasteValues
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez :
VB:
Workbooks("Outil Mercu (2).xlsm").Worksheets("Base").ListObjects("BaseArticles").ListRows.Add _
   .Range.Resize(Selection.Rows.Count).Value = Selection.Value
Et ce serait encore mieux en évitant de passer par Select et Selection mais plutot par une affectation par Set à variable As Range
 

MickaelKeul

XLDnaute Nouveau
Bon alors j'ai trouvé une solution qui va peut être vous piquer mais ça marche ...ça doit pas être académique !
du coup je vais vous mettre le code complet:
VB:
Sub Importer()

' **********************************
' Importation des données
' **********************************

Dim ListeFichier As Variant
Dim MonClasseur As Workbook

    Application.CutCopyMode = False
    Application.ScreenUpdating = False

    ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez le Fournisseur", _
                    filefilter:="fichiers Excel(*.xls*),*xls*", buttontext:="Cliquez")
        
    If ListeFichier <> False Then
    
        Set MonClasseur = Application.Workbooks.Open(ListeFichier)
    
        'On copie les données
        Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).row, 28)).Copy
    
        ' on colle dans la feuille
        If Feuil1.ListObjects("BaseArticles").ListColumns("Code GEN").Range.Cells(2, 1).Value = "" Then
        Workbooks("Test-Outil.xlsm").Worksheets("Base").Range("BaseArticles").PasteSpecial Paste:=xlPasteValues
        Else
        Workbooks("Test-Outil.xlsm").Worksheets("Base").Range("BaseArticles").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
        End If
        
        Application.DisplayAlerts = False

    
        MonClasseur.Close
    
    End If

ça semble marcher...
 

Dranreb

XLDnaute Barbatruc
C'était bien la peine de nous demander une solution, qui marche quand elle est adaptée au contexte, qu'on n'avait pas eu la possibilité de voir, pour ne finalement pas l'appliquer
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…