Avatar billede aitnemed Novice
02. december 2009 - 15:32 Der er 9 kommentarer og
1 løsning

VBA i Excel: Hvordan får spørger jeg, hvilken celle en commandbutton er indsat i?

Overskriften skulle gerne sige det hele.

Jeg har indsat en masse commandButtons i et excel-ark og afhængigt af, hvilken række knappen sidder i, skal der ske noget lidt forskelligt. Jeg har derfor brug for en funktion, hvorigennem jeg kan spørge den commandButton, som brugeren har klikket på, hvilken celle den tilhører.

Dvs.:

Private Sub CommandButton1_Click()
    Dim activeCell As Range
    activeCell = <metakode>This.Get.Cell</metakode>

End Sub

Har gjort brug af noget lignende i Word, hvor jeg kunne bruge Selection, men kan ikke få det til at virke i Excel og har ikke kunnet finde noget brugbart dokumentation på brugen af Selection i Excel.

Nogen der ved, hvad jeg leder efter?
Avatar billede supertekst Ekspert
02. december 2009 - 16:15 #1
Med hvilket "værktøj" er disse knappen indsat?

Kender du begrebet LinkedCell?
Avatar billede aitnemed Novice
02. december 2009 - 16:35 #2
Reelt set har jeg kun indsat en enkelt commandButton indtil videre, men ideen er, at den bare skal kopieres ind i de celler, i de rækker, hvor der skal være en sådan commandButton.

Jeg har indsat min commandButton via båndet i Excel 2007: Fanebladet udvikler|knappen indsæt|ActiveX-objekter kommandoknap

Jeg har hørt om linkedCell (har dog ikke stor erfaring med det), men kan ikke umiddelbart se, hvordan det kan hjælpe i min situation?
Avatar billede supertekst Ekspert
02. december 2009 - 16:46 #3
Hvor mange knapper skal der anvendes?

(Arbejder med 2003)
Avatar billede aitnemed Novice
02. december 2009 - 16:58 #4
Hmm... Pt. er det 55, men det tal kan variere i fremtiden. Årsagen er, at det regneark jeg laver, er et spørgeskema, og hvert spørgsmål har sin egen række. I en af kolonnerne skal mine commandButtons være og de skal give adgang til en formular, hvori man skal indtaste nogle data, som bliver gemt ned i et andet regneark i projektmappen.

Det sted hvor dataene gemmes ned, er afhængigt af, hvilket spørgsmål/hvilken række den aktiverede commandButton befinder sig i. Dette er grunden til, at jeg har brug for at kende den celle, som min commandButton befinder sig i.
Avatar billede supertekst Ekspert
02. december 2009 - 17:11 #5
Hvis du er interesseret - så er du velkommen til at sende en model i 2003-format.

Har lige arbejdet med et kundesystem med en problematik, der kunne ligne.

mailadr. under profil.
Avatar billede aitnemed Novice
02. december 2009 - 19:58 #6
Jeg er ikke sikker på, hvad du mener med model, men kan da oplyse, at hver celle i områderne E3:E19, E21:E36, E38:E47 og E50:E61 skal indeholde en sådan commandButton. Det vil være den samme kode, der skal afvikles hver gang - dog med førnævnte forskel (at nummeret på rækken sendes med som variabel) og af hensyn til fleksibilitet ønsker jeg ikke at hardcode noget.

Det kunne jo tænkes, at spørgeskemaet i fremtiden bliver udvidet med et spørgsmål, og så skal det ikke kræve, at man går ind og roder i en masse kode - kun at man bare kopierer en eksisterende commandButton og så spiller det.

Kan desværre ikke tilbyde, at sende dig selve spørgeskemaet, da det indeholder firmarelaterede oplysninger, men sig endelig til, hvis jeg kan gøre noget for at tydeliggøre problemstillingen.
Avatar billede supertekst Ekspert
02. december 2009 - 20:29 #7
Netop derfor en model, som indeholder de knapper som du anvender.
Avatar billede supertekst Ekspert
04. december 2009 - 11:44 #8
Har en model, der ganske vist anvender CheckBokse i stedet for knapper.

Hvis du sender en mail - så returnerer jeg denne.
Avatar billede aitnemed Novice
04. december 2009 - 12:31 #9
Har selv lige løst det.

Sub WhichButton()
    Dim selectedCommentCell As Range
    Dim row As Integer
    Dim column As Integer
 
    row = ActiveSheet.Shapes(Application.Caller).TopLeftCell.row
    column = ActiveSheet.Shapes(Application.Caller).TopLeftCell.column
    Set selectedCommentCell = ActiveSheet.Cells(row, column)
    MsgBox (selectedCommentCell)

End Sub

Denne ene makro er tilknyttet samtlige buttons og viser den celle, som knappen er indsat i.
Avatar billede supertekst Ekspert
04. december 2009 - 12:41 #10
Ok & tak for info
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