Chercher valeur dans un autre classeur journalier

Bonsoir,

Je cherche un moyen plus simple pour remplir ce tableau. Je dispose d'un logiciel qui fait une extraction en fichier excel de mon CA journalier et je dois recopier chaque total de chaque CA. Toutes mes extractions sont enregistrés en date du jour sous la forme 01012016.xls

J'ai tenté recherchev =RECHERCHEV("Total";[01012016.xlsx]Feuil1!A:A;1;1)

Mais ça va me prendre beaucoup de temps. 365 jours x 12 colonnes à modifier chaque table matrice et n index colonne

Je dois prendre chaque total par service (confiserie, poisson....) du jour J dans le fichier du jour J sur la ligne de ce fichier au jour J dans la bonne colonne.

De mon fichier 01012016.xls, je dois copier le total CA confiserie dans mon fichier RécapCA sur la ligne 01/01/2016 de la colonne CA confiserie....

De mon fichier 02012016.xls, je dois copier le total CA confiserie dans mon fichier RécapCA sur la ligne 02/01/2016 de la colonne CA confiserie

et ainsi de suite pour tous les jours et tous les CA des différents services

D'habitude la macro ne me fait pas peur mais là je bloque, je ne sais pas comment procéder.

cordialement

9classeur1.xlsx (23.16 Ko)

bonsoir,

Confirmer que tous les fichiers ont une structure identique, même colonne au même endroit.

Est-ce toujours la dernière ligne du fichier qu'il faut importer ?

A+

Tous les fichiers exportés ont la même structure. Seule le nombre de ligne diffère en fonctionne l'activité mais le total est toujours sur la derniere ligne.

bonsoir,

Essaie ça : (non testé...)

Sub test()
Dim i%, iR&, k%, varName$, chemin, source, arr, tablo
Application.ScreenUpdating = False
source = Range("A1:A33") 'attention ce sont les dates qu'on va rechercher !
chemin = "C:\Users\Utilisateur\Desktop\Documents\_EXC\"
   For i = 3 To 33        '3parce que sur ton modèle le 1er janvier est ligne 3
   arr = Split(ActiveSheet.Cells(i, 1).Text, "/")
   varName = arr(0) & arr(1) & arr(2) & ".xls"
       Workbooks.Open Filename:=chemin & varName
       With Workbooks(varName)
         iR = .Worksheets(1).Range("A" & .Worksheets(1).Rows.Count).End(xlUp).Row
         tablo = .Worksheets(1).Range("A" & iR & ":L" & iR)
         Workbooks(varName).Close
       End With
      For k = 1 To 12
         ActiveSheet.Cells(i, k + 1) = tablo(1, k)
      Next
   Next
End Sub

Ajuster la source, le chemin, vérifier que la première date à récupérer est bien sur la ligne 3 et... croise les doigt !

En cas d'erreur me donner le message et la ligne qui plante...

Et si tu veux que ce soit moi qui teste, fournis moi un fichier 01012016.xls...

A+

Bonjour,

Ca marche à part qu'il me prend la colonne A (voir image) ce qui me décale tout. Je me suis pas penché plus sérieusement dessus mais je pense que je dois changer une variable.

Dans le cas ou le fichier n'existe plus, y'a un moyen pour qu'il m'envoit un message d'erreur plutôt qu'une erreur d'exécution ? (c'est pas important, c'est juste "au cas ou". mais comme c'est moi qui suis en charge de ce projet, ce ne sera pas un problème si j'ai un message d'alerte vba lol

merci en tout cas, je vais prendre un moment pour décortiquer tout ça !!

et chapeau ! on dirati que tu l'as fait sans le fichier ^^

capture2

bonjour,

essaie ça :

Sub test()
Dim i%, iR&, k%, varName$, chemin, source, arr, tablo
Application.ScreenUpdating = False
source = Range("A1:A33") 'attention ce sont les dates qu'on va rechercher !
chemin = "C:\Users\Utilisateur\Desktop\Documents\_EXC\"
   For i = 3 To 33        '3parce que sur ton modèle le 1er janvier est ligne 3
   arr = Split(ActiveSheet.Cells(i, 1).Text, "/")
   varName = arr(0) & arr(1) & arr(2) & ".xls"
   On Error GoTo GESTERR
       Workbooks.Open Filename:=chemin & varName
       With Workbooks(varName)
         On Error Resume Next
         iR = .Worksheets(1).Range("A" & .Worksheets(1).Rows.Count).End(xlUp).Row
         tablo = .Worksheets(1).Range("B" & iR & ":L" & iR)
         Workbooks(varName).Close
       End With

      For k = 1 To 11
         ActiveSheet.Cells(i, k + 1) = tablo(1, k)
      Next
   Next
Exit Sub
GESTERR:
MsgBox arr(0) & arr(1) & arr(2) & ".xls n'existe pas !"
Resume Next
End Sub

A+

Rechercher des sujets similaires à "chercher valeur classeur journalier"