Adapter macro plage données restreinte

Bonjour à tous,

Dans le cadre d'analyse de données, j'ai besoin de compiler plusieurs tableaux excel en un seul fichier excel, en les recopiant les uns en dessous des autres. J'ai déjà trouvé une macro qui effectue ce travail et fonctionne très bien.

Cependant, lors de la copie, je souhaite non pas copier le tableau en entier mais seulement de la cellule C3 à la dernière cellule de la colonne C. Il n'y aurais donc que cette modification à apporter au code suivant:

Sub Compilation()
Dim Temp As String
Dim Ligne As Long
Temp = Dir(ActiveWorkbook.Path & "\*.csv")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Recap.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Recap.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
Range("A" & CStr(Ligne)).Select
ActiveSheet.Paste
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub

C'est une tâche que je dois effectuer 60x sur des tableaux de plusieurs milliers de lignes, autant dire que cette simple modification serait pour moi un gain énorme. Bien que programmant un peu sous Matlab, je comprends très mal les paramètres des VBA, et j'espère que quelqu'un trouvera facilement la/les lignes de code à modifier!

Merci!

Bonjour

Sans fichier pour tester

Sub Compilation()
Dim Temp As String
Dim Ligne As Long

  Temp = Dir(ActiveWorkbook.Path & "\*.csv")
  Application.DisplayAlerts = False
  Do While Temp <> ""
    If Temp <> "Recap.xls" Then
      Workbooks.Open ActiveWorkbook.Path & "\" & Temp
      'Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
      With Workbooks(Temp).Sheets(1)
        .Range("C3:C" & .Range("C" & Rows.Count).End(xlUp).Row).Copy
      End With
      Workbooks("Recap.xls").Sheets(1).Activate
      Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
      Range("A" & CStr(Ligne)).Select
      ActiveSheet.Paste
      Workbooks(Temp).Close
    End If
    Temp = Dir
  Loop
  Range("A1").Select
  Application.DisplayAlerts = True
End Sub

Merci infiniment Banzai! Je m'arrache la tête depuis 2jours sur ce problème!

Rechercher des sujets similaires à "adapter macro plage donnees restreinte"