Avatar billede thums Praktikant
15. oktober 2003 - 15:05 Der er 14 kommentarer og
1 løsning

VBA Excel - Start Macro vha. 'Enter'

Jeg skal bruge en mulighed for at starte en macro via et ganske almindeligt tryk på 'enter' tasten. For at sige det kort og godt. Når jeg trykker på enter i en given kolonne skal en macro starte op.

jeg har macro'en som skal startes og resten lavet det sidste jeg mangler er blot 'triggeren'
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:13 #1
sæt denne kode et sted, der bliver kaldt:

application.OnKey "{RETURN}", dinmakro
application.OnKey "{ENTER}", dinmakro
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:16 #2
Men måske skal du også sørge for at enters normal funktion bliver udført, så skal du nok have noget i stil med dette i din makro:

application.OnKey "{RETURN}", "" ' afbryd makrokald
SendKeys "{RETURN}"  ' udfør enter
application.OnKey "{RETURN}", dinmakro ' indsæt makrokald

Dette har jeg slet ikke testet, så jeg ved ikke om det virker som det skal
Avatar billede thums Praktikant
15. oktober 2003 - 15:21 #3
dvs. at du vil have at makroen altid skal køre i baggrunden for at fange det key tryk?

Er der ikke en mulighed for at binde en makro til en kolonne eller til en bestemt celle sådan at den kun udføres når at man trykker enter lige nøjagtigt der?
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:27 #4
Nej, makroen skal kun køre ved Enter.
application.OnKey "{RETURN}", dinmakro
application.OnKey "{ENTER}", dinmakro

skal f.eks. kaldes i Workbook_Open() (i modulet ThisWorkbook)
dinmakro  skal starte med Module1. hvis det ligger i modul1, f.eks
private sub Workbook_Open()
application.OnKey "{ENTER}", "Module1.CalculateSomeStuff"
application.OnKey "{RETURN}", "Module1.CalculateSomeStuff"
end sub

Både enter og return er med for at fange både alm return og enter på num. tastatur
Avatar billede thums Praktikant
15. oktober 2003 - 15:28 #5
en alternativ løsning kunne være at den blev eksekveret når at focus forlod cellen. på denne måde ville man ikke være tvunget til at tage højde for at enter/return funktionen skulle udføres manuelt
Avatar billede thums Praktikant
15. oktober 2003 - 15:30 #6
men Workbook_Open kører da kun en gang når du åbner dit regne ark... da ikke under hele forløbet??
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:36 #7
Onkey bestemmer hvilken tast der hører til en makro - og det gælder indtil man skriver
application.OnKey "{ENTER}","",
så går enter tilbage til sin normale funktion.
desværre virker mit svar nummer 2 ikke (den med Sendkeys), jeg skal lige se hvad man kan gøre
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:39 #8
Hvis Enter forsat skal rykke cursoren ned i næste celle, skal du have denne:
ActiveCell.Offset(1).Activate
i din makro
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:40 #9
og så får du ikke mere for ti point ...
Avatar billede thums Praktikant
15. oktober 2003 - 15:46 #10
tror du har misforstået mit spørgsmål lidt.. ellers snakker vi bare forbi hinanden.....

jeg har brug for at en macro udføres når at en celle i kolonnen har fået tildelt en værdi. Det vil være for grimt at lave en makro der eksekveres hver gang jeg trykker på enter, for ikke at sige for ressource krævende i forhold til hvad det kunne være... men takker alligevl for din hjælp
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:51 #11
Ok vi snakker forbi hinanden, men du kan  i stedet gøre følgende:
i ThisWorkbook vælger du Workbook og SheetChange i comboboksene ovenover
du får så proceduren
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub
denne kaldes hver gang en celle er ændret
Sh er arket
Target er cellen der er blevet ændret (og addressen er target.address)
Avatar billede stefanfuglsang Juniormester
15. oktober 2003 - 15:53 #12
(og min kommentar var for sjov - det er ikke så vigtigt med points)
Avatar billede thums Praktikant
15. oktober 2003 - 16:42 #13
Takker Stefan.... det virker... og sorry med vente tiden... du kan få lidt flere point for den hvis du har lyst ;o)
Avatar billede stefanfuglsang Juniormester
16. oktober 2003 - 10:26 #14
Selv tak.
Avatar billede Butterfly Ekspert
20. september 2021 - 18:16 #15
Håber at få svar selvom det er en gammel sag.
Hvordan får jeg det til at virke kun på 1 fane? Jeg har forsøgt med at sætte Privat Sub ind på fanen, men det hjælper desværre ikke.
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