15. oktober 2003 - 15:05Der 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'
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?
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
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
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
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
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)
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.
Synes godt om
Ny brugerNybegynder
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.