gegevens uit blad 1 halen en naar blad 3 kopieren

Status
Niet open voor verdere reacties.

arjoderoon

Gebruiker
Lid geworden
2 mei 2007
Berichten
476
ik heb een code waarmee ik van 3 bladen data wil ophalen en deze onder elkaar wil weg schrijven naar 1 blad.
Nu heb ik een code waarvan ik dacht dat ie werkte en dat doet deze tot op zekere hoogte ook, maar ik kom er maar niet uit waarom hij niet volledig werkt. of wat ik moet doen om hem werkend te krijgen. Ik heb het even in het klein nagemaakt (zie bijlage bij die bericht).

uitleg:
het blad is als volgt geladen:
Code:
header 1   header 2 header 3
a
               b             c
               d             e
f          
               g             h
               i             j

(dit is in het klein, in het echte bestand gaat dit over 3 tabbladen verdeeld nog een paar honderd regels door.)

nu heb ik dit stukje code:
Code:
For i = LBound(Sheetnames) To UBound(Sheetnames)
    With Sheets(Sheetnames(i))
        .Range(.Range("c2"), .Cells(.Rows.Count, 1).End(xlUp)).Copy Sheets("blad3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    End With
Next i
Application.ScreenUpdating = True

waarmee ik probeer voor elkaar te krijgen dat alle letters op blad 3 terecht komen op dezelfde manier als ze hierboven staan.
maar met de code hierboven, krijg ik als resultaat:
Code:
header 1   header 2   header 3
a
               b             c
               d             e
f
dus de regels na f (in het bestand dus regel 6 en 7) worden niet meegenomen in de code.

Als ik de code aanpas
waarbij de waarde in rows.count naar 2 aanpas, dan krijg ik als resultaat:
Code:
header 1   header 2   header 3

               b             c
               d             e
         
               g             h
               i             j
hierbij zijn dus de waarden in kolom a niet meegenomen.

Ik zou graag zelf de code aan willen passen zodat alle waarden meegenomen worden, maar ik krijg het niet voor elkaar. Wie kan mij helpen?

ik lees overal over als er geen lege cellen in de betreffende kolom voor staan. dat is bij mij wel het geval. Maar goed, in beide voorbeelden wordt er nog wel data opgehaald waartussen ook lege cellen zitten.
 

Bijlagen

Laatst bewerkt:
ik heb voor het best bestand nu een oplossing voor 1 sheet. Om ditzelfde voor meerdere sheets te maken wil nog niet zo goed.
oplossing voor gebruik bij 1 sheet:
Code:
Sub test()
Dim ws As Worksheet
Set ws = Worksheets("blad1")
Sheetnames = Array("blad1", "blad2")


'vind laatste cel in werkblad
iRow = ws.Cells(Rows.Count, 3).End(xlUp).Select

'adres van laatst gevulde cel
adres = ActiveCell.Address

'messagebox ter controle van weergave cel adres
MsgBox (adres)

'kopieer het geselecteerde bereik naar blad 3 in
Range("A2", adres).Copy Sheets("blad3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)



End Sub

hoe maak ik dit nu ook toepasbaar voor meerdere werkbladen?
dus dat dit ook voor blad2 zo gedaan wordt?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan