1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

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

Discussion dans 'Forum Excel' démarrée par Tophcrea, 16 Avril 2018.

  1. Tophcrea

    Tophcrea XLDnaute Nouveau

    Inscrit depuis le :
    16 Avril 2018
    Messages :
    3
    "J'aime" reçus :
    0
    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.
     
  2. Chargement...


  3. Nairolf

    Nairolf XLDnaute Impliqué

    Inscrit depuis le :
    8 Mai 2012
    Messages :
    725
    "J'aime" reçus :
    41
    Sexe :
    Masculin
    Habite à:
    Bounty Islands
    Utilise:
    Excel 2010 (PC)
    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 :
    Code (Visual Basic):
    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
     
     
  4. Tophcrea

    Tophcrea XLDnaute Nouveau

    Inscrit depuis le :
    16 Avril 2018
    Messages :
    3
    "J'aime" reçus :
    0
    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.
     
  5. Tophcrea

    Tophcrea XLDnaute Nouveau

    Inscrit depuis le :
    16 Avril 2018
    Messages :
    3
    "J'aime" reçus :
    0
    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
     

    Pièces jointes:

  6. Nairolf

    Nairolf XLDnaute Impliqué

    Inscrit depuis le :
    8 Mai 2012
    Messages :
    725
    "J'aime" reçus :
    41
    Sexe :
    Masculin
    Habite à:
    Bounty Islands
    Utilise:
    Excel 2010 (PC)
    Re,

    Je comprends mieux ton besoin maintenant, je te propose le code ci-dessous :
    Code (Visual Basic):
    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.
     

Partager cette page