Importer les données d'un fichier vers une feuille

Bonjour

Chaque jour des journées comptables sous format excel sont mis quotidiennement dans un répertoire (via partage), j'ai accès à ce répertoire j'ouvre le fichier en question qui comporte 14 colonnes et plus de 1000 lignes je le copie vers ma feuille "BD_compta" et je l'importe via macro vers ma feuille "compta" (qui fait le tri et importe uniquement certaines colonnes selon les critères fixées dans la feuille "utilisateurs"..)

NB: les fichiers du répertoire ont tous le nom sous forme ETAT_Compta_date de la journée (exemple: ETAT_Compta_20191020 , ETAT_Compta_20191021....)

Y a t il un moyen d'importer directement les données une fois le fichier du répertoire est ouvert, et ce sans passer par le copier et le coller vers la BD_compta et puis d'exécuter la macro pour que les données soient exporter vers la feuille "compta".

l'adresse du répertoire où seront mis les fichiers est: D:\AUDIT\Etat\Compta

la macro que j'utilise a été élaboré par un gentleman (que je remercie énormément).

Sub Importer()
Dim col1%, col2%, a, ub%, util, d As Object, I&, tablo, resu(), j%, v As Variant, n&
col1 = 1: col2 = 6 'à adapter
a = Array(2, 3, 4, 6, 7, 8, 10, 11, 12) 'numéros des colonnes à copier
ub = UBound(a)
'---mémorise les utilisateurs---
util = Sheets("Utilisateurs").[A4].CurrentRegion.Resize(, 2)
Set d = CreateObject("Scripting.Dictionary")
For I = 2 To UBound(util)
    d(UCase(util(I, 1)) & Chr(1) & util(I, 2)) = ""
Next I
'---tableau des résultats---
tablo = Sheets("BD_Compta").[A1].CurrentRegion.Resize(, a(ub))
ReDim resu(UBound(tablo), ub) 'base 0
For I = 2 To UBound(tablo)
    If d.exists(UCase(tablo(I, col1)) & Chr(1) & tablo(I, col2)) Then
        For j = 0 To ub
            v = tablo(I, a(j))
            If IsNumeric(v) Then resu(n, j) = CDbl(v) Else resu(n, j) = v
        Next j
        n = n + 1
    End If
Next I
'---restitution---
With Sheets("Compta")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    If n Then .Cells(.Rows.Count, 4).End(xlUp)(2).Resize(n, ub + 1) = resu
End With
'---RAZ---
With Sheets("BD_Compta")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    .[A1].CurrentRegion.Offset(1).Delete xlUp
End With
End Sub

Merci d'avance

Bonjour,

Il y a même mieux pour gagner du temps de traitement si c'est l'objectif, c'est de lire les données depuis un classeur resté fermé.

Je te laisse adapter l'exemple ci-joint à ton cas.

Merci

Marche pas ou peut être je ne sais comment l'adapter. ...quand je clique sur le bouton il y a débogage pour cette ligne

With Sheets(strActiveSheet).Range(strRange)

Est-ce que chaque paramètre est juste :

GetValuesFromAClosedWorkbook " D:\AUDIT\Etat\Compta", "ETAT_Compta_20191020.xlsx", "BD_Compta", "A1:N1000", "compta"

en particulier ici : compta, qui est le nom de la feuille recevant les données ?

oui bien sur...sauf que l'extension du fichier excel est ETAT_Compta_20191020.CSV

Rechercher des sujets similaires à "importer donnees fichier feuille"