Avatar billede tarzan30 Nybegynder
12. marts 2010 - 14:46 Der er 12 kommentarer og
1 løsning

OnKey Enter

Jeg har foelgende opsaetning:

èt regneark med foelgende VBA kode i "this workbook":

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub

i samme regneark men i et modul har jeg:

Private Sub MinMakro()
diverse kode
End sub

Dette setup fungerer fint. Jeg kan arbejde i regnearket, og kun naar jeg trykker ENTER udfoeres "MinMakro".

Problemet er, at hvis jeg befinder mig i et andet regneark, og her ogsaa trykker ENTER vil jeg enten faa en fejl hvis det foerste regneark fortsat er aabent, eller excel forsoeger at aabne det foerste regneark, hvis dette ikke er aabent.

Hvordan sikrer jeg mig at OnKey funktionen kun fungerer i det tilsigtede regneark????
Avatar billede jokerper Nybegynder
12. marts 2010 - 14:55 #1
Enten skal du lægge denne kode i alle dine ark ellers skal du lave lidt om i din kode:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub
Avatar billede tarzan30 Nybegynder
12. marts 2010 - 15:02 #2
Hej Jokerper,

tak for hurtigt svar. Hvis jeg nu ikke vil laegge denne kode i alle mine ark, hvordan skal det saa se ud??
Avatar billede jokerper Nybegynder
12. marts 2010 - 15:17 #3
Det kunne være noget med:
ThisWorkbook.Sheets("Dit arknavn").Activate


Dim x as string

x = activesheets.name

ThisWorkbook.Sheets("x").Select

Eller noget i den stil.
Avatar billede jokerper Nybegynder
12. marts 2010 - 15:18 #4
I din "MinMakro"
Avatar billede tarzan30 Nybegynder
12. marts 2010 - 15:32 #5
det kan godt vaere noget ovre i retning af, at det kun skal fungere naar et bestemt sheet er aktivt men som udgangspunkt, er mit problem at ENTER i andre ark skaber problemer.

Jeg er desvaerre noedt til at have et "lige paa soemmet" svar, da jeg nu har rodet en del med det, og er ved at blive skoer... :-)
Avatar billede jokerper Nybegynder
12. marts 2010 - 15:38 #6
Det fik du også:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub

Men jeg åbnede bare muligheden, jeg ved jo ikke meget om din kode, hvorfor det driller.
Avatar billede tarzan30 Nybegynder
12. marts 2010 - 15:45 #7
oehh, det var jo den kode jeg selv havde beskrevet i det indledende spm. Problemet er beskrevet umiddelbart herefter...
Avatar billede tjp Mester
12. marts 2010 - 15:54 #8
Gør udførelsen af makroen betinget WorkBook navn:

Private Sub MinMakro()
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
  Application.OnKey "{ENTER}"
  Application.OnKey "{RETURN}"
  Exit Sub
End If
{diverse kode}
End Sub

Da dette afmelder OnKey for ENTER og RETURN, skal disse gendannes for ark ét. Det kan fx gøres ved at lægge OnKey i Workbook_Activate i stedet:

Private Sub Workbook_Activate()
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub
Avatar billede jokerper Nybegynder
12. marts 2010 - 16:02 #9
Så kunne du måske gøre i Thisworbook:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Run "MinMakro"

End Sub

Se om det er OKAY?
Avatar billede tarzan30 Nybegynder
12. marts 2010 - 16:17 #10
TJP:

Saadan Johan!... Pisse fedt!... Nu du er i gang med lidt lir... hvis jeg nu vil udskifte

If ActiveWorkbook.Name <> ThisWorkbook.Name Then

med et specifikt sheet hvor kun dette skal virke??
Avatar billede tjp Mester
12. marts 2010 - 16:39 #11
Måske kan det gøres mere elegant, men det her gør det vist:

Module1:

Private Sub MinMakro()
If ActiveWorkbook.Name <> ThisWorkbook.Name Or ActiveSheet.Name <> "Ark1" Then
  Application.OnKey "{ENTER}"
  Application.OnKey "{RETURN}"
  Exit Sub
End If

{diverse kode}

End Sub

----

ThisWorkbook:

Private Sub Workbook_Activate()
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "{ENTER}", "MinMakro"
Application.OnKey "{RETURN}", "MinMakro"
End Sub
Avatar billede tarzan30 Nybegynder
12. marts 2010 - 16:54 #12
Super, mange tak. Du har reddet min weekend. Var sgu ved at faa hovedpine!... :-)
Avatar billede tjp Mester
12. marts 2010 - 17:15 #13
U R Welcome.. :-)
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