Bonjour à tous et merci par avance de votre aide.

J’essaie de regrouper des fichiers dans un nouveau classeur : Resultats.csv.
Tout est ok sauf que je n’arrive pas à mettre dans la colonne 10 (sur chaque ligne copiée) du nouveau classeur le nom du fichier source que j’ai par ailleurs dans ma variable fic ou elo.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub concaténer()     ' regroupement des commentaires
Const fdr = "Resultats.csv"  ' fichier du résultat
Dim chemin As String    ' classeur regroupé
Dim rep As String       ' répertoire à traiter
Dim fic As String       ' classeur regroupé
Dim nbl As Long         ' lignes écriture
Dim nbc As Integer      ' nombre de classeurs
Dim lig As Long         ' ligne lecture
Dim Wl As Worksheet     ' feuille regroupée
Dim tbc()               ' tableau montants
Dim tbl()               ' tableau lu
Dim pos As Integer      ' position $ somme
Dim poz As Integer      ' position " " somme
Dim elo As String
 
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Title = "Choisissez votre répertoire"
        .Filters.Clear
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub
        rep = .SelectedItems(1) & "\"
    End With
    Open rep & fdr For Output As #1
    fic = Dir(rep & "*.xls*")
    tbc = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    lig = 2
    While fic <> ""
        chemin = rep & fic ' chemin fichiers
        elo = fic
            Workbooks.Open chemin  ' ouverture
            On Error Resume Next
            Set Wl = ActiveWorkbook.Sheets(1)
            If Err.Number = 0 Then      ' le classeur est sélectionné
                tbl = Wl.UsedRange.Cells
                While lig <= UBound(tbl) ' copier les 9 colonnes
                    Print #1, tbl(lig, 1) & ";" _
                            & tbl(lig, 2) & ";" _
                            & tbl(lig, 3) & ";" _
                            & tbl(lig, 4) & ";" _
                            & tbl(lig, 5) & ";" _
                            & tbl(lig, 6) & ";" _
                            & tbl(lig, 7) & ";" _
                            & tbl(lig, 8) & ";" _
                            & tbl(lig, 9)
                    lig = lig + 1
                    nbl = nbl + 1
                Wend
                nbc = nbc + 1
            Else
                Err.Clear
            End If
            ActiveWorkbook.Close SaveChanges:=False   ' Fermeture du classeur
        fic = Dir
        lig = 3
    Wend
    Set Wl = Nothing
    Close #1
    MsgBox nbc & " Classeurs lus" & vbLf & nbl & " lignes écrites dans " & rep & fdr
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub