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

reeks converteren

Status
Niet open voor verdere reacties.

brandernl

Gebruiker
Lid geworden
19 okt 2004
Berichten
445
Ik heb een dergelijke vraag voor mijn gevoel al wel eens voorbij zien komen, maar kan hem niet (meer) vinden.
Dit moet de rangschikking worden

Project ID Medewerker
300 20987
300 29883
300 29938
400 60923

Op dit moment staat het zo in het excel sheet:

300 20987 29883 29938
400 60923

Wie weet hoe je dit snel kunt converteren?
Dank
 
Nog een vraag vooraleer de macro te schrijven:

Heb je minder medewerkers (maximaal dan) om het op 1 rij te krijgen?
 
Op dit moment zijn het maximaal drie medewerkers. Als je me op weg helpt met drie, kom ik er met meer waarschijnlijk wel uit.
 
Voilà

Code:
Sub anderesortering()
Dim lngRow As Long, l As Long, firstCell As Range
lngRow = Range("A2").End(xlDown).Row

For l = lngRow To 2 Step -1
    If WorksheetFunction.CountIf(Range("A2", "A" & lngRow - 1), Range("A" & l)) > 1 Then
        Set firstCell = Range("A1", "A" & l - 1).Find(Range("A" & l), lookat:=xlWhole, LookIn:=xlFormulas)
        If Not firstCell Is Nothing Then
            Range("A" & l).ClearContents
            Range("B" & l).Cut Range("A" & firstCell.Row).End(xlToRight).Offset(, 1)
        End If
    End If
Next

Range("A2", "D" & lngRow).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2"), _
    Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom
End Sub

Begin de data vanaf A2.

Bij het sorteren, verander de kolom indien meer medewerkers.

Wigi
 
Dag Wim,
bedankt voor je snelle hulp, maar hij doet nog niet wat ik wil.
Moet nu even wat anders gaan doen. Ik kom er nog op terug
 
Ik zit nu op een heel andere plaats en kan even niet bij het bestand.
Ik heb de data in kolom A t/m D gezet. De eerste entry in A2.
Als ik nu de macro uitvoer, lijkt het dat ie niets anders doet.dan kolom A sorteren.
Maar ik hoop a/h eind van de middag tijd te hebben om bter (?) te kijken.
 
Ik zit nu op een heel andere plaats en kan even niet bij het bestand.
Ik heb de data in kolom A t/m D gezet. De eerste entry in A2.
Als ik nu de macro uitvoer, lijkt het dat ie niets anders doet.dan kolom A sorteren.
Maar ik hoop a/h eind van de middag tijd te hebben om bter (?) te kijken.

Ik zou het raar vinden indien het niet werkt (heb het nl. getest), maar laat dan later maar weten wat er nog aan schort.

Wigi
 
Wim
Nog even de orginele vraag; ik ben (denk ik) niet duidelijk

Op dit moment staat het zo in het Excel sheet:
ProjectID | MW1 | MW2 | MW3
300 | 20987 | 29883 | 29938
400 | 60923

En zo moet het worden
Kolom A | Kolom B
Project ID | Medewerker
300 | 20987
300 | 29883
300 | 29938
400 | 60923

Dus als er 3 medewerkers zijn die aan project 300 werken, dan moeten dat 3 rijen worden, met in elke rij één medewerker aan dat project.
 
Wim
Nog even de orginele vraag; ik ben (denk ik) niet duidelijk

Op dit moment staat het zo in het Excel sheet:
ProjectID | MW1 | MW2 | MW3
300 | 20987 | 29883 | 29938
400 | 60923

En zo moet het worden
Kolom A | Kolom B
Project ID | Medewerker
300 | 20987
300 | 29883
300 | 29938
400 | 60923

Dus als er 3 medewerkers zijn die aan project 300 werken, dan moeten dat 3 rijen worden, met in elke rij één medewerker aan dat project.

Damn, ik had het omgekeerde gedaan. De macro volgt nog.
 
De macro volgt nog.

Bij deze.

Code:
Sub gewonesortering()
Dim lngRow As Long, c As Range
lngRow = Range("A2").End(xlDown).Row

For Each c In Range("C2:D" & lngRow).SpecialCells(xlCellTypeConstants)
    Range("A" & c.Row).Copy Range("A" & Rows.Count).End(xlUp).Offset(1)
    c.Cut Range("A" & Rows.Count).End(xlUp).Offset(, 1)
Next

Range("A2", Range("A2").End(xlDown)).Resize(, 2).Sort Key1:=Range("A2"), _
    Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Wigi
 
Wim,
Ik had het ook niet slim gevraagd.
Werkt als een speer!
Dank en een prettig weekeinde
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan