Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 12 van 12

Onderwerp: Rijen onder elkaar plaatsen zodat er een draaitabel van gemaakt kan worden.

  1. #1
    Junior Member
    Geregistreerd
    12 maart 2019
    Vraag is opgelost

    Rijen onder elkaar plaatsen zodat er een draaitabel van gemaakt kan worden.

    De vorige keer ben ik hier goed geholpen, maar ik zit met de volgende uitdaging.

    Ik ben bezig met een logboek voor sporters;
    Het lukt me aardig deze op te zetten.
    Ik heb een invoerblad waarin ze de gegevens kunnen invoeren en deze zet het met een macroknop op de goede plek achter de datum.
    Nu wil ik leuke overzichtjes maken met hoeveel uur heb je getraind en hoeveel KM deze week tov vorige week.

    Dit lukt best met een draaitabel en één reeks trainingen op een dag.
    Maar soms trainen ze twee keer op een dag, dus dan staat er in een regel twee keer trainingsinformatie.
    In de draaitabel splitst die deze ook, terwijl die juist alle info van het zelfde type training bij elkaar moet optellen.

    Dit krijg ik niet goed in een draaitabel, dus ik wil het eigenlijk omzetten naar 1 kolom met datums, 1 kolom met alle activiteiten, 1 kolom met de trainingsduur en 1 kolom met aantal KM.
    Bijgevoegd een afbeelding van hoe het ingedeeld is.
    Kolommen H en O moeten dan bij elkaar gevoegd worden.

    Klik op afbeelding voor grotere versie

Naam:  Knipsel Excelblad.JPG
Bekeken: 26
Grootte:  315,4 KB

    Wie weet hebben jullie een goede oplossing hiervoor

  2. #2
    Mega Senior Timshel's avatar
    Geregistreerd
    14 februari 2015
    Locatie
    Leiden
    Afstand tot server
    ±147 km
    Wat kunnen helpers nu aanvangen met een plaatje?
    Misschien helpt dit https://www.helpmij.nl/forum/showthr...824-Draaitabel
    Er bestaan geen wonderen. Er is slechts onbegrip. -Spinoza-

  3. #3
    Giga Senior AlexCEL's avatar
    Geregistreerd
    3 april 2014
    Locatie
    Groningen
    Afstand tot server
    ±117 km
    hebben jullie een goede oplossing hiervoor
    Photoshop.

    Meer serieus, lees dit eens s.v.p.: https://www.helpmij.nl/forum/announcement.php?f=5
    -- een voorbeeldbestandje zegt meer dan 1000 woorden --

  4. #4
    Junior Member
    Geregistreerd
    12 maart 2019
    Ja sorry Timshel,

    Maar dat is inderdaad precies wat er moet gebeuren.
    Echter ben ik een pannenkoek op het gebied van programmeren, dus ik kom hiermee nog net niet waar ik wil zijn.

    In bijlage de excel ipv een afbeelding.
    Bijgevoegde bestanden Bijgevoegde bestanden

  5. #5
    Giga Senior AlexCEL's avatar
    Geregistreerd
    3 april 2014
    Locatie
    Groningen
    Afstand tot server
    ±117 km
    Helemaal goed, maar gezien het uitblijven van reacties is kennelijk niet duidelijk wat ermee moet gebeuren.

    Geef dit dus (handmatig) ook nog aan in het voorbeeld voor een aantal rijen/kolommen.
    -- een voorbeeldbestandje zegt meer dan 1000 woorden --

  6. #6
    Mega Senior Timshel's avatar
    Geregistreerd
    14 februari 2015
    Locatie
    Leiden
    Afstand tot server
    ±147 km
    Voeg een nieuw werkblad 'Uitvoer' in en draai de code
    Code:
    Sub tsh()
        Dim Br, Bq
        Dim i As Long, j As Long, k As Long
        
        With CreateObject("System.Collections.Arraylist")
            Br = Sheets("Logboek").Cells(1).CurrentRegion
            .Add Array("Datum", "RHR", "Slaapuren", "Gevoel", "Gewicht", "Type training", _
                "Omschrijving training", "Zin in?", "RPE1", "KM", "Gem HR")
            For i = 2 To UBound(Br)
                Bq = Array(Format(Br(i, 3), "m-d-yy"), Br(i, 4), Br(i, 5), Br(i, 6), "", "", "", "", "", "", "")
                For j = 0 To 1
                    If Br(i, 8 + j * 7) = "" Then Exit For
                    For k = 4 To 10
                        Bq(k) = Br(i, 4 + k + j * 7)
                    Next
                    .Add Bq
                Next
            Next
            Sheets("Uitvoer").Cells(1, 1).Resize(.Count, 11) = Application.Index(.ToArray, 0)
            Sheets("Uitvoer").Columns(11).NumberFormat = "h:mm:ss"
        End With
    End Sub
    Laatst aangepast door Timshel : 15 maart 2019 om 23:13
    Er bestaan geen wonderen. Er is slechts onbegrip. -Spinoza-

  7. #7
    Junior Member
    Geregistreerd
    12 maart 2019
    Ah perfect, DANK!

  8. #8
    Junior Member
    Geregistreerd
    12 maart 2019
    Bedankt Timshel,

    Echt fijn dat je dit op hebt geschreven.
    P.S. ik heb "Gewicht' er tussenuit gehaald, alles was een kolom verschoven.

    Graag zou ik weten wat welke regel precies doet, zodat ik hem met de hand zelf kan aanpassen als er nog een kolom bij moet komen.

    Wat zou ik bijvoorbeeld moeten wijzigen als ik behalve dat datums [Kolom C] ook de weeknummers [KOLOM A] wil meenemen naar het blad "uitvoer"?.
    Ik heb geprobeerd bij .Add Array( "Week", toe te voegen en bij Bq = Array(Format( Br(i, 1) toe te voegen.
    Maar dan krijg ik een foutmelding.

    Wellicht dat je mij hiermee nog verder kan helpen?

  9. #9
    Mega Senior Timshel's avatar
    Geregistreerd
    14 februari 2015
    Locatie
    Leiden
    Afstand tot server
    ±147 km
    Wat zou ik bijvoorbeeld moeten wijzigen als ik behalve dat datums [Kolom C] ook de weeknummers [KOLOM A] wil meenemen naar het blad "uitvoer"?.
    Is allemaal maatwerk natuurlijk
    Code:
    Sub tsh()
        Dim Br, Bq
        Dim i As Long, j As Long, k As Long
        
        With CreateObject("System.Collections.Arraylist")
            Br = Sheets("Logboek").Cells(1).CurrentRegion
            .Add Array("Week", "Datum", "RHR", "Slaapuren", "Gevoel", "Gewicht", "Type training", _
                "Omschrijving training", "Zin in?", "RPE1", "KM", "Gem HR")
            For i = 2 To UBound(Br)
                Bq = Array(Br(i, 1), Format(Br(i, 3), "m-d-yy"), Br(i, 4), Br(i, 5), Br(i, 6), "", "", "", "", "", "", "")
                For j = 0 To 1
                    If Br(i, 8 + j * 7) = "" Then Exit For
                    For k = 5 To 11
                        Bq(k) = Br(i, 3 + k + j * 7)
                    Next
                    .Add Bq
                Next
            Next
            Sheets("Uitvoer").Cells(1, 1).Resize(.Count, 12) = Application.Index(.ToArray, 0)
            Sheets("Uitvoer").Columns(12).NumberFormat = "h:mm:ss"
        End With
    End Sub
    Er bestaan geen wonderen. Er is slechts onbegrip. -Spinoza-

  10. #10
    Junior Member
    Geregistreerd
    12 maart 2019
    Compileerfout:

    Dubbele declaratie in het huidige bereik.

  11. #11
    Mega Senior Timshel's avatar
    Geregistreerd
    14 februari 2015
    Locatie
    Leiden
    Afstand tot server
    ±147 km
    Die melding krijg ik niet, althans niet in je testfile.
    Is er iets misgegaan met kopiëren en plakken van de code?
    Er bestaan geen wonderen. Er is slechts onbegrip. -Spinoza-

  12. #12
    Junior Member
    Geregistreerd
    12 maart 2019
    Oops, je had gelijk.

    Dim Br, Bq stond 2 keer onder elkaar.

    Bedankt dit werkt!

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren