Bonjour a tous !
On ma fait un macro pour copier la ligne 63 de tous les fichiers d'un dossier (\\BEN-PC\RDV\EN COURS\) et les mettre une a une dans un tableau le probleme c'est que si ya que un seul fichier ca pompe pas et ca bug si vous pouvez m'aider merci !
On ma fait un macro pour copier la ligne 63 de tous les fichiers d'un dossier (\\BEN-PC\RDV\EN COURS\) et les mettre une a une dans un tableau le probleme c'est que si ya que un seul fichier ca pompe pas et ca bug si vous pouvez m'aider merci !
Code:
Option Explicit
Sub Pompage()
Const Repert = "\\ben-pc\rdv\EN COURS\" 'MODIFIER LE DOSSIER A POMPER
Const LigneDepart = 2
Dim LesFichiers, i, rep As String
Dim Fichier As String, Ligne As Long
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Feuil1").Activate 'nom de feuil pompage
If Right(Repert, 1) <> "\" Then rep = Repert & "\" Else rep = Repert
Ligne = LigneDepart
Fichier = Dir(rep & "*.xlsm")
Do While Fichier <> ""
If Not IsArray(LesFichiers) Then
ReDim LesFichiers(1 To 1)
Else
ReDim Preserve LesFichiers(1 To UBound(LesFichiers) + 1)
End If
LesFichiers(UBound(LesFichiers)) = rep & Fichier
Fichier = Dir
Loop
Ligne = LigneDepart
With ThisWorkbook.Sheets("Feuil1") 'nom de feuil pompage
.Range("A" & Ligne & ":A" & .Rows.Count).Clear
If Not IsArray(LesFichiers) Then Exit Sub
.Range("A" & Ligne).Resize(UBound(LesFichiers)).Value = Application.Transpose(LesFichiers)
.Range("A" & Ligne).Resize(UBound(LesFichiers)).Sort key1:=.Range("A" & Ligne), Header:=xlNo
LesFichiers = .Range("A" & LigneDepart).Resize(UBound(LesFichiers)).Value
.Range("A" & Ligne & ":A" & .Rows.Count).Clear
End With
For i = 1 To UBound(LesFichiers)
Workbooks.Open LesFichiers(i, 1)
ActiveWorkbook.ActiveSheet.Rows(50).Copy 'LIGNE 50 A POMPER
ThisWorkbook.Sheets("Feuil1").Rows(Ligne).PasteSpecial Paste:=xlPasteValues 'nom de feuil pompage
Application.DisplayAlerts = False
ActiveWorkbook.Close Savechanges:=False
Application.DisplayAlerts = True
Ligne = Ligne + 1
Next i
Application.CutCopyMode = False
Application.Goto Range("A" & IIf(LigneDepart = 1, 1, LigneDepart - 1)), True
Application.ScreenUpdating = True
End Sub