uit bestand van steeds 4 kolommen per persoon specifieke cellen automatisch weergeven in voor elke persoon een rij (in een ander tabblad)

Anoniem
2023-01-02T22:54:23+00:00

ik houd (als hobby) de ontwikkelingen bij van een groot aantal personen. Voor elke persoon heb ik vier kolommen. Waarbij ik per week gegevens bij werk. Ik wil nu (op een ander tabblad) overzichten maken waarbij uit de kolommen voor elke persoon in rijen automatisch de gegevens uit specifieke cellen in de kolommen worden gereproduceerd. Het gaat om cellen waarin per persoon optellingen/saldi en percentages staan weergegeven.

in deze tabel heb ik wat ik wil getracht duidelijk te maken,

het gaat erom steeds dezelfde cel uit een reeks van 4 kolommen over te brengen naar een specifieke plek in een nieuwe tabel met rijen

gegevens uit serie kolommen naar rijen transporteren
van 4 kolommen jan jan jan jan susan susan susan susan loes loes loes loes enz
a b c d a b c d a b c d
1 xxxx xxxx xxxx
2 zzzz yyyy yyyy
3 yyyy zzzz zzzz
4 wwww wwww
naar rij b1 a3 c2 d4
1 jan xxxx yyyy zzzz wwww
2 susan xxxx yyyy zzzz wwww
3 loes xxxx yyyy zzzz wwww
4 enz xxxx yyyy zzzz wwww
Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

40 antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2023-02-17T14:51:29+00:00

    dank, ik ga combinatie met macro aalpha bekijken, maar zo werkt het

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2023-02-17T11:56:58+00:00

    Albert,

    Met een formule zal dat niet lukken.

    Wel met een macro:

    Sub VanTotalenNaarSorteren() 
    
        Sheets("Totalen").Cells.Copy 
    
        With Sheets("Sorteren").Range("A1") 
    
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    
            :=False, Transpose:=False 
    
            .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
    
            SkipBlanks:=False, Transpose:=False 
    
            .Value = "totalen active leden sorteerbaar" 
    
            .Parent.Activate 
    
            .Select 
    
        End With 
    
        Application.CutCopyMode = False 
    
    End Sub 
    

    Maar als je toch met VBA moet werken, zou je wellicht net zo goed de oplossing van aalpha kunnen gebruiken.

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2023-02-17T08:17:03+00:00

    Dag Jan, je hebt me zeer geholpen.

    Ik wilde het nieuwe (horizontale) overzicht graag om meerdere redenen.

    Een belangrijke reden was om te kunnen sorteren op bv resultaten van de verschillende teams (kolom A in tabblad Totalen).

    Maar helaas lukt dat niet. Het lukt wel als ik alle gegevens uit Totalen kopieer en de waarden met plakken speciaal in een ander tabblad (dat ik Sorteren heb genoemd) plak.

    Ik vraag me af of het mogelijk is om het plakken van de waarden uit het tabblad Totalen naar het tabblad Sorteren ook (met een formule) automatisch te regelen is. Anders moet ik periodiek steeds opnieuw kopiëren en plakken om een actueel geordend overzicht te krijgen.

    Of is een andere manier waarop ik kan sorteren ?

    Ik hoor graag wat mogelijk is.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  4. Anoniem
    2023-02-14T15:41:40+00:00

    Beste Alpha,

    De macro werkt nu ook !!

    Super.

    Nogmaals veel dank voor alle hulp.

    Ik ga nu eerst verder met de oplossing van Jan omdat die (voor mij) simpeler is. Ik ga die ook voor een deel uitproberen op het tabblad met de niet meer actieve leden. Ik weer veel bijgeleerd over de eindeloze mogelijkheden binnen excel.

    Mvrgr

    Albert

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  5. Anoniem
    2023-02-13T18:01:04+00:00

    Hierbij de macro die ook de opmaak van de gekopieerde cellen aanpast. Tevens zag ik dat je nu in het blad 'Totalen' 12 kolommen krijgt in plaats van11, zoals je eerst meldde. Dat daarom ook aangepast.

    Zorg dat er in de macro - vooral in de for-nextlussen - geen lege regels voorkomen. Bij 'normaal' kopiëren en plakken komen die ook niet voor in de macro.

    De oplossing van Jan (jgkzdl) is ook prima, eenvoudiger, en gemakkelijker te begrijpen dan de macro.

    Opm: Kijk in het blad "Leden" in de eerste 5 rijen de instelling van de cellen eens na. Nogal wat cellen waar 'gewone' tekst in staat (bv. namen) staan ingesteld als 'Getal'.

    Sub Kopieer() 
    
    Dim a As Integer, b As Integer, c As Integer, d As Integer 
    
    Dim e As Integer, x As Integer, y As Integer, sh2 As Worksheet 
    
    a = 2: b = 2: c = 3: d = 4: e = 5: x = 3 
    
    Set sh2 = Sheets("Totalen") 
    
    With sh2 
    
    .Cells.ClearContents 
    
    .Cells(1, 1) = "Totalen actieve leden" 
    
    .Rows(1 & ":" & 2).Font.Bold = True 
    
    For y = 1 To 12 
    
    .Cells(2, y) = WorksheetFunction.Choose(y, "Team", "Datum", "Naam", _ 
    
    "Voornaam", "Toern.punten", "Idem met factor", "Gem. factor", _ 
    
    "Huidige punten", "Gewogen %", "Bonus", "Toename in 2023", "Huidige totaal") 
    
    Next y 
    
    End With 
    
    With Sheets("Leden") 
    
    Do Until IsEmpty(.Cells(1, a)) 
    
    For y = 1 To 12 
    
    sh2.Cells(x, y) = Application.Choose(y, .Cells(2, e), _ 
    
    .Cells(5, b), .Cells(2, b), .Cells(2, c), .Cells(3, b), _ 
    
    .Cells(3, c), .Cells(4, b), .Cells(3, e), .Cells(4, d), _ 
    
    .Cells(5, d), .Cells(5, c), .Cells(4, e)) 
    
    sh2.Cells(x, y).NumberFormat = Application.Choose(y, "General", _ 
    
    "dd/mm/yy;@", "General", "General", "#,##0_ ;[Red]-#,##0 ", _ 
    
    "#,##0.00_ ;[Red]-#,##0.00 ", "#,##0.000_ ;[Red]-#,##0.000 ", _ 
    
    "#,##0_ ;[Red]-#,##0 ", "0.00", "#.00%;[Red]  -#.00% ", _ 
    
    "#,##0_ ;[Red]-#,##0 ", "#,##0_ ;[Red]-#,##0 ") 
    
    Next y 
    
    a = a + 4: b = b + 4: c = c + 4 
    
    d = d + 4: e = e + 4: x = x + 1 
    
    Loop 
    
    sh2.Columns("a:l").AutoFit 
    
    End With 
    
    End Sub
    

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen