Bonjour,
J'ai plusieurs fichiers contenant le même tableau avec des informations différentes.
Ma macro fait un récap automatique en allant chercher les informations dans chaque fichier du dossier.
La voici :
Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Application.ScreenUpdating = False
Direction = Dir("D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\*.xls")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
Y = 6
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
With ActiveSheet
.Cells(Y, 1).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "A2"
.Cells(Y, 2).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "B2"
.Cells(Y, 3).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "C2"
.Cells(Y, 4).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "D2"
.Cells(Y, 5).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "E2"
.Cells(Y, 6).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "F2"
.Cells(Y, 7).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "G2"
.Cells(Y, 8).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "H2"
.Cells(Y, 9).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "I2"
.Cells(Y, 10).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "J2"
.Cells(Y, 11).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "K2"
.Cells(Y, 12).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "L2"
.Cells(Y, 13).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "M2"
.Cells(Y, 14).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "N2"
.Cells(Y, 15).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "O2"
.Cells(Y, 16).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "P2"
.Cells(Y, 17).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "Q2"
End With
Y = Y + 1
End If
Next X
End If
Application.ScreenUpdating = True
End Sub
Je voudrais que la macro s'arrête en fonction du nombre de lignes remplies dans chaque tableau. (le nombre de ligne peut être différent d'un fichier à l'autre.
Merci encore pour votre aide.
J'ai plusieurs fichiers contenant le même tableau avec des informations différentes.
Ma macro fait un récap automatique en allant chercher les informations dans chaque fichier du dossier.
La voici :
Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Application.ScreenUpdating = False
Direction = Dir("D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\*.xls")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
Y = 6
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
With ActiveSheet
.Cells(Y, 1).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "A2"
.Cells(Y, 2).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "B2"
.Cells(Y, 3).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "C2"
.Cells(Y, 4).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "D2"
.Cells(Y, 5).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "E2"
.Cells(Y, 6).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "F2"
.Cells(Y, 7).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "G2"
.Cells(Y, 8).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "H2"
.Cells(Y, 9).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "I2"
.Cells(Y, 10).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "J2"
.Cells(Y, 11).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "K2"
.Cells(Y, 12).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "L2"
.Cells(Y, 13).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "M2"
.Cells(Y, 14).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "N2"
.Cells(Y, 15).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "O2"
.Cells(Y, 16).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "P2"
.Cells(Y, 17).Formula = "='D:\Commercial\" & Sheets("Recap").Range("E2").Value & "\[" & Tableau(X) & "]année 08" & "'!" & "Q2"
End With
Y = Y + 1
End If
Next X
End If
Application.ScreenUpdating = True
End Sub
Je voudrais que la macro s'arrête en fonction du nombre de lignes remplies dans chaque tableau. (le nombre de ligne peut être différent d'un fichier à l'autre.
Merci encore pour votre aide.