• 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 uit meerdere rijen in 1 rij achter elkaar plaatsen

Status
Niet open voor verdere reacties.

HuwgOo

Gebruiker
Lid geworden
23 apr 2009
Berichten
21
Beste allemaal,

Ik ben momenteel met een groot project bezig waarin heel veel data is aangeleverd.
Deze data staat in verschillende rijen, maar ik zou deze data achter elkaar in 1 lange rij willen zien en geen verandering in de volgorde.
Voorbeeld aangeleverde data:

- Aap Noot Mies
- Appel Fruit Vrucht
- Patat Vet Slecht

Uitkomst data:

- Aap Noot Mies Appel Fruit Vrucht Patat Vet Slecht

Iemand enig idee hoe dit makkelijk/snel kan gebeuren i.p.v. alles handmatig te kopiëren en te plakken?
 
Kijk eens naar "Tekst naar kolommen" in het menu "Gegevens".
 
Dat is helaas niet wat ik zoek. Dit is volgens mij om tekst uit 1 kolom op te splitsen naar 2 kolommen.

Ik wil een selectie van meerdere rijen, bestaande uit meerdere kolommen, naast elkaar op 1 rij hebben/plakken. Het gevolg is heel veel kolommen uiteraard. Alleen om dit te knippen en plakken is echt onmenselijk veel werk.. vandaar deze schreeuw om hulp.
 
Dan kan je beter even een voorbeeld plaatsen.
 
Voorbeeld aangeleverde data:

- Aap Noot Mies
- Appel Fruit Vrucht
- Patat Vet Slecht

Uitkomst data:

- Aap Noot Mies Appel Fruit Vrucht Patat Vet Slecht


Ik begrijp nu de verwarring! De woorden staan in verschillende cellen/kolommen. In het voorbeeld dus 3 rijen van 3 kolommen. De uitkomst van dit voorbeeld is dan dus 1 rij van 9 kolommen in totaal.

Maar bij mij zal dit gelden voor 4 rijen en elke rij beslaat 11 kolommen (in het voorbeeld woorden, maar in mijn data getallen).
 
Laatst bewerkt:
Vandaar dat ik vraag om een voorbeeld. En dan bedoel ik een document.
Een voorbeeld met woorden waar je getallen bedoeld gaat nooit werken omdat getallen heel wat anders zijn dan tekst en wellicht een andere behandeling vragen.
 
Laatst bewerkt:
Ik haak af. Ik heb nu 2x om een voorbeeld document gevraagd.
Succes met je vraag.
 
Maak een tweede blad aan, daar verschijnt het resultaat.
Code:
Sub hsv()
Dim sn, i As Long, j As Long, arr, jj As Long
sn = Sheets(1).Cells(1).CurrentRegion.Offset(1)
ReDim arr(UBound(sn))
    For i = 1 To UBound(sn)
        For j = i To i + 3
           If j + jj < UBound(sn) Then
             arr(i - 1) = arr(i - 1) & Join(Application.Index(sn, j + jj), "|") & "|"
              jj = jj + 10
           End If
        Next j
       jj = 0
    Next i
 With Sheets(2)
  .Cells(1).Resize(UBound(sn)) = Application.Transpose(arr)
  .Columns(1).TextToColumns , , , , , , , , -1, "|"
 End With
End Sub
 
Ah dank voor de moeite HSV!

Heb de code in een macro weten te krijgen. Ik had dat eigenlijk nog nooit gebruikt.
Maar hij geeft aan "Fout 11: Typen komen niet overeen". En dan springt hij naar de regel:

.Cells(1).Resize(UBound(sn)) = Application.Transpose(arr)

Zoals jullie wel merken ben ik hier helemaal niet thuis in dus zou echt niet weten wat er bedoeld wordt.
Er staan ook datums en soms tekst in de cellen. Misschien dat dit er iets mee te maken heeft?
 
Laatst bewerkt:
Mag ik eens zien hoe het er uit ziet in het bestand?
 
Maak een tweede blad aan.
Verwijder alles vanaf rij 25 en verder naar onderen.
Zet de code in een standaard module.
Laat de code lopen, en kijk voor het resultaat op blad 2.

Als je daar niet uitkomt, plaats ik het bestand (voor het leermoment is het beter om het zelf voor elkaar te maken).
 
Dat is nu gelukt! In het voorbeeld bestandje komt alles perfect ernaast, alleen in mijn echte bestand helaas niet. Daar plaatst hij alleen rij 2 tm 11. Heel gek.
Overigens staan in blad 2 van het voorbeeld bestand de rijen 12 tm 21 wel perfect naast 2 tm 11, maar daaronder staan ze ook nog eens. Op de plaats waar ze ook in Blad 1 staan. De code is echt net chinees voor mij. Ik zou heel graag het origineel sturen, omdat dit veel makkelijker zou zijn.
Maar het gaat helaas om privacy gevoelige gegevens..
 
De laatsten worden natuurlijk niet meer meegenomen, daar er geen informatie meer staat.
Stel je hebt 43 rijen aan informatie, dan zullen er maar 10 rijen compleet worden weergegeven.
De anderen zullen korter zijn.

Bekijk het maar eens.
 

Bijlagen

Daar heeft u geheel gelijk in.
Alleen hij blijft "Fout 11: Typen komen niet overeen" geven bij het echte bestand.
In de werkmap van u werkt hij wel als een zonnetje!
 
Zoek het verschil in layout waarom het bij u niet gaat (rijen leeg of kolommen leeg).
 
Heb ik gedaan, maar kan echt niks vinden. Alle velden algemeen gemaakt.
Tevens heb ik geprobeerd in de macro iets te doen.
Aangezien het in het echte bestand om 13 kolommen gaat heb ik er 3 komma's bijgezet, maar dit hielp helaas niet.
De bovenste zin blijft het grote probleem.

.Cells(1).Resize(UBound(sn)) = Application.Transpose(arr)
.Columns(1).TextToColumns , , , , , , , , -1, "|"
 
Begint het op een andere rij dan in cel A1?
 
Nee, begint gewoon bij A1, in deze rij staan alle kolomnamen. Net als in uw bestand.
Loopt van rij 1 t/m 51 en A t/m M. Helemaal gevuld en wel :)
 
Staan de gegevens in het eerste blad?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan