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

dringend excel-probleem

Status
Niet open voor verdere reacties.

Raisa

Gebruiker
Lid geworden
15 aug 2003
Berichten
608
Effe een probleem voorleggen op vraag van een kennis van me...

Zie bijgevoegd excel bestand !

Werkblad 2 geeft een lange lijst van contactpersonen weer, maar alle gegevens van die persoon staan onder elkaar (in 8 regels).
In werblad 1 zouden deze zelfde gegevens nu in 8 kolommen moeten komen naast elkaar. Een aantal werden al manueel ingebracht maar er moet toch een snellere manier zijn...

Weet iemand hoe ?
 
Raisa,
De contactgegevens per contact selecteren en kopiëren, naar Blad 1 gaan daar plakken speciaal en voor Transponeren kiezen.
 
Laat deze macro los op je 2 kolommen en alles staat zoals het moet.


Deze macro is gemaakt voor 10 rijen.
Sub Transponeren()
Application.ScreenUpdating = False

Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("A:A").Select

teller = 1
rij = 1
Do While Cells(rij, 1) <> ""
Range(Cells(rij, 1), Cells(rij + 10, 1)).Select
Selection.Copy
Range("b" & teller).Select
Selection.PasteSpecial Transpose:=True
Application.CutCopyMode = False
Range(Cells(rij, 1), Cells(rij + 10, 1)).ClearContents
teller = teller + 1
rij = rij + 11
Loop
Columns("A:J").Select
Selection.Columns.AutoFit
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Rows("1:1").Select
Selection.Insert Shift:=xlDown
Range("A1").Select
ActiveCell.FormulaR1C1 = "Emailadress"
Range("B1").Select
ActiveCell.FormulaR1C1 = "First name "
Range("C1").Select
ActiveCell.FormulaR1C1 = "Last Name"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Job "
Range("E1").Select
ActiveCell.FormulaR1C1 = "Company"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Adress"
Range("G1").Select
ActiveCell.FormulaR1C1 = "Postal"
Range("H1").Select
ActiveCell.FormulaR1C1 = "Telephone "
Range("I1").Select
ActiveCell.FormulaR1C1 = "Travel with VLM"
Range("J1").Select
ActiveCell.FormulaR1C1 = "Travel with othet"
Range("B1").Select
End Sub


Als het voor 8 rijen is moet je
10 veranderen in 7
11 veranderen in 8

Pierre
 
Dit stuk code:

Code:
Range("A1").Select
ActiveCell.FormulaR1C1 = "Emailadress"
Range("B1").Select
ActiveCell.FormulaR1C1 = "First name "
Range("C1").Select
ActiveCell.FormulaR1C1 = "Last Name"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Job "
Range("E1").Select
ActiveCell.FormulaR1C1 = "Company"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Adress"
Range("G1").Select
ActiveCell.FormulaR1C1 = "Postal"
Range("H1").Select
ActiveCell.FormulaR1C1 = "Telephone "
Range("I1").Select
ActiveCell.FormulaR1C1 = "Travel with VLM"
Range("J1").Select
ActiveCell.FormulaR1C1 = "Travel with othet"

kan gerust vervangen worden door:

Code:
Range("A1").Value = "Emailadress"
Range("B1").Value = "First name "
Range("C1").Value = "Last Name"
Range("D1").Value = "Job "
Range("E1").Value = "Company"
Range("F1").Value = "Adress"
Range("G1").Value = "Postal"
Range("H1").Value = "Telephone "
Range("I1").Value = "Travel with VLM"
Range("J1").Value = "Travel with othet"
 
Dit stuk code van Wigi:
Code:
Range("A1").Value = "Emailadress"
Range("B1").Value = "First name "
Range("C1").Value = "Last Name"
Range("D1").Value = "Job "
Range("E1").Value = "Company"
Range("F1").Value = "Adress"
Range("G1").Value = "Postal"
Range("H1").Value = "Telephone "
Range("I1").Value = "Travel with VLM"
Range("J1").Value = "Travel with othet"

kan gerust vervangen worden door (zie bericht CorVerm):
Code:
Worksheets("Blad2").Range("A4:A13").Copy
Worksheets("Blad1").Range("A1").PasteSpecial , Transpose:=True

Analoog aan het kopiëren van deze header kunnen vervolgens alle gegevens uit kolom B van blad2 naar blad 1 gekopieerd worden. Om dat in 1 keer te doen het kopiëren onderbrengen in een for-nextlus of een do whileloop, rekening houdend met de lege rij tussen de records.

Franç.
 
Doodsimpel.
Selecteer de cellen in je werkblad 2
Ctrl C (of rechtermuisknop: kopieren)
Gan naar wekblad 1
Ga b.v. in cel A1 staan
Druk in werkbalk bovenaan: Bewerken/Plakken speciaal
En vink daar " transponeren" aan
Druk ok

en alle cellen/contactpersonen staan nu verticaal met alle 8 gegevens horizontaal erachter.

Hoe lang ben je bezig geweest met handmatig overbrengen? :p
 
tnt zei:
Doodsimpel.
Selecteer de cellen in je werkblad 2
Ctrl C (of rechtermuisknop: kopieren)
Gan naar wekblad 1
Ga b.v. in cel A1 staan
Druk in werkbalk bovenaan: Bewerken/Plakken speciaal
En vink daar " transponeren" aan
Druk ok
en alle cellen/contactpersonen staan nu verticaal met alle 8 gegevens horizontaal erachter.
tnt, dat zal in dit geval niet lukken (dat had ik in eerste instantie ook geprobeerd).
Ten eerste zijn de eerste 2 rijen afwijkend, dus die moeten sowieso eerst worden verwijderd (beter nog de eerste 3). En ten tweede lukt (als je dat hebt gedaan) het handmatig kopiëren-plakken-transponeren daarna nog niet, omdat Excel blijft aangeven dat het te kopiëren en plakgebied niet dezelfde vorm en grootte hebben (zelfs als je niet het volledige werkblad maar uitsluitend het te kopiëren- en plakgebied selecteert).
PS: Het zijn overigens niet 8, maar 10 gegevens per persoon.
 
Ik hang mijn hoofd in schaamte. Het feit dat transponeren niet wil lukken is omdat er horizontaal gewoonweg onvoldoende kolommen zijn (loopt maar tot IV, vandaar de melding)
Daarnaast is het inderdaad niet de oplossing voor het beoogde doel.
Ik heb de bijlage erbij gepakt en ik denk het probleem getackeld te hebben.

Op een nieuw blad2 dienen de 10 kolomkoppen gemaakt te worden.
In blad 2 cel a2 zet men de volgende formule:
=ALS(Blad1!$A1="Emailaddress ";Blad1!$B1;"")
Let op de spatie achter emailaddress. Deze zit in de oorspronkelijke cel ook. Anders werkt het niet.

Onder de volgende kolomkop First name zet je:
=ALS(Blad1!$A1="First name ";Blad1!$B1;"")
Enzovoort......
Vervolgens trek je de formule per stuk naar beneden. Of sneller is alle velden te selecteren en in 1 keer naar beneden te trekken.
Er ontstaan lege cellen maar dat los je makkelijk op door te sorteren (data/sorteren. vink aflopend en 'gegevensbereik bevat een veldnamenrij' aan)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan