VBA Opsamling fra flere ark fejl i kode
Jeg er nu ved at skrue min vba sammen via de input jeg fik frathor_ostergaard
www.it-fjernundervisning.dk
I spørgsmålet: http://www.eksperten.dk/spm/1006322, men en kort forklaring:
Jeg står i et faneblad i en mappe, hvor jeg ønsker en makro der åbner en række (alle) workbooks i en mappe på vores fællesdrev. Går det samme faneblad ("Sap Data") igennem i hver workbook finder linjer som indeholder et bestemt reg nr og kopierer dem ind i min oprindelige fane fra række 9 og ned.
Jeg er gået i stå i følgende udtryk:
If Range(wkbInput.Worksheets("SAP data").Range(ranRæk, 12)).Value = strVognID Then
Den melder fejl object. Jeg forsøger blot at sige at linje x,12 (kolonne k i pågældende linje) er lig med et defineret reg nr.
Min variabel for ranRæk er på tidspunktet for fejl = 432107, så det er som om de fleste rækker virker?
Min kode ser således ud:
Sub skab_vognkort()
' Optimering af åbning og gennemløb
Dim cal As Integer
cal = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
' Definer variable
Dim wkbMaster As Workbook
Dim wkbInput As Workbook
Dim strMappe As String
Dim strFil As String
Dim ranRæk As Range
Dim strVognID As String
' Udfyld variable
Set wkbMaster = ActiveWorkbook
strMappe = wkbMaster.Names("regnskabsfiler").RefersToRange.Value
strFil = Dir(strMappe & "\*.*")
strVognID = wkbMaster.Sheets(2).Range("B2").Value
' Fjern skrivebeskyttelse fra faneblad
ActiveSheet.Unprotect
Do While strFil <> ""
' Laver gennemløb af alle filer i mappen defineret i B1
Set wkbInput = Workbooks.Open(strMappe & "\" & strFil, False, True)
' Kopierer hver linje der i kolonne 12 (k) har samme reg nr som står i B2
For Each ranRæk In Range(wkbInput.Worksheets("SAP data").Range("A3"), wkbInput.Worksheets("SAP data").Range("A1").Offset(wkbInput.Worksheets("SAP data").Rows.Count - 1, 0).End(xlUp)).Cells
If Range(wkbInput.Worksheets("SAP data").Range(ranRæk, 12)).Value = strVognID Then
ranRæk.EntireRow.Copy wkbMaster.Worksheets(2).Range("A9").Offset(wkbMaster.Worksheets(2).Rows.Count - 1, 0).End(xlUp).Offset(1, 0)
End If
Next
wkbInput.Close
Loop
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
' Afslut optimering og "almindeliggøre" Excel kalkulationer
ActiveWorkbook.ActiveSheet.Protection = True
Application.Calculation = cal
Application.ScreenUpdating = True
End Sub
Hjælp :-)