Loop rijen verplaatsen

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
566
Geacht forum,
Ik probeer het iedere keer zelf uit te zoeken maar kom er toch weer niet uit

In een matrix staan een aantal rijen welke ik . een voor een , wil verplaatsen naar een andere positie
waar dan horizontaal word omgezet naar verticaal en waarna ze dan , aansluitend , gekopieerd worden naar een bepaalde kolom.
zodat uiteindelijk de hele matrix onder elkaar in een kolom staat.

Kunt u mij hiermee helpen?Bekijk bijlage Horizontale rijen naar vertikaal.xlsm
 
Ik vind je voorbeeld nu niet echt duidelijk maken wat nou waar naar toe moet.
 
Probeer jouw denkproces eens om te zetten naar logica. Excel kan standaard heel veel en met VBA is vaak ook nog wel wat op te lossen. Om te beginnen: (het liefst in A1)

- Maak gebruik van een tabel en/of kolomkoppen.
- Voer een datum in als een datum en niet als "1 jan." Uit een datum zijn alle alle gegevens te halen die je wil (zoals de de weekdag).

Met jouw opzet moeten er allerlei trucs uitgehaald worden om er iets van te maken tot iets waarvan het eindresultaat ook totaal niet duidelijk is.
 
Sorry voor de wat late reactie , ik had mijn muziek avondje.
Saxofoon spelen in de plaatselijke harmonie

1e rij , G14:M14 , kopiëren naar G6:M6 , ze staan dan vanzelf ook in verticaal in O4:O10 ,
deze reeks dan kopiëren naar kolom C , waarna G6:M6 gewist word.
daarna
2e rij , G15:M15 , kopieren naar G6:M6 , en aansluitend naar kolom C enz. enz.
daarna
3e rij , G16:M16 , kopieren naar G6:M6 , enz. enz. De loop

zie ook in de bijlage de door mij gemaakte macro welke ik heb geprobeerd te maken maar niet goed is.
 
Als elke kopie in de loop in G6:M6 terecht komt dan kan je toch net zo goed G18:M18 in G6:M6 zetten?

Als het om de laatste waarden gaat kan je deze proberen.

Code:
Sub VenA()
   [G6].Resize(, 7) = Cells(Rows.Count, 7).End(xlUp).Resize(, 7).Value
End Sub
 
Het is uiteindelijk de bedoeling dat de cijfers van de gehele matrix , rij voor rij , van links naar rechts , onder
elkaar in kolom C komen
 
Zoiets?

Code:
Sub VenA()
For j = 14 To 20
    Range("C65").End(xlUp).Offset(1).Resize(7) = Application.Transpose(Cells(j, 7).Resize(, 7).Value)
Next j
End Sub
 
Helemaal goed , kan je ook wat uitleg geven hoe het werkt.
Ik wil er altijd graag wat van opsteken zodat ik een volgende keer met andere gegevens en posities het zelf kan oplossen.
Bij voorbaat alvast bedankt
Dit was de oplossing
Vriendelijke groet , Jaap
 
Met de lus For j = 14 to 20 (had 19 moeten zijn zie ik nu) worden de rijen 14 t/m 20 doorlopen. Omdat de eerste waarde in G14 staat begint de lus met cells(j,7) (Rij 14, kolom 7 = kolom G). In deze rij staan 7 gegevens vandaar de resize(,7). Je wil deze gegevens getransponeerd terug zien in de eerste lege cel van kolom C. Vandaar de transpose.

Voor een betere uitleg gebruik de helpfunctie of bekijk deze site https://msdn.microsoft.com/en-us/library/office/dn301180.aspx
 
VenA /Edmoor

Bedankt voor de uitleg en de gedane moeite .Weer wat bijgeleerd.
Probleem opgelost.
Vriendelijke groet , Jaap
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan