Importer un grand nombre de fichiers csv en faisant la moyenne

Bonjour,

Désolé si je ne suis pas claire dans mon titre.

Voilà je débarque dans le monde des VBA, bien que trés utile j'ai l'impression que c'est du chinois.

Je cherche un moyen d'importer des classeurs csv dans excel : là c'est la partie simple.

Dans chaque classeur j'ai 300 lignes et 727 colonnes et pour mon traitement de données je n'es besoin que de la moyenne. J'ai un peu plus de 400 classeurs csv donc manuellement c'est inenvisageable.

Donc il me faut quelque chose qui puisse d'abord faire la moyenne dans les csv et puis les importer ou un truc du genre pour au final n'avoir qu'un seul classeur excel avec la moyenne de chaque classeur csv importés.

J'essaye avec le générateur de code mais étant debutant et ne savant pas par où commencer je cries à l'aide.

Si quelqu'un pourrait m'aider je lui en saurais grés.

Avec amitié

Lale.

Bonjour,

Désolé si je ne suis pas claire dans mon titre.

Voilà je débarque dans le monde des VBA, bien que très utile j'ai l'impression que c'est du chinois.

Je cherche un moyen d'importer des classeurs csv dans excel : là c'est la partie simple.

Dans chaque classeur j'ai 300 lignes et 727 colonnes et pour mon traitement de données je n'ai besoin que de la moyenne. J'ai un peu plus de 400 classeurs csv donc manuellement c'est inenvisageable.

Donc il me faut quelque chose qui puisse d'abord faire la moyenne dans les csv et puis les importer ou un truc du genre pour au final n'avoir qu'un seul classeur excel avec la moyenne de chaque classeur csv importé.

J'essaye avec le générateur de code mais étant débutant et ne sachant pas par où commencer je crie à l'aide.

Si quelqu'un pouvait m'aider, je lui en saurais gré.

Avec amitié

Lale.

bonsoir,

une proposition

Sub aargh()
    Dim wsr, rep$, nf$, wb, ws, dl&, dc&, moy, k&
    Set wsr = ThisWorkbook.Sheets("sheet1") ' à adapter nom de la feuille qui recevra les résultats (doit exister)
    rep = "d:\downloads\fichiers\"    'à adapter répertoire dans lequel se trouvent les fichiers csv
    nf = Dir(rep & "*.csv")
    While nf <> ""
        Set wb = Workbooks.Open(rep & nf)
        Set ws = ActiveSheet
        With ws
            dl = .Cells(Rows.Count, 1).End(xlUp).Row
            dc = .Cells(1, Columns.Count).End(xlToLeft).Column
            moy = Application.WorksheetFunction.Average(.Range("A1").Resize(dl, dc))
        End With
        k = k + 1
        wsr.Cells(k, 1) = nf
        wsr.Cells(k, 2) = moy
        wb.Close False
        nf = Dir()
    Wend
End Sub

Bonjour,

merci pour votre réponse. Je l'es essayé ca bloque au niveau :

Set wsr = ThisWorkbook.Sheets("sheet1")

j'ai un message d'erreur (9) comme quoi l'indice est en dehors des dimensions du tableau !!! Ca veut dire quoi ?

Bonne journée

BOnjour

désolé, il faut également adapter cette ligne pour y mettre le nom de l'onglet, dans lequel tu veux le résultat, l'onglet portant ce nom doit exister dans le classeur.

Set wsr = ThisWorkbook.Sheets("feuil1")
Rechercher des sujets similaires à "importer grand nombre fichiers csv faisant moyenne"