• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro om meerdere bestanden te kopiëren Fout in Macro

Status
Niet open voor verdere reacties.

trem89

Gebruiker
Lid geworden
21 mei 2008
Berichten
40
Hoi beste mensen,

Ik heb hier met beholpen van sommige liefhebbers een macro in elkaar te gezet, maar de punt is ik mis nog een optie.

Ik zal even vertellen wat ik wil zodat jullie ook tips of aandachts punten kunnen geven om de code te veranderen.

Er worden om de zoveel minuten .xls files geexporteerd in map C:temp. Standaard krijgt de file de naam scans_nummeriek dat wordt verhoogd met een.

De .xsl file bestaat uit 7 Sheets. Er zijn in elke sheet cellen waarvan ik de informatie nodig hebt, Alle deze cellen worden gekopierd en geplakt in een nieuw .xls file door de macro.
Het gene dat ik mis is, in sheet6 wil ik de informatie van A1:A9, maar tussen elke waarde dus A1, A2, A3, etc moet er twee kolom komen. Laten we zeggen dat tijdens het plakken van A1 in het nieuw map in kolom K komt, dan moet A2 in kolom N komen.

Alle hulp is welkom en alvast bedankt.:thumb:

Zie code hieronder:

Code:
Option Explicit
Sub GetScans()
Dim strFirstScan As String
Dim strSecondScan As String
Dim strLastScan As String
Dim blnRedo As Boolean
Dim strPath As String
Dim strBase As String
Dim strThisFilename As String
Dim strThisFile As String
Dim strDestFN As String
Dim intDestRowOffset As Integer
Dim intDestColOffset As Integer
Dim n As Integer

On Error GoTo ErrHnd

'stop screen flicker during copy and paste operations
Application.ScreenUpdating = False

'setup name of destination file - use the name of this workbook
strDestFN = ActiveWorkbook.Name

'setup Path to saved scan files - must end with \
strPath = "C:\Temp\"

'setup base name for scanned files (case sensitive)
strBase = "scans_"

'set first row offset for saving data (Offset 0 is row 1)
intDestRowOffset = 1

'get number of scan files
FirstS:
strFirstScan = InputBox("Enter first scan file number (4 digits)" & vbCrLf _
                       & "or enter 'Q' to quit", "First Scan")
'test that text is a four character string representing a number
blnRedo = False
If Len(strFirstScan) <> 4 Or Not IsNumeric(strFirstScan) Then
    If strFirstScan = "Q" Or strFirstScan = "q" Then
        Exit Sub
        Else
        blnRedo = True
    End If
End If
'redo first number entry
If blnRedo = True Then GoTo FirstS

SecondS:
strSecondScan = InputBox("Enter Second scan file number (4 digits)" & vbCrLf _
                        & "or enter 'Q' to quit", "Second Scan")
'test that text is a four character string representing a number
blnRedo = False
If Len(strSecondScan) <> 4 Or Not IsNumeric(strSecondScan) Then
    If strSecondScan = "Q" Or strSecondScan = "q" Then
        Exit Sub
        Else
        blnRedo = True
    End If
End If
'redo Second number entry
If blnRedo = True Then GoTo SecondS

'open each scan file in turn and copy information
For n = CInt(strFirstScan) To CInt(strSecondScan)
    'set destination column offset for first column (0 = "A")
    intDestColOffset = 0
    'create file name
    strThisFilename = strBase & Format(n, "0000") & ".xls"
    strThisFile = strPath & strThisFilename
    'open this file
    Application.Workbooks.Open (strThisFile)
    With Workbooks(strThisFilename)
        .Worksheets("Sheet1").Range("A1:B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 2
        .Worksheets("Sheet2").Range("B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet2").Range("B2").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet3").Range("A1:B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 2
        .Worksheets("Sheet4").Range("B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet4").Range("B2").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet5").Range("B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C1").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A2").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B2").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C2").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A3").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B3").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
         .Worksheets("Sheet6").Range("C3").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A4").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B4").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C4").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A5").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B5").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
            intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C5").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A6").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B6").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C6").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A7").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B7").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C7").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A8").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B8").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("C8").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A9").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("B9").Copy _
            Destination:=Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset)
        intDestColOffset = intDestColOffset + 1
        .Worksheets("Sheet6").Range("A1:A9").Copy
        Workbooks(strDestFN).Worksheets("Sheet1").Range("A1"). _
            Offset(intDestRowOffset, intDestColOffset).PasteSpecial _
            Paste:=xlPasteAll, Transpose:=True
    End With
    'next row
   intDestRowOffset = intDestRowOffset + 1
   'close current source file
   Workbooks(strThisFilename).Close SaveChanges:=False
Next n

'save this Destination workbook
Workbooks(strDestFN).Save

'reinstate screen updating
Application.ScreenUpdating = True
Exit Sub

'error handler
ErrHnd:
Err.Clear
'reinstate screen updating
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
'iets' compacter
Code:
 with Workbooks.Open (strThisFile)
    c2= .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" &.[sheet1!B2]&"|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2]  & "|" & .[sheet5!B1] 
    for j=0 to 8
      c2=c2 & "|" & .[sheets6!A1].offset(j) & "|||" & .[sheets6!B1].offset(j) & "|||" & .[sheets6!C1].offset(j) 
    next 
    .close
  end with
  Workbooks.add
  ActiveWorkbook.Sheets(1).cells(1,1).resize(,ubound(split(c2,"|"))+1)=split(c2,"|")
 
Code:
 with Workbooks.Open (strThisFile)
    c2= .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" &.[sheet1!B2]&"|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2]  & "|" & .[sheet5!B1] 
    for j=0 to 8
      c2=c2 & "|" & .[sheets6!A1].offset(j) & "|||" & .[sheets6!B1].offset(j) & "|||" & .[sheets6!C1].offset(j) 
    next 
    .close
  end with
  Workbooks.add
  ActiveWorkbook.Sheets(1).cells(1,1).resize(,ubound(split(c2,"|"))+1)=split(c2,"|")


Waar staat de c2 voor in dit geval?

En dank je wel voor de
'iets' compacter
code van je:p
 
c2 is de willekeurige naam voor een variabele waarin de verschillende waarden opgeslagen worden. Je mag hem evengoed Jan, Piet of Klaas noemen :D
 
c2 is de willekeurige naam voor een variabele waarin de verschillende waarden opgeslagen worden. Je mag hem evengoed Jan, Piet of Klaas noemen :D

Dat dacht ik al, maar waarom geeft Excel dan aan dat het fout is terwijl een variabele is, ben ik ergen vergeten te declareren ofzo. Ik gok dat verkeerd heb geplakt :confused:

Gewijzigd code :

Code:
Option Explicit
Sub GetScans()
Dim strFirstScan As String
Dim strSecondScan As String
Dim strLastScan As String
Dim blnRedo As Boolean
Dim strPath As String
Dim strBase As String
Dim strThisFilename As String
Dim strThisFile As String
Dim strDestFN As String
Dim intDestRowOffset As Integer
Dim intDestColOffset As Integer
Dim n As Integer

On Error GoTo ErrHnd

'stop screen flicker during copy and paste operations
Application.ScreenUpdating = False

'setup name of destination file - use the name of this workbook
strDestFN = ActiveWorkbook.Name

'setup Path to saved scan files - must end with \
strPath = "C:\Temp\"

'setup base name for scanned files (case sensitive)
strBase = "scans_"

'set first row offset for saving data (Offset 0 is row 1)
intDestRowOffset = 1

'get number of scan files
FirstS:
strFirstScan = InputBox("Enter first scan file number (4 digits)" & vbCrLf _
                       & "or enter 'Q' to quit", "First Scan")
'test that text is a four character string representing a number
blnRedo = False
If Len(strFirstScan) <> 4 Or Not IsNumeric(strFirstScan) Then
    If strFirstScan = "Q" Or strFirstScan = "q" Then
        Exit Sub
        Else
        blnRedo = True
    End If
End If
'redo first number entry
If blnRedo = True Then GoTo FirstS

SecondS:
strSecondScan = InputBox("Enter Second scan file number (4 digits)" & vbCrLf _
                        & "or enter 'Q' to quit", "Second Scan")
'test that text is a four character string representing a number
blnRedo = False
If Len(strSecondScan) <> 4 Or Not IsNumeric(strSecondScan) Then
    If strSecondScan = "Q" Or strSecondScan = "q" Then
        Exit Sub
        Else
        blnRedo = True
    End If
End If
'redo Second number entry
If blnRedo = True Then GoTo SecondS

'open each scan file in turn and copy information
For n = CInt(strFirstScan) To CInt(strSecondScan)
    'set destination column offset for first column (0 = "A")
    intDestColOffset = 0
    'create file name
    strThisFilename = strBase & Format(n, "0000") & ".xls"
    strThisFile = strPath & strThisFilename
    'open this file
    Application.Workbooks.Open (strThisFile)
  With Workbooks.Open(strThisFile)
    C2 = .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" & .[sheet1!B2] & "|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2] & "|" & .[sheet5!B1]
    For j = 0 To 8
      C2 = C2 & "|" & .[sheets6!A1].Offset(j) & "|||" & .[sheets6!B1].Offset(j) & "|||" & .[sheets6!C1].Offset(j)
    Next
    .Close
  End With
  Workbooks.Add
  ActiveWorkbook.Sheets(1).Cells(1, 1).Resize(, UBound(Split(C2, "|")) + 1) = Split(C2, "|")
    End With
    'next row
   intDestRowOffset = intDestRowOffset + 1
   'close current source file
   Workbooks(strThisFilename).Close SaveChanges:=False
Next n

'save this Destination workbook
Workbooks(strDestFN).Save

'reinstate screen updating
Application.ScreenUpdating = True
Exit Sub

'error handler
ErrHnd:
Err.Clear
'reinstate screen updating
Application.ScreenUpdating = True
End Sub
 
Code:
Option Explicit
Dit is de boosdoener, waardoor je verplicht wordt om elke variabele te declareren. Ofwel schakel je dit uit door er een ' voor te zetten, ofwel moet je c2 declareren
 
Code:
Option Explicit
Dit is de boosdoener, waardoor je verplicht wordt om elke variabele te declareren. Ofwel schakel je dit uit door er een ' voor te zetten, ofwel moet je c2 declareren

Warme bakkertje (eigenlijk een grappige naam waar ik nu om lach, sorry :eek: ).

Zoals gemeld ben ik geen held in schrijven van macro, maar als ik ' zet voor Option dan gaat er nog meer fout. Mijn vraag is waar en hoe kan moet ik het declareren in de code?

Dank je wel voor het mee denken, [insert here].:thumb:
 
Zet deze onder alle andere Dim-statements
Code:
Dim c2 As String
Geeft dit nog problemen probeer dan
Code:
Dim c2 as Variant
 
Zet deze onder alle andere Dim-statements
Code:
Dim c2 As String
Geeft dit nog problemen probeer dan
Code:
Dim c2 as Variant

Als ik dat doe, dan krijg ik gezeur over End with dat die zonder with moet zijn.
Als ik het verander naar End kan ik het script uitvoeren maar dan werkt het niet zoals het moet zijn.

Ps: ook over j wordtnog wat gezegd en die heb ik ook maar gedeclareert
Code:
 With Workbooks.Open(strThisFile)
    c2 = .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" & .[sheet1!B2] & "|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2] & "|" & .[sheet5!B1]
    For j = 0 To 8  <<<<<<<<<<<< Evil one
      c2 = c2 & "|" & .[sheets6!A1].Offset(j) & "|||" & .[sheets6!B1].Offset(j) & "|||" & .[sheets6!C1].Offset(j)
    Next
Het zal meer aan mij liggen dan die code, maar ja mens moet altijd iemand anders beschuldigen.
 
Code:
ActiveWorkbook.Sheets(1).Cells(1, 1).Resize(, UBound(Split(C2, "|")) + 1) = Split(C2, "|")
   [COLOR="Red"] End With[/COLOR]
mi is deze End With de boosdoener en moet deze verwijdert worden. Loop iig je code door en zorg ervoor dat voor elke With een End With is, en voor elke If een End If tenzij het If en Then -statement op 1 regel staan, dan is er geen End If nodig bv
Code:
If blnRedo = True Then GoTo SecondS
 
Code:
ActiveWorkbook.Sheets(1).Cells(1, 1).Resize(, UBound(Split(C2, "|")) + 1) = Split(C2, "|")
   [COLOR="Red"] End With[/COLOR]
mi is deze End With de boosdoener en moet deze verwijdert worden. Loop iig je code door en zorg ervoor dat voor elke With een End With is, en voor elke If een End If tenzij het If en Then -statement op 1 regel staan, dan is er geen End If nodig bv
Code:
If blnRedo = True Then GoTo SecondS

Ik heb na gekeken en de plaatsen waar enkel if voor komt, komt ook Then statement voor.
En alle With zijn met End enkel een regel niet.

With Workbooks.Open(strThisFile)

Maar het hoort ook niet, gok ik :p. Verder de macro wordt gerund zonder problemen, maar de scheiding bij A1 dan 2 lege kolommen dan A2 werkt niet.

heb jij misschien enige idee?
 
Het is me niet duidelijk of je van de gegevens van Blad6 de kolommen B en C nog wel wil meenemen.

Code:
with Workbooks.Open (strThisFile)
    c2= .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" &.[sheet1!B2] & "|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2]  & "|" & .[sheet5!B1] 
    for j=0 to 8
      c2=c2 & "|" & .[sheets6!A1].offset(j) & "|||" & .[sheets6!B1].offset(j) & "|||" & .[sheets6!C1].offset(j) 
    next 
    .close
  end with
  Workbooks.add
  ActiveWorkbook.Sheets(1).cells(1,1).resize(,ubound(split(c2,"|"))+1)=split(c2,"|")
 
Sheet6 bevat informatie in velden A1:A9. die moet ik hebben, maar het verschil tussen de andere sheets is dat tussen elke veld(Anummer) twee lege kolommen moeten komen.
 

Bijlagen

  • Map3.xls
    14,5 KB · Weergaven: 23
Goede morgen.

Trouwens ik had nog geen reactie, waarschijnlijk omdat ik niets gezegd hebt dat het niet werkt.

Kan iemand naar de geupload xls file voor mij kijken aub.

Dank je wel.

Ps, ik heb al zelf geprobeerd om anders te doen, maar het is mij niet gelukt.
Macro plaats nog steeds geen lege koloms en een voorbeeld staat ook in xls file. hierboven
 
Test deze eens apart uit in een leeg werkboek
Code:
Sub apart()
  with Workbooks.Open ("C:\test.xls")
    c2= .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" &.[sheet1!B2] & "|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2]  & "|" & .[sheet5!B1] & "|" & join(worksheetfunction.transpose(.[sheets6!A1:A9]),"|||")
    .close
  end with
  ThisWorkbook.Sheets(1).cells(1,1).resize(,ubound(split(c2,"|"))+1)=split(c2,"|")
End Sub
 
Test deze eens apart uit in een leeg werkboek
Code:
Sub apart()
  with Workbooks.Open ("C:\test.xls")
    c2= .[sheet1!A1] & "|" & .[sheet1!A2] & "|" & .[sheet2!B1] & "|" &.[sheet1!B2] & "|" & .[sheet3!A1] & "|" & .[sheet3!B1] & "|" & .[sheet4!B1] & "|" & .[sheet4!B2]  & "|" & .[sheet5!B1] & "|" & join(worksheetfunction.transpose(.[sheets6!A1:A9]),"|||")
    .close
  end with
  ThisWorkbook.Sheets(1).cells(1,1).resize(,ubound(split(c2,"|"))+1)=split(c2,"|")
End Sub

Het werkt niet. c2 heb ik ook gedeclareerd want daar vroeg die om, maar nog niets.
Ik werk met XP en Office 2003, kan nuttig informatie zijn gok ik.
 
Welk werkboek open je met deze macro ?
C:\test.xls, bevat dat 6 werkbladen met gegevens ?
Kopieer een van de bestanden waar het jou om gaat naar C:\test.xls en draai daarna de macro.
Heb je F8 in de VBEditor al eens uitgeprobeerd ?
 
Welk werkboek open je met deze macro ?
C:\test.xls, bevat dat 6 werkbladen met gegevens ?
Kopieer een van de bestanden waar het jou om gaat naar C:\test.xls en draai daarna de macro.
Heb je F8 in de VBEditor al eens uitgeprobeerd ?

Ja het bevat 6 werkbladen met gegevens.
De xls is extra onder gebracht onder C:\ met de naam test.xls.
Ja via VB editor ook.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan