Avatar billede systek Nybegynder
29. august 2004 - 16:16 Der er 12 kommentarer og
1 løsning

Oprette event ved indtastning.

Hvordan kan man på en enkel måde lave en event i Excel's VBA der aktiveres hvergang en celle ændres ( i en bestemt workbook ) via tastaturet ? ( á la SheetSelectionChange eventen )

Jeg har brug for en event der trigges uanset hvilket sheet der indtastes i...  Dette er sandsynligvis ganske enkelt... jeg ved bare ikke hvordan... man må kunne fange "keystrokes" eller ???
Avatar billede sjap Praktikant
29. august 2004 - 16:29 #1
Du kan f.eks. bruge nedenstående

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    MsgBox "Området " & Target.Address & " er ændret!"
End Sub

Denne kode er dog ikke generel, men skal lægges i modulet for hver enkelt worksheet (faneblad).
Avatar billede kabbak Professor
29. august 2004 - 16:35 #2
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "Hej"
End Sub

I modulet this workbook
Avatar billede kabbak Professor
29. august 2004 - 16:39 #3
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("A5")) Is Nothing Then
' tjekker alle ark celle A5
MsgBox "Hej du ændrede i celle A5"
End If
End Sub
Avatar billede systek Nybegynder
30. august 2004 - 08:26 #4
Kabbak & Sjap

Jeg anvender allerede Workbook_sheetchange, men så vidt jeg har fundet ud af aktiveres denne også hvis data i ark ændres, f.eks via en dde forbindelse til et andet program....

jeg ønsker at event trigges når brugeren har lavet en indtastning ( i en ikke skrivebeskyttet celle... ) via keyboard.. kan det lade sig gøre ?
Avatar billede sjap Praktikant
30. august 2004 - 17:47 #5
Hvis du nu bruger kabbak's forslag (16:39:31) vil programmet undersøge, om der er ændret i det område du angiver - alt andet er den ligeglad med. Eventet trigges, men det er vel ligegyldigt, når det ikke medfører nogen handling.
Avatar billede systek Nybegynder
30. august 2004 - 19:42 #6
OK det kan jeg godt se nu... har lige afprøvet det... mange tak... ( Jeg er helt grøn med VBA og Excel så der er en del at lære )

Hvordan får kabbak nu sine points ?
Avatar billede kabbak Professor
30. august 2004 - 20:01 #7
jeg skal svare. ;-))
Avatar billede systek Nybegynder
30. august 2004 - 20:22 #8
OK her er dine points, mange tak for hjælpen

lille "tillægsspørgsmål" bare af ren nysgerrighed, hvordan får man eventen til at angive hvilken celle der er indtastet i, og hvilket ark ?
Avatar billede kabbak Professor
30. august 2004 - 21:35 #9
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("A5")) Is Nothing Then
' tjekker alle ark celle A5
' Sh.Name = navnet på arket
' Target.Address  = adressen på cellen
MsgBox "Hej du ændrede i " & Sh.Name & " celle(" & Target.Address & ")"
End If
End Sub
Avatar billede systek Nybegynder
30. august 2004 - 21:41 #10
Alletiders... jeg er sikker på jeg får brug for noget i den stil senere...
Endnu engang tak... Jeg vil til at køre hjem, gider ikke mere idag...
Avatar billede kabbak Professor
30. august 2004 - 21:47 #11
husk at lukke spørgsmålet.
Avatar billede systek Nybegynder
31. august 2004 - 08:04 #12
Hvordan gør jeg det ?
Avatar billede kabbak Professor
31. august 2004 - 08:11 #13
Maker mit navn i bokswn til venstre og tryk accapter
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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