• 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.

Data kopieren uit werkblad

Status
Niet open voor verdere reacties.

martijnbos

Gebruiker
Lid geworden
17 dec 2010
Berichten
101
Goedemorgen allemaal,

Ik wil met onderstaande code het volgende bereiken.
Uit alle worksheets op locatie H: wil ik van het tabblad met naam "rapport" de data hebben van range a1 tm I1.
Deze data mag hij wegschrijven in de lege sheet waar ook deze code in staat.

Nu komt onderstaande VBA code met de melding:
Het supscript valt buiten bereik. Iemand enig idee wat ik fout doe?

Alvast dank voor jullie reactie.

Gr.
Martijn


Code:
Sub Verzamel()


   Dim objFSO As Object, objFolder As Object, objFile As Object
   Dim iRow As Long


   iRow = 1


   Dim arrVar() As Variant


   Set objFSO = CreateObject("Scripting.FileSystemObject")
   Set objFolder = objFSO.GetFolder("H:")


   For Each objFile In objFolder.Files


     If Right(objFile, 3) = "xls" Then
     Application.EnableEvents = False
     Application.DisplayAlerts = False

       Workbooks.Open Filename:=objFile.Name
        ActiveWorkbook.Sheets(Rapport).Range("A1:I1").Copy


        ThisWorkbook.Activate
        Cells(iRow, 1).Select


       Selection.PasteSpecial Paste:=xlPasteValues, _
                   Operation:=xlNone, SkipBlanks:=False


       Workbooks(objFile.Name).Close SaveChanges:=False


       iRow = iRow + 1
     End If
   Next
   

End Sub
 
martijnbos,

Als je het zodoet werkt het dan wel?
Code:
Workbooks.Open Filename:=objFile.Name
        ActiveWorkbook.Sheets(Rapport).Select
         Range("A1:I1").Copy
Ik weet dat je Select moet vermijden maar zo heb ik het bij mij zelf opgelost.
 
dank voor je snelle reactie.

Helaas is dit niet de oplossing.
Hij blijft fout gaan op de regel met

ActiveWorkbook.Sheets(Rapport).Select
 
Als je nu deze handeling eens met de macrorecorder opneem, zie je misschien wat er fout is.

Het is maar een idee.
 
Volgens mij heb je het pad er niet bij staan.
Zo staat her bij mij:
Code:
Workbooks.Open Filename:= _
        "D:\Mijn documenten\Excel\..........xlsm
 
had al een breakpoint gezet.
Wat is wel zie is dat hij aangeeft op de regel met
"ActiveWorkbook.Sheets(Rapport).Range("A1:I1").Copy"


Rapport = Leeg


Dit terwijl het blad met naam rapport wel data bevat.
 
Code:
ActiveWorkbook.Sheets([COLOR="#FF0000"]"[/COLOR]Rapport[COLOR="#FF0000"]"[/COLOR]).Range("A1:I1").Copy

Joske
 
Als je de code met F8 doorloop, opent hij dan wel de file?
Verder zou ik ook niet weten.
 
Het was inderdaad het heel simpel vergeten van de quote's.


dank iedereen voor het reageren!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan