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

Quote

Weergeven resultaten 1 tot 10 van 10

Onderwerp: Aktive knop naam verkrijgen

  1. #1
    Vraag is opgelost

    Aktive knop naam verkrijgen

    Waarschijnlijk is het antwoord heel simpel, maar naar een ochtend het internet af te zoeken, ben ik er niet achter wat ik in onderstaande code fout doe.

    Ik wil de naam van de activeX button (op werkblad) zichtbaar krijgen als er op geklikt wordt.

    Code:
    Private Sub CommandButton3_Click()
    Call ActiveButtonName 'nu zou er in een popup dus "Commandbutton3" moeten staan.
    End Sub
    
    Sub ActiveButtonName()
        MsgBox ActiveSheet.Shapes.Range(Array(Application.Caller)).Name
    End Sub
    ik krijg een foutmelding:

    "Fout 1004 tijdens uitvoering:
    de index van de opgegeven verzameling valt buiten het bereik."

    alvast bedankt voor het mee denken.

  2. #2
    Senior Member
    Geregistreerd
    23 mei 2013
    en het voorbeeld bestand?

  3. #3
    In het geval van een activeX button weet jij zelf al wat de active button is, dat is namelijk (in jouw voorbeeld) "commandbutton3". Dit komt omdat activeX controls in VBA hun events etaleren en je dus 1 op 1 een relatie hebt tussen het betreffende event en de control die daarbij hoort. Bij Forms controls werkt dit anders omdat je meerdere objecten aan dezelfde macro koppelen kunt.
    Als het een knop (control) van de werkset formulieren is, dan geeft Application.Caller je de naam van de knop of de control die de macro aanriep.
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  4. #4
    Ik wil graag de macro "ActiveButtonName" willen gebruiken , zodat ik hem op meerder buttons kan toepassen, en niet voor iedere button handmatig de naam moet invullen.
    Bijgevoegde bestanden Bijgevoegde bestanden

  5. #5
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Application.Caller is alleen voor formulierknoppen, niet voor ActiveX.
    Doe het dan zoals in dit voorbeeld:
    Kopie van button naam.xlsm

    Anders moet je met een Class module gaan werken.
    Laatst aangepast door edmoor : 15 april 2019 om 12:50
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  6. #6
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    ik heb post 3 van Jan gelezen en jouw macro gelezen en zie: ik heb je buttons door formulierknoppen vervangen
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door sylvester-ponte : 15 april 2019 om 13:00
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

  7. #7
    Mega Senior E v R's avatar
    Geregistreerd
    22 oktober 2008
    Hierbij een Klasse in jouw voorbeeld gezet.
    Eerst de macro zetButtons uitvoeren
    Bijgevoegde bestanden Bijgevoegde bestanden
    Gr. Eric

  8. #8
    @EvR: lijkt veel op een oude post van mij: https://jkp-ads.com/Articles/ControlHandler00NL.asp
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  9. #9
    Mega Senior E v R's avatar
    Geregistreerd
    22 oktober 2008
    @jkp Komt het niet vandaan, knip, plak en type uit mn hoofd, maar perfecte beschrijving op jouw site voor de TS
    Gr. Eric

  10. #10
    Dank jullie allen voor jullie inbreng, ik heb weer wat bij geleerd . Die Class Module is voor mij de oplossing.

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