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

gegevens uit verschillende kolommen onder elkaar naar 1 kolom verplaatsen.

Status
Niet open voor verdere reacties.

backnext

Gebruiker
Lid geworden
29 apr 2016
Berichten
176
Hallo,
Ik wil de gegevens in een aantal kolommen die nu dus naast elkaar staan onder elkaar krijgen in 1 kolom.
Alles in kolom B netjes onder het laatste gegeven van kolom A en kolom C ook daaronder enzovoort.
De cellen moeten dus niet samengevoegd worden. Kan het bij voorkeur met een formule (ik heb excel 2010)?
Er zijn gemiddeld 20 tot 50 rijen en 10 tot 15 kolommen. Transponeren zou telkens wel lukken maar ik wil dit automatisch regelen.
 
Laatst bewerkt:
Hoi,
Welkom op dit forum:)
Een tip voor de volgende keer, post een vb bestandje (zonder gevoelige info)
Maar mischien zoiets ?
Zie bijlage
 

Bijlagen

Da's rap

Bedankt gast0660, Je voorbeeld komt volledig overeen met wat ik bedoel.
Als ik op de testknop druk krijg ik een waarschuwing: "De macro "Kolommen naar één kolom-1.xlsb'!TableToColumn kan niet worden uitgevoerd. De macro is wellicht niet beschikbaar in dit werkblad of alle macro's zijn mogelijk uitgeschakeld." Dat laatste is zeker niet het geval. Ik gebruik veel macro's. Vreemd.
Als ik de macro uitvoer via Macro's/Dotchie/uitvoeren, dan lukt het. (bereik een beetje aangepast om alle gegevens mee te hebben).
Ziet er mooi uit. Ik moet de VBAcode nog eens op 't gemak bekijken om alles te begrijpen maar dat is wat ik zocht. Hoe zou het komen dat de testknop hier niet werkt?
 
Hoi,
Je moet gewoon mijn vbtje vertrouwen , inschakelen
 
Ik zag dat Dotchies macro nog niet gekoppeld was aan het knopje.
Nog een alternatief:
Code:
Sub tsh()
    Dim i
    
    For i = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
        Columns(i).SpecialCells(2).Cut Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
End Sub
 
Dotchie, Philiep, Ik heb alle vertrouwen in jou werk. Dus ook "macro vertrouwen" aangeklikt...
Ik vond die van Dotchie al heel mooi.
Timshel, Die van jou is nog beknopter. Shakespeare kan wel eens gelijk hebben :d
Werkt heel vlot maar in enkele kolommen heb ik lege cellen. Daar stopt de macro. Moet ik die eerst opkuisen of bestaat er een beknopte manier om dit in jou macrootje te verwerken?
In ieder geval bedankt. Dat spaart me heel wat zoekwerk uit.
 
Plaats een eigen voorbeeldje dat werkt over het algemeen wat beter. En anders de .spcialcells(2) uit de code van Timshel weghalen.

Nog een andere optie die mogelijk ook kan werken.

Code:
Sub VenA()
With Sheets(1)
    ar = .Cells(1).CurrentRegion
    For j = 1 To UBound(ar)
        For jj = 1 To UBound(ar, 2)
            c00 = c00 & "|" & ar(j, jj)
        Next jj
    Next j
    .[P1].Resize(UBound(Split(Mid(c00, 2), "|"))) = Application.Transpose(Split(Mid(c00, 2), "|"))
End With
End Sub
 
Dan moet het net even anders:
Code:
Sub tsh()
    Dim i
    
    For i = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
        Cells(1, i).Resize(Cells(Rows.Count, i).End(xlUp).Row).Cut Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
End Sub
 
VenA, ook bedankt. Dat probeer ik straks eens.
Timshel, nog steeds probleem met lege cellen. Ik heb een voorbeeldje in bijlage.Bekijk bijlage beknopteMacro_4.xlsm

met selecteren speciaal/lege waarden/ verwijderen lukt het wel maar dat is niet zo elegant.
 
Laatst bewerkt:
Volgende poging :) Volgens mij moet zo alles worden meegenomen.
Code:
Sub beknoptmacro()
'
' beknoptmacro Macro
'
' Sneltoets: Ctrl+b
'
Dim i
    For i = 2 To ActiveSheet.UsedRange.Columns.Count
        Cells(1, i).Resize(Cells(Rows.Count, i).End(xlUp).Row).Cut Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
End Sub
 
Dit gaat snel, kan bijna niet volgen.
VenA: werkt ook heel vlot maar in de kolom komen de lege cellen nu ook voor. Dit kan ik wel oplossen met selecteer speciaal... maar wat vreemd is, is dat de allerlaatste cel wegvalt... In mijn voorbeeld is Peter1 rechtsonder er niet meer bij na de macro. Enig idee?
 
Staan er ook wel getallen in de cellen, anders worden getallen ineens tekst.
In onderstaande code blijven dat getallen.
Code:
Sub hsv()
Dim sn, arr, cc As Long, y As Long, j As Long, jj As Long
With Sheets(1)
    sn = .Cells(1).CurrentRegion
    cc = .UsedRange.Cells.Count
 ReDim arr(cc)
    For jj = 2 To UBound(sn, 2)
        For j = 1 To UBound(sn)
          If sn(j, jj) <> "" Then
             arr(y) = sn(j, jj)
            y = y + 1
          End If
        Next j
    Next jj
 .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(cc) = Application.Transpose(arr)
 .Cells(1).CurrentRegion.Columns(2).Resize(, UBound(sn, 2) - 1).ClearContents
End With
End Sub
 
HSV, De getallen die aan de namen gekoppeld staan in de kolommen mogen als tekst behandeld worden. Ik bekijk jou macro zeker straks. Bedankt.
Timshel, Dit werkt inderdaad. Alle kolommen worden nu meegenomen. In de kolom die dan gevormd wordt staat alles netjes onder elkaar. De lege cellen staan er ook wel nog tussen maar die haal ik er dan wel uit met selecteer speciaal/lege waarden/verwijderen...
Ik bevind me hier in het gezelschap van superprofs. :P
 
... maar die haal ik er dan wel uit met selecteer speciaal/lege waarden/verwijderen...
Welnee.
Code:
Sub beknoptmacro()
'
' beknoptmacro Macro
'
' Sneltoets: Ctrl+b
'
Dim i
    For i = 2 To Cells(1).CurrentRegion.Columns.Count
        Cells(1, i).Resize(Cells(Rows.Count, i).End(xlUp).Row).Cut Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
    Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Delete xlUp
End Sub
 
HSV,
Je macro werkt super, zeer snel, geen spaties. Perfect voor mijn kolommetjes.
Meer moet dat niet zijn. Heel erg bedankt maar ondertussen zie ik er nog eentje toekomen, die check ik ook even.
 
Timshel,

Nu is ie perfect. En een heel beknopte mooie macro.
Ik heb de indruk dat die van HSV iets vlugger werkt en dat van die getallen die getallen blijven moet ik nog eens uittesten.
Maar welke hier de eerste prijs haalt laat ik aan de specialisten over.
Nog eens bedankt allemaal.
 
Is goed hoor succes ermee.
Zet je de vraag nog even op opgelost?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan