Extraction de données VBA

Bonjour,

Je débute en VBA donc je suis en galère dans l'écriture d'un code.

Je voudrais extraire des données de plusieurs fichiers. En effet je voudrais extraire une seule colonne du fichier mais cela ne marche pas. le code marche que si je veut extraire une cellule.

Function Selectionner_Fichiers(sTitre As String) As Variant
Dim sFiltre As String, bMultiSelect As Boolean

    sFiltre = "Fichiers XYZ (.xls)(.xlsm), *.xls*"
    bMultiSelect = True 'Permet de choisir plusieurs fichiers à la fois
    Selectionner_Fichiers = Application.GetOpenFilename(Filefilter:=sFiltre, Title:=sTitre, MultiSelect:=bMultiSelect)
End Function

'------------------------------------------------------------------------------
' Macro qui permet de compiler les informations contenues dans
' différents fichier pour les regrouper dans un fichier récapitulatif
' GCXL
'-------------------------------------------------------------------------------
Sub Creer_Recap()
Dim wbRecap As Workbook         'fichier recap
Dim wsRecap As Worksheet        'feuille où on écrit les données
Dim wbSource As Workbook        'fichier à ouvrir
Dim wsSource As Worksheet       'feuille où on cherche les données
Dim DernLign As Integer         'ligne où on écrit les données
Dim vFichiers As Variant        'noms des fichiers
Dim i As Integer, k As Integer
Dim rgRecap As Range            'plage où on copie les données

Set wbRecap = ThisWorkbook       'Fichier récapitulatif
Set wsRecap = wbRecap.Sheets(1)  'on écrit dans la feuille 1 du fichier récapitulatif

' --- Ouvrir boite de dialogue pour sélectionner les fichiers à ouvrir
    vFichiers = Selectionner_Fichiers("Sélectionner les fichiers à compiler") 'Appel de Fonction pour ouvrir fichiers

' --- Vérifier qu'au moins un fichier à été sélectionné
If Not IsArray(vFichiers) Then
        Debug.Print "Aucun fichier sélectionné."
        MsgBox "Erreur! Aucun/Mauvais fichier sélectionné."
Exit Sub
End If
On Error Resume Next

    Application.ScreenUpdating = False

' --- Boucle à travers les fichiers
For k = 1 To UBound(vFichiers)
        Application.StatusBar = ">> Lecture du fichier #" & k & "/" & UBound(vFichiers)

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' C'est ici qu'on écrit les instructions
Set wbSource = Workbooks.Open(vFichiers(k))                        'on ouvre le fichier
Set wsSource = wbSource.Sheets(1)                                  'On copie les données de la feuille 1
        DernLign = wbRecap.Sheets(1).Range("A6000").End(xlUp).Row + 1     'ligne pour écrire le log des fichiers compilés

' - On copie les données vers le fichier Recapitulatif; à adapter
Set rgRecap = wsRecap.Range("A65000").End(xlUp).Offset(1, 0)
       rgRecap = vFichiers
With wsSource
           ' rgRecap.Offset(1, 1) = .Range("A24")'
        .Range("A1", .Range("1000").End(xlUp).MergeArea).Copy

End With

        wbRecap.Sheets(1).Range("A1").PasteSpecial xlPasteValues
        wbSource.Close              'fermer fichier
Set wbSource = Nothing
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Next k

    Application.ScreenUpdating = True
    Application.StatusBar = False

Merci pour votre aide!

Bonjour et bienvenu sur le forum,

Il manque un peu de détails sur les fichiers. Mais si les fichiers sources ont tous la même structures, vous pouvez vous tourner vers POwer query.

Un exemple des fichiers sources et du résultat escompté après extraction ? (fichier sans données confidentielles sont conseillées pour une aide adpaté)

Bonjour et merci beaucoup !

Le but serai de créer vraiment un bouton qui permet d'extraire que certaines données de plusieurs fichiers: notamment deux colonnes précises. Comme c'est pour l'entreprise de mon père il veut un truc très simplifié et pas avoir besoin de refaire l'opération sur Power Query.

En effet ce sont de .xls qui contiennent des factures et je veux récupérer la colonne avec la référence et le nom des pièces en un seul fichier excel.

Xls ? Quel est la version excel utilisé ? pcq la on parle d'un format daté de 20 ans.

Comme dit plus haut, sans exemple on va pas pouvoir vous aidez bcp plus que cela.

Rechercher des sujets similaires à "extraction donnees vba"