J'ai plusieurs fichiers dans un dossier avec la colonne "Numéro de pièce" mais ils ne sont pas tous dans le même numéro de colonne. La liste ne commence pas nécessairement dans la même ligne non plus.
Je cherche donc d'abord la chaîne "Part Number", puis je copie son adresse comme début de la plage que je veux copier.
La colonne "Numéro de pièce" comporte des espaces vides dans certains éléments. Je n'ai donc pas pu utiliser .End(xlDown) pour rechercher la dernière ligne.
J'utilise donc la colonne "Qté" pour trouver la dernière ligne et copier le numéro de ligne.
J'ai la cellule où la plage commence, le numéro de la colonne et le numéro de la ligne où la plage doit se terminer. Cependant, je reçois une erreur "Application defined or object defined error".
La macro n'est pas terminée mais je ne peux pas avancer tant que je n'ai pas résolu ce problème. Voici ce que j'ai obtenu :
Option Explicit
Sub mergeworkbooks()
Dim path As String
Dim filename As String
Dim wbk As Workbook
Dim wks As Worksheet
Dim lastrow As Long
Dim lastcolumn As Long
Dim rangestart As String
Dim lastcol As Long
Dim rangefinish As String
Dim activesht As String
path = "D:\RubenBK\TEST\"
filename = Dir(path)
Do While filename <> ""
Set wbk = Workbooks.Open(path & filename)
For Each wks In Worksheets
If Not wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False) Is Nothing Then
wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Activate
rangestart = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Address
lastcolumn = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Column
lastrow = wks.UsedRange.Find("qty", lookat:=xlPart, MatchCase:=False).End(xlDown).row
rangefinish = Cells(lastrow, lastcolumn).Address(xlA1)
activesht = ActiveSheet.Name
'AND HERE IS WHERE I GET THE ERROR, THE Range("rangestart: rangefinish") PART:
wbk.Sheets(activesht).Range("rangestart: rangefinish").Copy Destination:=ThisWorkbook.Sheets("Sheet1").Range("A10")
End If
wbk.Close
Next
filename = Dir
Loop
End Sub
Une suggestion ?