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

Dashboard met werkende macro cellen laten vullen op ander werkblad...

Status
Niet open voor verdere reacties.

Handy2106

Gebruiker
Lid geworden
15 jan 2019
Berichten
22
Hoi,
Dit is mijn eerste post. Ik wil graag een werkend 'dashboard' maken.

Eigenschappen:
Via een + macro en - macro een cel op ander werkblad ophogen (getal met 0 decimalen)
Het is mij gelukt om de macro te laten functioneren in een actieve cel.
Bijvoorbeeld:
Aantal calls - "macro +" button - "macro -" button - cel met getal
(zie voorbeeld)

Nu wil ik niet de actieve cel modificeren maar een cel op een ander worksheet.

Kan iemand mij verder helpen?
 

Bijlagen

  • Bestandje_vullen_celle_rij_via_dashboard.xlsm
    96 KB · Weergaven: 66
afhankelijk van welke knop je drukt, kan je een specifieke cel op een ander tabblad veranderen.
Let wel op dat je steeds een puntje zet voor Range, dus ".Range"
Die Msgbox mag straks weg, als je alle knoppen behandeld hebt.
Code:
Sub Plus_button()
    MsgBox Application.Caller                                        'deze regel mag straks weg, maar zo weet je de naam van je knop
    With Sheets("KPI")                                               'in dit werkblad cellen aanpassen
        Select Case Application.Caller
            Case "Knop 6": .Range("T2").Value = .Range("T2").Value + 1    'calls knop
            Case "Knop 12": .Range("T3").Value = .Range("T3").Value + 1    'calls expert knop
                'nog tig knoppen
        End Select
    End With
End Sub

Desnoods kan die Min-button macro in deze macro geintegreerd worden.
dan wordt dat
Code:
Sub Plus_button()
    MsgBox Application.Caller                                        'deze regel mag straks weg, maar zo weet je de naam van je knop
    With Sheets("KPI")                                               'in dit werkblad cellen aanpassen
        Select Case Application.Caller
            Case "Knop 6": .Range("T2").Value = .Range("T2").Value + 1    'calls knop "+"
            Case "Knop 11": .Range("T2").Value = .Range("T2").Value - 1    'calls knop "-"

            Case "Knop 12": .Range("T3").Value = .Range("T3").Value + 1    'calls expert knop "+"
            Case "Knop 19": .Range("T3").Value = .Range("T3").Value - 1    'calls expert knop "-"

                'nog tig knoppen
        End Select
    End With
End Sub
 
Laatst bewerkt:
Zonder VBA:
 

Bijlagen

  • __spinbutton voor KPI_T1_T8.xlsb
    66,9 KB · Weergaven: 48
@SjonR

Bijvoorbeeld KPI C74 of D74 (als ik dat door heb, pak ik de gehele rij aan)
 
Laatst bewerkt door een moderator:
@cow18

Dank voor jouw reactie: ik ga er nu mee aan de slag... :thumb:
 
Laatst bewerkt door een moderator:
Dit heb ik met jouw hulp helemaal opgelost. Dit brengt mij tot het verder uitdenken van mijn idee - die ik overigens enorm versimpeld heb. Wil jij me daar ook bij helpen? Ik plaats een nieuwe vraag.
1. Graag wil ik dat ook de "dag-score" bijgehouden wordt in het "dashboard". Kolom D dient dus iedere dag vanaf 0 te beginnen.
2. De dagscores dienen te worden vastgelegd in de dag van gisteren (KPI) zodra de dag voorbij is.
3. Ik zou graag willen dat de dag van vandaag uit "KPI" geselecteerd wordt en dat daarmee de actuele rij (met de corresponderende cellen) wordt bijgehouden.
Rij 74 wordt nu absoluut gevuld maar dat dient in een latere versie relatief te gebeuren.
 
Laatst bewerkt door een moderator:
@cow18, Bart.

Is het altijd zo dat waarin het bestand is gemaakt dat het automatisch de naam overneemt van Application.Caller?

Ik heb in het verleden wel meegemaakt dat iemand het bestand opende en er een code voor schreef met bv. "Button 6".
Bij mij gaf application.caller "Knop 6" weer.
Nu geeft het voorbeeldbestand ook "Knop 6" weer in de MsgBox, maar kan dat komen doordat het in een Nederlandse versie is gemaakt en daarom dat weergeeft?

Wat als het bestand in de Engelse versie is geschreven, en jij opent het in een Nederlandse versie is het dan niet beter om terug te keren met....
Code:
Sub Plus_button()
    MsgBox [COLOR=#0000ff]ActiveSheet.Shapes(Application.Caller).Name  [/COLOR]                               'deze regel mag straks weg, maar zo weet je de naam van je knop
    With Sheets("KPI")                                               'in dit werkblad cellen aanpassen
        Select Case[COLOR=#0000ff] ActiveSheet.Shapes(Application.Caller).Name[/COLOR]
            Case [COLOR=#0000ff]"Button 6"[/COLOR]: .Range("T2").Value = .Range("T2").Value + 1    'calls knop
            Case [COLOR=#0000ff]"Button 12"[/COLOR]: .Range("T3").Value = .Range("T3").Value + 1    'calls expert knop
                'nog tig knoppen
        End Select
    End With
End Sub

Geen idee, maar beide codes werken in hetzelfde bestand.
 
Vervolg op "Dashboard verbeteren" en "slim vullen van mijn KPI worksheet"

Ik ben in mij eerste post super op weg geholpen en dat brengt mij tot mijn tweede post:

Mijn werkblad - dat ik overigens enorm versimpeld heb - wil ik nog slimmer bijhouden:
1. Graag wil ik dat ook de "dag-score" bijgehouden wordt in het "dashboard". Kolom D dient dus iedere dag vanaf 0 te beginnen.
2. De dagscores dienen te worden vastgelegd in de dag van gisteren (KPI) zodra de dag voorbij is.
3. Ik zou graag willen dat de dag van vandaag uit "KPI" geselecteerd wordt en dat daarmee de actuele rij (met de corresponderende cellen) wordt bijgehouden.
Rij 74 wordt nu absoluut gevuld maar dat dient in een latere versie relatief te gebeuren.
 

Bijlagen

  • Bestandje_optellen_aftrekken_rij_worksheet_middels_dashboard.xlsm
    69 KB · Weergaven: 33
zoiets ?
Als de dag verandert,dan blijft de score van gisteren staan totdat je de eerste keer op een knop drukt.
Ook de opmerking van HSV meegenomen om taalproblemen te vermijden.
 

Bijlagen

  • Bestandje_optellen_aftrekken_rij_worksheet_middels_dashboard (1).xlsm
    75,9 KB · Weergaven: 31
Laatst bewerkt:
@snb

Antwoord Handy2106: Wow, dit is natuurlijk helemaal super alleen weet ik nog niet de ins en outs van deze oplossing.
 
Laatst bewerkt door een moderator:
@cow18

Reactie van Handy2106: Prachtig opgelost en dank hiervoor. Ik ga hiermee door. Ik dien nog wel exact te doorgronden wat er gebeurt. Het is een mooi vervolg op wat ik tot zover heb neergezet. Ik ga nadenken over de volgende stap.
 
Laatst bewerkt door een moderator:
Worksheet KPI 2 kolommen verbergen en aantal rijen verbergen + beveiligen

Graag wil ik 2 kolommen (E + J) van worksheet KPI verbergen waar de % in berekend worden
Tevens wil ik een aantal rijen verbergen (0 t/m 63)
Als laatste wil ik worksheet KPI beveiligen om te voorkomen dat hier handmatige wijzigingen kunnen worden doorgevoerd. Alleen modificatie via het dashboard is toegestaan.
Als laatste wil ik ook worksheet "dashboard" beveiligen zodat alleen de + en - knoppen bediend kunnen worden.
Hoe kan ik dit het slimste doen?:cool:
 

Bijlagen

  • Bestandje_DashBoard_PlusMin_Mod_WorkSheet_ActiveDate_SaveResults.xlsm
    75,8 KB · Weergaven: 21
Laatst bewerkt:
kolommen en rijen verborgen.
Werkbladen éénmalig beveiligd met userinterfaceonly=true, zodat macros ongestoord hun werk kunnen doen.
Daarna van de werkbladen de beveiliging weer opgegeven en daarna terug beveiligt met paswoord "Handy".
Je kan dat anders ook via die 2 macros daarmee spelen.
Enig nadeel, iemand die iets of wat van excel kent, vindt zo in 123 je paswoord.
Je kan anders ook een andere kiezen en die voor je zelf houden (en vooral niet vergeten).

Let wel, beveiliging binnen excel is niet 100% waterdicht.
 

Bijlagen

  • Bestandje_DashBoard_PlusMin_Mod_WorkSheet_ActiveDate_SaveResults.xlsm
    80,6 KB · Weergaven: 38
@cow18

Reactie van Henk Andy ter verduidelijking:
1. kolommen en rijen verborgen. --> Handy2106: Keurig en dit begrijp ik 10%
2. Werkbladen éénmalig beveiligd met userinterfaceonly=true, zodat macros ongestoord hun werk kunnen doen. --> Handy2106 Ik heb gemerkt dat de 2 tabbladen beveiligd waren. Ik kon de Plus en Min buttons (net als overige wijzigingen) niet uitvoeren vanwege deze beveiliging. Wat moet ik doen?
3. Daarna van de werkbladen de beveiliging weer opgegeven en daarna terug beveiligt met paswoord "Handy". --> Handy2106 jij schrijft opgegeven maar bedoel je opgeheven? Ik begrijp deze logica niet en heb nog een toelichting nodig. Kun jij me dit verduidelijken?
4. Je kan dat anders ook via die 2 macros daarmee spelen. --> Ik heb ermee gespeeld en ik begrijp de beveiligen en afbeveiligen macro's alleen weet nog niet hoe ik die kan toepassen. Wil jij me dit uitleggen?
5. Enig nadeel, iemand die iets of wat van excel kent, vindt zo in 123 je paswoord. --> Handy2106 Ik denk dat ik de kwetsbaarheid begrijp hoewel ik zonder wachtwoorden de macro's niet zou kunnen lezen. Een ervaren excel specialist wel. Hoe?
6. Je kan anders ook een andere kiezen en die voor je zelf houden (en vooral niet vergeten). --> Ik hou de wachtwoorden transparant gedurende het ontwikkelproces. Fijn dat jij dat ook doet.
7. Let wel, beveiliging binnen excel is niet 100% waterdicht. --> De nadruk ligt nog niet op beveiligen. Mooi als dat wel kan maar dat is toekomst
muziek. Dank voor de tip!

Graag jouw reactie.Handy2106

Voor later stadium alvast het uiteindelijke doel:
Vraag Handy2106: Ik heb gestoeid met de beveiligingsoptie van Excel - zowel met de macro's - in het werkblad. Ik merk dat de macro's (plus en min) dan niet uitvoerbaar zijn. Is dit op te lossen? De gebruiker dient namelijk alleen met het "Dashboard" te gaan werken.

Bericht van Handy2106: Dank je voor de snelle reactie. Ik ben nu dichtbij om de puntjes op de welbekende letter "I" te zetten.
Uiteindelijk ga ik de oplossing gebruiken in een mini groepje van vrienden om scores bij te gaan houden.
Iedere zondag krijg ik de Werkbladen retour gezonden met daarin de resultaten van - ook - de afgelopen week.
Ik sta open voor ideeën hoe ik dit het beste kan organiseren. Zelf denk ik aan het toevoegen van de verschillende werkbladen aan een master werkblad met daarin weer een master werktablad "KTotaal" afgeleid van KPI totalen. Afijn, daar kom ik dan waarschijnlijk vanavond mee dus kan ik daar ook nog goed over nadenken. Voorlopig dank aan een ieder die een bijdrage heeft gedaan. Ik ben erg onder de indruk van de interactiviteit die mijn kennis van Excel VBa opfrist (is van bijna 20 jaren terug) en nieuw leven inblaast.
 
Laatst bewerkt:
1.Rijen en kolommen verbergen, in een niet beveiligd blad selecteer je enkele rijen of kolommen, klik je op de rechtermuis en kies je voor verbergen.
2. Die ene macro, daar moet dus toch telkens die userinterfaceonly bij. Ik dacht dat je dat maar 1 keer moest doen, vergissing van mijn kant.
Code:
Sub Beveiligen()
    Sheets("KPI").Protect Password:="Handy", userinterfaceonly:=True
    Sheets("Dashboard").Protect Password:="Handy", userinterfaceonly:=True
End Sub
3. Soms wil je zelf toch iets veranderen aan je werkmap en dan moet je de beveiliging van een werkblad opheffen ofwel met die andere macro ofwel handmatig, je klikt met de rechtermuis op de desbetreffende tab en dan beveiliging opheffen met ingave van het paswoord. dan kan je bv. vandaag (=een zondag) in die B-kolom toevoegen.
4. Dat spelen met die 2 macros, eigenlijk enkel om te kunnen switchen tss beide toestanden, in de ene situatie is het zoals vroeger, dat je alles kan, de andere kan je enkel met de toetsen werken.
5. Normaal verwacht je niet dat een gewoon gebruiker VBA kent, dus ben je veilig met je wachtwoord, niemand kan het lezen. Dat is anders als je het bestand hier op de site neerzet. Binnen 5 tellen kennen ze het paswoord.
Je kan eigenlijk ook VBA beveiligen met een paswoord, maar dat wordt dan helemeaal te gek.
6-7. je kan anders de werkbladen ook beveiligen zonder paswoord, misschien is dat in deze situatie nog het eenvoudigst.
 
Vervolg op "Dashboard verbeteren"; deel-projectje bijna afgerond

1.Rijen en kolommen verbergen, in een niet beveiligd blad selecteer je enkele rijen of kolommen, klik je op de rechtermuis en kies je voor verbergen.
Handy2106 aan @Cow18: Sorrie, er stond 10% maar dat moest 100% zijn. Ik zou ook niet weten hoe ik "deels begrijpen" in een percentage uit zou moeten drukken (LOL)
2. Die ene macro, daar moet dus toch telkens die userinterfaceonly bij. Ik dacht dat je dat maar 1 keer moest doen, vergissing van mijn kant.
Handy2106 aan @Cow18: geen probleem
Code:
Sub Beveiligen()
Sheets("KPI").Protect Password:="Handy", userinterfaceonly:=True
Sheets("Dashboard").Protect Password:="Handy", userinterfaceonly:=True
End Sub
Handy2106 aan @Cow18: Ik heb ermee gestoeid door de code op te nemen in de "PlusMin button Macro". Het werkt nog niet vloeiend. Wat doe ik nog fout:
Code:
Sub PlusMinus_Button()
'MsgBox ActiveSheet.Shapes(Application.Caller).Name 'deze regel mag straks weg, maar zo weet je de naam van je Button
Sheets("KPI").Unprotect Password:="Handy" 'userinterfaceonly:=True, hier wil ik de beveiliging er eerst afhalen voor sheet KPI
Sheets("Dashboard").Unprotect Password:="Handy" ',userinterfaceonly:=True, hier wil ik de beveiliging er eerst afhalen voor sheet Dashboard
With Sheets("KPI") 'in dit werkblad cellen aanpassen
rij = Application.Match(CDbl(Date), .Range("B1:B600"), 0) 'zoek datum van vandaag in de B-kolom, de gerelateerd cel wordt aangepast
If IsNumeric(rij) Then 'gevonden=numeriek
Select Case ActiveSheet.Shapes(Application.Caller).Name 'hier gaat het mis: bij foutcontrole wijst hij deze regel aan. Ik snap nog niet hoe ik het moet oplossen
Case "Button 6": .Range("C" & rij).Value = .Range("C" & rij).Value + 1 'aantal calls Button
Case "Button 11": .Range("C" & rij).Value = .Range("C" & rij).Value - 1 'aantal calls Button
Case "Button 12": .Range("D" & rij).Value = .Range("D" & rij).Value + 1 'ftf succes Button
Case "Button 19": .Range("D" & rij).Value = .Range("D" & rij).Value - 1 'ftf succes Button
Case "Button 15": .Range("F" & rij).Value = .Range("F" & rij).Value + 1 'oam leads Button
Case "Button 23": .Range("F" & rij).Value = .Range("F" & rij).Value - 1 'oam leads Button
Case "Button 16": .Range("G" & rij).Value = .Range("G" & rij).Value + 1 'lending leads Button
Case "Button 25": .Range("G" & rij).Value = .Range("G" & rij).Value - 1 'lending leads Button
Case "Button 17": .Range("H" & rij).Value = .Range("H" & rij).Value + 1 'avb leads Button
Case "Button 27": .Range("H" & rij).Value = .Range("H" & rij).Value - 1 'avb leads Button
Case "Button 18": .Range("I" & rij).Value = .Range("I" & rij).Value + 1 'avb succes Button
Case "Button 28": .Range("I" & rij).Value = .Range("I" & rij).Value - 1 'avb succes Button
'nog tig Buttons
End Select
Sheets("Dashboard").Range("D1:D6").Value = Application.Transpose(Array(.Range("C" & rij).Value, .Range("D" & rij).Value, .Range("F" & rij).Value, .Range("G" & rij).Value, .Range("H" & rij).Value, .Range("I" & rij).Value))
Else
MsgBox "Het is zondag dus vandaag werkt ook dit werkblad niet!", vbCritical
End If
End With
Sheets("KPI").Protect Password:="Handy" 'hier dient de beveiliging van sheet KPI weer aan te worden gezet
Sheets("Dashboard").Protect Password:="Handy" 'hier dient de beveiliging van sheet Dashboard weer aan te worden gezet
End Sub

Handy2106 aan @Cow18: Test het eens (wellicht zie jij direct wat ik fout doe...) en dan stopt de macro iedere keer bij het Select statement. Klik ik nogmaals op de button dan doet hij het wel (dat kan ik nu nog niet bevatten). Ik denk dat ik de af- en aan beveiliging statements iets anders moet declareren. Hier heb ik hulp bij nodig.

3. Soms wil je zelf toch iets veranderen aan je werkmap en dan moet je de beveiliging van een werkblad opheffen ofwel met die andere macro ofwel handmatig, je klikt met de rechtermuis op de desbetreffende tab en dan beveiliging opheffen met ingave van het paswoord. dan kan je bv. vandaag (=een zondag) in die B-kolom toevoegen.
Handy2106 aan @Cow18: haha, :) dat moest ik inderdaad doen om vandaag te kunnen testen :)
4. Dat spelen met die 2 macros, eigenlijk enkel om te kunnen switchen tss beide toestanden, in de ene situatie is het zoals vroeger, dat je alles kan,
de andere kan je enkel met de toetsen werken.
Handy2106 aan @Cow18: Dat snap ik helemaal en erg nuttig om er op die manier ervaring mee op te hebben gedaan
5. Normaal verwacht je niet dat een gewoon gebruiker VBA kent, dus ben je veilig met je wachtwoord, niemand kan het lezen. Dat is anders als je het bestand hier op de site neerzet. Binnen 5 tellen kennen ze het paswoord.
Handy2106 aan @Cow18: Klopt, ik ga werken met vrienden die geen kennis van VBA hebben voorlopig. Toch interessant om later uit te vogelen hoe dit beter te doen.
Je kan eigenlijk ook VBA beveiligen met een paswoord, maar dat wordt dan helemeaal te gek.
Handy2106 aan @Cow18: Voor latere zorg dus :)
6-7. je kan anders de werkbladen ook beveiligen zonder paswoord, misschien is dat in deze situatie nog het eenvoudigst.
Handy2106 aan @Cow18: Klopt. Ik heb nieuwsgierige gebruikers die toch gaan proberen iets kapot te maken. Hier wil ik ze tegen beschermen.

Ik voeg het bestand in de laatste versie weer bijgevoegd. (Ik ben erg blij met jouw ondersteuning en vraag me af hoe ik jou kan bedanken. Ik zou een kleine donatie aan dit platform willen doen namens een ieder die mij tot zover heeft geholpen)
 

Bijlagen

  • Bestandje_DashBoard_PlusMin_Mod_WorkSheet_ActiveDate_SaveResults_Secure.xlsm
    77,2 KB · Weergaven: 43
Laatst bewerkt:
Hoe onleesbaar kan je iets maken? Je hoeft niet elke vraag en reactie te herhalen in een soort babbelboxstijl. Maak gebruik van een tabel waar je de data in wegschrijft. obv deze tabel kan je veel beter jouw data analyseren.

Zonder alle onzin met beveiligingen heb je aan deze code voldoende
Code:
Sub VenA()
  Set c = ActiveSheet.Shapes(Application.Caller).TopLeftCell
  Cells(c.Row, 4) = Cells(c.Row, 4) + IIf(c.Column = 2, 1, -1) 'mag je ook weglaten.
  With Sheets("KPI_tabel").ListObjects(1).DataBodyRange
    r = Application.Match(CDbl(Date), .Columns(1), 0)
    If IsNumeric(r) Then
      .Cells(r, c.Row + 1) = .Cells(r, c.Row + 1) + IIf(c.Column = 2, 1, -1)
    End If
  End With
End Sub

Waarom noem je een tab waar je op een bijzondere manier gegevens invoert 'Dashboard'? Een Dashboard presenteert volgens mij geaggregeerde gegevens middels draaitabellen/grafieken. In de bijlage de tab 'Pt_KPI'
 

Bijlagen

  • Bestandje_DashBoard_PlusMin_Mod_WorkSheet_ActiveDate_SaveResults_Secure.xlsb
    262,3 KB · Weergaven: 56
@VenA jij hebt gelijk - voortaan geen babbelboxen meer. Jouw oplossing(en) zijn fraai. Kun jij de code nog zo maken dat mijn "Schakelbord" iedere actuele dag op "0" begint met tellen? Nu is dat nog niet het geval.
Nu ik jouw reactie lees is het ook zeker geen dashboard. Liever had ik een soort control box gemaakt die je gedurende de dag in de taakbalk onderin het scherm kunt aanklikken. Het moet in ieder geval super simpel zijn om de respectievelijke onderdelen bij te houden.

@VenA, zou jij nog willen reageren?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan