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

Transponeren van blokken van verschillende grootte

Status
Niet open voor verdere reacties.

looness

Nieuwe gebruiker
Lid geworden
3 jan 2008
Berichten
4
Hallo,

Ik heb informatie in de eerste kolom staan.
Deze informatie bestaat uit adressen met nummers.
Echter is per adres blok het aantal regels verschillend.
Soms is er een telnr of fax maar soms niet.
Elke blok is wel gescheiden door een lege regel.

Wie weet er een macro om deze adres blok toch horizontaal te krijgen?
Ik heb al gezocht maar het enige dat ik vind is als er vaste afstanden zijn.

Alvast bedankt......

David
 
Beste David,

Welkom op dit forum.
Kun je een voorbeeldbestandje neerzetten met fictieve gegevens? Hierin de situatie zoals 'ie is, en zoals je 'm wilt hebben.
Dat maakt je verhaal duidelijker.

Richard
 
Kolom automatische breedte
Code:
Columns("A:A").Select
Selection.Columns.AutoFit
Rij automatische hoogte
Code:
Rows("1:20").Select
Selection.Rows.AutoFit
Misschien zoiets?
 
Laatst bewerkt:
Zijn het alleen telnr en/of faxnr die soms ontbreken, of ook andere 'velden'?
 
ReneDirks zei:
Zijn het alleen telnr en/of faxnr die soms ontbreken, of ook andere 'velden'?
Looness, Dat was de vraag die ik me ook stelde toen ik je post las. Ik heb toch een klein blokje code geschreven met 2 lussen die kolom A doorlopen opzoek naar data en witregels.
Code:
Sub Horizontaal()
Dim lLastRow As Long, lStartRow As Long, i As Long, x As Long
Dim y As Integer

    lStartRow = 1  'geef hier de 1e cel van het te doorzoeken bereik

    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = lStartRow To lLastRow  'i houdt bij op welke regel je zit
        y = 1  'y is nodig voor de offset
        x = i  'x houdt de 1e cel na de witregel vast
        Do
            Cells(x, 1).Offset(, y).Value = Cells(i, 1).Value
            y = y + 1  'y is de teller van de innerloop
            i = i + 1
        Loop Until IsEmpty(Cells(i, 1))
    Next i

End Sub
Dit zet alle velden uit 1 rijtje 'keihard' direct naast elkaar. Je kan dus een kolom krijgen waar alle soorten velden te vinden zijn (al naar gelang het onbrekende veld in het rijtje). Kijk maar 'ns of dit een start van de oplossing is.

Groet, Leo
 
Laatst bewerkt:
Een alternatief is denk ik, maar voor zekerheid is een voorbeeldbestandje vereist, te werken met een .end(xldown) en dan een copy pastespecial transpose per blok, aangezien elke blok data gescheiden is door een lege rij.
 
voorbeeld

Ik nu even geen beschikking over excell maar het ziet er ongeveer zo uit:

Kolom A
1 Naam
2 Adres
3 postcode
4 telnt
5 faxnr
6 E-mail
7 Website

8 leeg
9 Naam
10 Adres
11 postcode
12 telnt
13 faxnr

14 leeg
15 Naam
16 Adres
17 postcode
18 telnr

19 leeg

Zoals jullie zien is elk blok in de kolom een andere lengte doordat soms wel email faxnr. ed. erbij zit en de volgende keer niet. Met macro die ik gevonden heb kan ik alleen vaste blok lengte transponeren.

Bedankt voor jullie reacties:thumb:

David
 
Ik denk dat het wel te doen is met Ginger's oplossing omdat de volgorde steeds hetzelfde is. Het wordt lastig als je bijvoorbeeld wél een faxnr, maar géén telnr. hebt. Oh ja, mocht dat voorkomen, hoe geef je dat dan aan, je hebt toevallig toch niet de data opgeslagen als
naam: jansen
adres: straatweg 12
faxnr: 030-1234567

Dus met de 'veldnaam' ervoor? Dan zou het namelijk nog makkelijker zijn
 
ReneDirks zei:
Ik denk dat het wel te doen is met Ginger's oplossing omdat de volgorde steeds hetzelfde is
DAT denk ik in dit geval ook.

Loones, probeer voor de aardigheid mijn code 'ns uit op een copie van je workbook... En meld daarna wat het resultaat was..
Met de toevoegingen van de veldnamen in de cel zou het inderdaad mogelijk moeten zijn om de 'offset' precieser te adresseren.

En WAAR heb je die data vandaan? Op zich zal het nooit zo in een database opgelagen worden. Kan je niet kijken of je de output van je gegevens anders kan krijgen?

Groet, Leo
 
Laatst bewerkt:
al aardig gelukt

De macro werkt al aardig.
Alles komt netjes op een rij.
Echter zit er nu tussen elek rij met info een x aantal lege rijen die over blijven.

is daar nog iets voor?
Verder al een heel eind geholpen.

thnx

David
 
Looness zei:
Echter zit er nu tussen elek rij met info een x aantal lege rijen die over blijven.

is daar nog iets voor?
Looness, Je kan toch héél gemakkelijk de bewuste kolommen selecteren en daarna sorteren??? :confused:

Zou je ook nog antwoord kunnen/willen geven op de diverse vragen hierboven?

Groet, Leo
 
Laatst bewerkt:
ohja dat kan okk hahahahaha

Ik had een hele mooie dure macro gezocht op de forum en gevonden.
Die werkte ook nog maar idd gewoon data op volgorde zetten was ook een optie.

Allen hartelijk bedankt ik ben gered.
 
Ik ben bang dat we het antwoord op sommige vragen nooit zullen weten, oh well, volgende keer beter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan