Avatar billede jonasboege Praktikant
19. august 2010 - 13:46 Der er 4 kommentarer og
1 løsning

Navn på knap

Hej.

Jeg har et ark med 50 knapper, som brugerne skal kunne trykke på - og så kører der en macro.
Jeg vil gerne have, det er den samme macro, de er tildelt - så for at kunne udføre det ønskede, skal jeg i min sub kalde en anden sub med navnet på den knap, de trykker på.

Sub minSub 'starter, når bruger trykker på en af de 50 knapper

knapNavn = den knap brugeren trykker på ????
Call minAndenSub(knapNavn)

End Sub

Håber I kan hjælpe...
Avatar billede tjacob Juniormester
19. august 2010 - 15:12 #1
Jeg antager at det er Excel?

I din sub kan du finde knapnavnet således:

    Dim KnapNavn As String
    KnapNavn = Application.Caller
Avatar billede jonasboege Praktikant
19. august 2010 - 15:17 #2
Hej.

Ja - det er Excel.
Jeg har ikke mulighed for at tjekke det lige nu - først i morgen - men du lyder overbevisende - og det lyder også meget intuitivt, så smid du bare et svar....

:-)

Jonas
Avatar billede tjacob Juniormester
19. august 2010 - 15:22 #3
OK, her er et svar. Men tjek nu lige først om du kan bruge det!
Avatar billede jonasboege Praktikant
20. august 2010 - 09:46 #4
Hej - det virkede bare helt perfekt... Jeg har prøvet om jeg kan få tekst fra knappen også. Det kan jeg godt, hvis jeg først bruger .Select:

ActiveSheet.Shapes(Application.Caller).Select
MsgBox (Selection.Characters.Text)

Hvorfor kan jeg ikke sige
ActiveSheet.Shapes(Application.Caller).Characters.Text - hvad gør jeg forkert her?

Jeg hader, når jeg kun kan finde løsninger ved at "selecte" først...
Avatar billede tjacob Juniormester
20. august 2010 - 10:44 #5
Jeg hader også select/activate, og jeg har ikke fundet nogen systematik i HVOR og HVORNÅR det er nødvendigt.

I mange tilfælde har det noget at gøre med absolutte/relative referencer, hvor f.eks. en Range kan variere, men det er jo ikke tilfældet her......... så jeg bliver dig svar skyldig.

VBA er ikke det perfekte programmeringssprog, og udviklerne er mange steder hoppet over hvor gærdet er lavest.
Og nu hvor man har stoppet udvikling af "regulær" VB (6.0) til fordel for .NET bliver det nok aldrig bedre........
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester