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

Newbie - horizontaal kopiëren naar vertikaal

Status
Niet open voor verdere reacties.

marciemarc

Gebruiker
Lid geworden
29 nov 2006
Berichten
13
Ik wil graag van hoofdwerkblad de velden a1 t/m z1 overnemen op een tweede werkblad maar dan in vertikale volgorde, dus a1 t/m a26.
Ditzelfde daarna op een derde werkblad voor a2 t/m z2
Ditzelfde daarna op een vierde werkblad voor a3 t/m z3
Ditzelfde daarna op een vijfde werkblad voor a4 t/m z4
Ditzelfde daarna op een zesde werkblad voor a5 t/m z5
enz.

Zo zal ik dan na het runnen van de macro 50 werkbladen hebben aangemaakt.
Ik heb echt nulkommanul verstand van VBA, ben maar een simpele gebruiker. Wie kan me helpen aub.

Greetz,
Marciemarc
 
Laatst bewerkt:
Mark,

Wat dacht je van deze:
Code:
Sub overzetten()
Dim i As Integer

'Stel de loop in voor 50 regels, en tel van 50 naar 1
'We moeten naar beneden tellen omdat excel de bladen na blad 1 invoegt anders staan ze in de verkeerde volgorde Blad1, 50, 49 etc inplaats van Blad1, 1,2 etc.
For i = 50 To 1 Step -1

'kopieer van blad1 het bereik in kolom A tm Z op de regel waarin de loop staat
    Sheets("Blad1").Range("A" & i, "Z" & i).Copy
'voeg een werkblad toe
    Worksheets.Add
'Hernoem dit werkblad naar week + de regel nummer
    ActiveSheet.Name = "Week " & i
'plak in dit nieuwe werkblad de horizontale data uit blad 1 en transponeer (zet om van hot. naar vert.) deze data
    ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
'volgende regel
Next
    
End Sub

Om deze te gebruiken doe het volgende:
open je sheet.
open de vb-editor met linker alt+F11
rechtermuisknop op blad 1
invoegen en dan module
plak in het witte scherm aan de rechterkant deze code
sluit de editor af met linker alt+F11
ga nu naar extra/macro/macro's
en kies overzetten en klik op uitvoeren

Succes.
Ferenc

ps.
Kan misschien efficienter maar dan moet je op een van de andere leden wachten, mijn VBA kennis is nu ook niet volledig.
 
Laatst bewerkt:
Hoi Demeter,

Ik denk niet dat de code veel beter kan (je weet natuurlijk nooit he....)

Wat ik wel zou doen is:
Code:
Sub overzetten()
Dim i As Integer
[COLOR="Red"]Dim wks As Worksheet[/COLOR]

'Stel de loop in voor 50 regels, en tel van 50 naar 1
'We moeten naar beneden tellen omdat excel de bladen na blad 1 invoegt anders staan ze in de verkeerde volgorde Blad1, 50, 49 etc inplaats van Blad1, 1,2 etc.
For i = 50 To 1 Step -1

'kopieer van blad1 het bereik in kolom A tm Z op de regel waarin de loop staat
    Sheets("Blad1").Range("A" & i, "Z" & i).Copy
'voeg een werkblad toe
    [COLOR="red"]Set wks = [/COLOR]Worksheets.Add
'Hernoem dit werkblad naar week + de regel nummer
    [COLOR="red"]wks[/COLOR].Name = "Week " & i
'plak in dit nieuwe werkblad de horizontale data uit blad 1 en transponeer (zet om van hot. naar vert.) deze data
    [COLOR="red"]wks[/COLOR].Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
'volgende regel
Next
 Set wks = Nothing
End Sub
 
Code:
Operation:=xlNone,

kan nog weg, maar voor de rest kan ik het niet korter krijgen.

Mooi zo!

Wigi
 
Erg bedankt allemaal, het werkt en heb mijn werkje hiermee net op tijd afgekregen.

Transponeren dus, dat vergeet ik niet meer snel.

Greetz,
Marciemarc
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan