Ga naar inhoud

Welkom op PC Helpforum!
PC Helpforum helpt GRATIS computergebruikers sinds 2006. Ons team geeft via het forum professioneel antwoord op uw vragen en probeert uw pc problemen zo snel mogelijk op te lossen. Word lid vandaag, plaats je vraag online en het PC Helpforum-team helpt u graag verder!


FredSiegl

Lege cellen tellen tussen twee waarden

Aanbevolen berichten

Kan ik aan de knoppen in het formulier ook een soort autoload van 'Macro1' toevoegen, zodat al mijn data telkens geupdate wordt?

Ja, daarvoor moet je onderaan je code alleem maar macro1 te typen, als macro1 de de macro is die je gegevens updatet.

De knoppen van het formulier geven een waarde aan de geselecteerde cel en selecteren daarna de volgende cel. Kan dit ook automatisch onder het laaste stukje data geplaatst worden in kolom A i.p.v. het telkens te moeten te selecteren?

Ja. Hoe je iets onder de laatste cel plaatst, kun je uit de macro's halen die ik hierboven plaatste. Om de kleur mee te kopiëren zou je de RGB-waarde moeten weten omdat je je kleuren hebt gekozen uit het miljoenenpallet (uit de kleurenindex zou eenvoudiger geweest zijn voor het programmeren). Dat probleem kun je omzeilen door aan de cellen met de kleurennamen in de eerste rij de kleuren toe te voegen; je kunt dan, als je in het formulier een kleur hebt gekozen, bepalen welke cel daar bovenaan mee overeenkomt en die cel kopiëren naar de eerstvolgende cel onderaan in de eerste kolom. Je hoeft dan geen RGB-waarde te weten.

De data uit M27:S37 zou ik altijd in beeld willen hebben om af te kunnen lezen.

Zet de macrorecorder aan terwijl je dat bereik in beeld brengt, dan heb je meteen de code (ongeveer).

Deel dit bericht


Link naar bericht
Delen op andere sites

  • Topicstarter
  •    0

    Is het mogelijk dat je mij een kleine uitleg geeft over de macro? Zo ervaren ben ik er nog niet in eerlijk gezegd. Heb wel via wat fora en youtube die form kunnen maken, maar de rest gaat nog wat stroef.

     

    Deel dit bericht


    Link naar bericht
    Delen op andere sites
  • Topicstarter
  •    0

    Ik snap dat je idd met de recorder de code van dat gedeelte kan krijgen, maar hoe krijg ik zoiets dan standaard voor mijn neus? De oplossing die ik nu gebruik is het kopieren naar een nieuwe tabblad. 

     

    Dit is de code, wat makkelijker om te quoten.

     

    Sub macro1()
    Dim a As Integer, cl As Range, k As Integer, kl As String, lr As Integer
    Dim mc As Range, r As Integer, st As Integer, x As Integer, y As Integer
    Sheets(2).Cells.ClearContents
    With Sheets(1)
    r = 1: lr = .Cells(.Rows.Count, 1).End(xlUp).Row
    Set mc = .Range("c1:l1")
    For Each cl In mc
    k = 1: kl = cl.Value
    Sheets(2).Cells(r, 1) = kl
    st = Application.Match(kl, .Range("a1:a" & lr), 0)
    For x = st To lr
    y = 1
    Do While (x + y) <= lr And .Cells(x + y, 1).Value <> kl
    y = y + 1
    Loop
    k = k + 1
    Sheets(2).Cells(r, k).Value = y
    st = x + y: x = x + y - 1
    Next x
    r = r + 1
    Next cl
    End With
    With Sheets(2)
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row + 2
    r = lr + 2
    For y = 1 To lr
    .Cells(r, 1).Value = .Cells(y, 1).Value
    .Cells(r, 2).Value = .Cells(y, .Cells(y, .Columns.Count).End(xlToLeft).Column)
    r = r + 1
    Next y
    End With
    End Sub

     

     

    Deel dit bericht


    Link naar bericht
    Delen op andere sites

    3 uren geleden, FredSiegl zei:

    Ik snap dat je idd met de recorder de code van dat gedeelte kan krijgen, maar hoe krijg ik zoiets dan standaard voor mijn neus?

    De oplossing die ik nu gebruik is het kopieren naar een nieuwe tabblad. 

    Zoals ik al schreef: als je M27:S36 in beeld wil hebben, dan experimenteer je wat met verschuiven van rijen en kolommen. Als je dat doet terwijl de recorder aan staat, dan wijzig je de code net zo lang tot je in beeld hebt wat je in beeld wil hebben. Bv. je macro afsluiten met:

    With ActiveWindow
    .ScrollRow = 26
    .ScrollColumn = 8
    End With

    Bovenstaande doet het goed op mijn computer, maar dat kan op de jouwe anders zijn; gewoon de getallen aanpassen indien nodig

    Hoe mijn eigen code eruit ziet, dat weet ik uiteraard wel, dus die hoef je op het forum niet te herhalen.

    Zoek bij elke opdracht in de vba-helpfile op wat die doet en wat ze betekent en oefen er dan mee, dan begrijp je ze wel.

    Als je nog niet veel ervaring hebt met vba (en Excel zonder vba goed kent, dat is een minimum-voorwaarde), dan kun je best met zeer eenvoudige dingen beginnen en je niet te veel tegelijkertijd op de hals willen halen. Ik heb de indruk dat dat laatste het geval is, maar ik kan me vergissen.

    Deel dit bericht


    Link naar bericht
    Delen op andere sites
  • Topicstarter
  •    0
     
     
     
    2
    Op 10/5/2019 om 17:11, bakerman zei:
    
    Application.Goto Sheets(1).Cells(27, 13), True

    M27:S36 in beeld in linker bovenhoek.

    Deze werkt top! Thanks

    Deel dit bericht


    Link naar bericht
    Delen op andere sites

  • Topicstarter
  •    0
     
     
     
    Op 10/5/2019 om 16:30, alpha zei:

    Als je nog niet veel ervaring hebt met vba (en Excel zonder vba goed kent, dat is een minimum-voorwaarde), dan kun je best met zeer eenvoudige dingen beginnen en je niet te veel tegelijkertijd op de hals willen halen. Ik heb de indruk dat dat laatste het geval is, maar ik kan me vergissen.

    Daar kun je wel eens gelijk in hebben, maar gaande weg leer je natuurlijk. Ook met moeilijke code. Uiteindelijk kom ik wel bij wat ik wil hebben dus dat is top. 

     

    Thanks!

    Deel dit bericht


    Link naar bericht
    Delen op andere sites
  • Topicstarter
  •    0

    Wederom een volgende vraag

     

    Hoe krijg ik de op één na laatste waarde van al mijn data weergegeven?

     

    Ik heb dit gevonden en vertaald uiteraard, maar dan werkt die niet. Enig idee?

    1. Selecteer een lege cel voor het plaatsen van de voorlaatste waarde, voer de formule in = INDEX (B: B, LARGE (IF (B: B <> "", ROW (B: B)), 2)) 

    Deel dit bericht


    Link naar bericht
    Delen op andere sites
    Geplaatst: (aangepast)

    Voor rij 1 in Blad2:

    =index(A1:DA1;vergelijken(9,9E+307;A1:DA1)-1)

    Naar beneden kopiëren voor rij 2 en volgende rijen.

    aangepast door alpha

    Deel dit bericht


    Link naar bericht
    Delen op andere sites
    Dit is een verouderd onderwerp. Heb je een gelijkaardige vraag? Start dan een nieuw topic in dit forumonderdeel aub.

    Doe mee aan dit gesprek

    Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

    Gast
    Reageer op dit topic

    ×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

      Er zijn maximaal 75 emoji toegestaan.

    ×   Je link werd automatisch ingevoegd.   Tonen als normale link

    ×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

    ×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in


    Logo

    OVER ONS

    PC Helpforum helpt GRATIS computergebruikers sinds juli 2006. Ons team geeft via het forum professioneel antwoord op uw vragen en probeert uw pc problemen zo snel mogelijk op te lossen. Word lid vandaag, plaats je vraag online en het PC Helpforum-team helpt u graag verder!

    ×
    ×
    • Nieuwe aanmaken...

    Belangrijke informatie

    We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.