XL 2013 Importation automatique de fichiers excel chaque jour pour completer une DB excel

Tophcrea

XLDnaute Nouveau
Bonjour,

Je voudrais importer de manière automatique ou via un bouton des fichiers excel ayant toujours la même syntaxe de nom complété par la date et l'heure qui diffère chaque jour.
Je m'explique j'ai un fichier DB dans lequel les colonnes A et B sont à compléter en fonction de l'action faite sur le dossier client . Dans ce fichier je voudrais chaque jour importer en colonne C des données issues d'un extract journalier pour compléter ma DB.
Je me doute que je vais devoir utiliser du VBA, pour lui dire d'importer des données du fichier blabla + date du jour, de sélectionner toute les données présente et de les mettre à la suite de ma DB en colonne C et suivantes

Quelqu'un pourrait m’éclairer ?
D'avance merci de vos commentaires constructifs.
 

Nairolf

XLDnaute Impliqué
Salut,

Sans fichier exemple c'est difficile de te répondre précisément, mais voici quelques lignes de code (écrites à la volée) pour te donner la base de ce qui pourrait être fait :
VB:
sub test()

NbLigneAImporter=100 'pourrait être calculer avec un worksheetfunction.counta

for i =1 to NbLigneAImporter

workbook("DB").worksheets("mon_onglet").range("C" & range("C65000").End(xlUp).row + i-1)=workbook("blabla").worksheets("mon_onglet blabla").cells(i+1,1) 'il faut peut-être ajouter avant la boucle un workbook.open pour que ça fonctionne

next i

end sub
 

Tophcrea

XLDnaute Nouveau
Merci de ce début de réponse, j'essaie de combiner des fichiers exemple, mais ils contiennent des données confidentielles qu'il faut je transforme avant de publier.
 

Tophcrea

XLDnaute Nouveau
Voici deux fichiers exemples se rapportant à ma question. Le fichier DB est le fichier dans lequel je veux importer à la suite des données présente en colonne F les données se trouvant dans le fichier nom_de_la_Zone_2018-04-07-06-23-58 , de B5 à la dernière ligne (qui est variable) en colonne S
 

Fichiers joints

Nairolf

XLDnaute Impliqué
Re,

Je comprends mieux ton besoin maintenant, je te propose le code ci-dessous :
VB:
Sub copie()

Dim tab1()
Dim classeur As Workbook
Dim NomSource As String
Dim DateHeure As String
Dim chemin As String
Dim c As Integer
Dim d As String

DateHeure = "2018-04-07-06-23-58"
NomSource = "nom_de_la_Zone_" & DateHeure & ".xlsx"
chemin = "C:\Users\aud\Documents\aide excel\Tophcrea\"

For Each classeur In Workbooks
    If classeur.Name = NomSource Then
        c = 1
    End If
Next

If c <> 1 Then
    d = chemin & NomSource
    Workbooks.Open d, ReadOnly:=True
End If

NbLigneAImporter = Application.WorksheetFunction.CountA(Workbooks(NomSource).Worksheets("Rapport 1").Range(Workbooks(NomSource).Worksheets("Rapport 1").Range("B5").Address, Workbooks(NomSource).Worksheets("Rapport 1").Range("B5").End(xlDown).Address))

tab1 = Workbooks(NomSource).Worksheets("Rapport 1").Range(Workbooks(NomSource).Worksheets("Rapport 1").Range("B5").Address, Workbooks(NomSource).Worksheets("Rapport 1").Range("S" & 4 + NbLigneAImporter).Address).Value
Workbooks("DB.xlsm").Worksheets("Feuil1").Range("F" & Workbooks("DB.xlsm").Worksheets("Feuil1").Range("F1").End(xlDown).Row + 1, "W" & Workbooks("DB.xlsm").Worksheets("Feuil1").Range("F1").End(xlDown).Row + NbLigneAImporter) = tab1

Workbooks(NomSource).Close SaveChanges:=False

End Sub
Le code ouvre le fichier source (s'il n'est pas déjà ouvert), importe les données et le referme.
 

Discussions similaires


Haut Bas