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

Kolom-gegevens omzetten naar rij-gegevens met VBA

Status
Niet open voor verdere reacties.
SNB,
Ik kan je insteek niet echt waarderen. Globaal kan ik gokken wat er gebeurd, heb ik de macro stap voor stap laten lopen, maar heb geen idee waarom in kolom A maar één karakter mag staan en in kolom B een hele string terwijl ik voor de codes daar geen verschil voor zie.
 
Kan je het bestand zippen zodat meerdere mensen het bestand kunnen bekijken?

Met vriendelijke groet,


Roncancio
 
Roncancio, bedankt voor je assistentie.
Heb een voorbeeldbestand bijgevoegd. Blad1 geeft inzicht wat de bedoeling is en blad 2 de totale broninformatie. De in kolom ingevoerde gegevens zijn aangepaste data maar zijn m.i. representatief voor de vraag/oplossing. De macro is eveneens aanwezig in module1.
Ik hoop dat iemand me kan helpen.
 

Bijlagen

  • Transponeren-2.rar
    68,4 KB · Weergaven: 19
Roncancio, bedankt voor je assistentie.
Heb een voorbeeldbestand bijgevoegd. Blad1 geeft inzicht wat de bedoeling is en blad 2 de totale broninformatie. De in kolom ingevoerde gegevens zijn aangepaste data maar zijn m.i. representatief voor de vraag/oplossing. De macro is eveneens aanwezig in module1.
Ik hoop dat iemand me kan helpen.

Ik kan geen .rar bestanden openen vandaar dat ik vroeg of je het kan zippen.
Als je wilt mag je het ook naar mijn privé-account sturen.

Met vriendelijke groet,


Roncancio
 
Je vraag naar een ZIP had ik niet als zodanig letterlijk opgevat. Ik interpresteerde het als in gecomprimeerde vorm. Sorry. Hierbij alsnog in ZIP formaat. Naar je privé adres gaat niet aangezien ik (nog) geen verenigingslid ben.
Met dank en vriendelijke groet, Ton.
 

Bijlagen

  • Transponeren-2.zip
    89,2 KB · Weergaven: 42
Laatst bewerkt:
Ik zal er naar kijken.

Naar je privé adres gaat niet aangezien ik (nog) geen verenigingslid ben.
Dat hoeft ook niet. Je kunt met je rechtermuisknop klikken op mijn naam en een bericht verzenden naar ondergetekende. Vervolgens kan ik replyen zodat je het bestand kan bijvoegen.

Met vriendelijke groet,


Roncancio
 
Ik heb een nieuwe macro gemaakt en getest die de gegevens in het 3e werkblad zet volgens het voorbeeld van Blad1.
De macro heet Verplaatsen.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Ik heb een nieuwe macro gemaakt en getest die de gegevens in het 3e werkblad zet volgens het voorbeeld van Blad1.
De macro heet Verplaatsen.

Met vriendelijke groet,


Roncancio

Ronancia,
Ik heb het geretourneerd bestand met de macro getest. Werkt in de basis PERFECT !! Grote klasse. Hartelijke dank.
Gelukkig was er een uitdaging om ermee verder te gaan en deze te kneden naar mijn wensen.
Toegevoegd zijn:
Zeker te zijn dat de macro runt van Blad 2
Sorteren van de inputinformatie
Verwijderen van de eerste (lege) rij van Blad 3 (na transponeren) en aanpassen van de kolombreedte.

Dat Blad3 geheel gewist wordt neem ik op in de gebruiksaanwijzing.
Misschien is hier een onderbreking van de macro en een messagebox een goed alternatief. Hoe te regelen /

code
----------------------------------
Sub Verplaatsen()
Application.ScreenUpdating = False 'Voorkomt flikkeren van het beeldscherm
ActiveWorkbook.Worksheets("Blad2").Select

'Gegevens sorteren
Columns("A:B").Select
ActiveWorkbook.Worksheets("Blad2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Blad2").Sort.SortFields.Add Key:=Range("A2:A65536") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Blad2").Sort.SortFields.Add Key:=Range("B2:B65536") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Blad2").Sort
.SetRange Range("A1:B65536")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C1").Select

'Gegevens transponeren
Dim lRij As Long
Dim lKol As Long
Dim lSRij As Long
lRij = 1
Worksheets(3).Cells.ClearContents
While Worksheets(2).Cells(lRij, "A") <> ""
With Worksheets(3).Range("A:A")
Set NR = .Find(Worksheets(2).Cells(lRij, "A"), LookIn:=xlValues, LOOKAT:=xlWhole)
If Not NR Is Nothing Then
lKol = Worksheets(3).Cells(NR.Row, "IV").End(xlToLeft).Column + 1
Worksheets(3).Cells(NR.Row, lKol).Value = Worksheets(2).Cells(lRij, "B")
Else
lSRij = Worksheets(3).Range("A65536").End(xlUp).Row + 1
Worksheets(3).Cells(lSRij, "A").Value = Worksheets(2).Cells(lRij, "A")
Worksheets(3).Cells(lSRij, "B").Value = Worksheets(2).Cells(lRij, "B")
End If
End With
lRij = lRij + 1
Wend

' Eerste_regel_wissen en kolombreedte aanpassen
Sheets("Blad3").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Range("C1").Select
Cells.Select
Cells.EntireColumn.AutoFit
Range("C1").Select
End Sub
---------------------------------------------------------
Nogmaals dank ! en groeten van Ton
 
Laatst bewerkt:
Ik ben op dit moment de laatste hand aan het leggen om je wijzigingsvoorstellen in de macro op te nemen.

Met vriendelijke groet,


Roncancio
 
Als ik van jou was Ton, zou ik die Select's en ActiveWorkbook's eruit kegelen :)
 
Als ik van jou was Ton, zou ik die Select's en ActiveWorkbook's eruit kegelen :)

Bedankt Wim voor je advies. De achtergrond daarvoor is om zeker te stellen dat processen ook runnen op de juiste sheets voor het geval je de macro niet start van blad 2. Zal try en error uitvoeren.
Gr. Ton
 
De achtergrond daarvoor is om zeker te stellen dat processen ook runnen op de juiste sheets voor het geval je de macro niet start van blad 2. Zal try en error uitvoeren.

Reden te meer om objectvariabelen te gebruiken voor o.a. bestanden, tabbladen en bereiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan