Avatar billede dc Nybegynder
14. maj 2003 - 23:08 Der er 15 kommentarer og
1 løsning

VBA Editor: F1 som hjælp.

Kan man lave noget med at når brugeren trykker F1 på en vilkårlig form så kommer der noget hjælp op (et hjælpe dokument eller en hjælpe dialog/form)?
Avatar billede Slettet bruger
15. maj 2003 - 09:19 #1
Et forslag kunne være, at du linkede til en HTML hjælpeside, det kan gøres sådan her:

---------------------------------
Public Sub Hjaelp()
    Dim ok As Double
    ok = Shell("C:\Program Files\Internet Explorer\IEXPLORE.EXE C:\HTML\HelpFile.html", vbNormalFocus)
End Sub
---------------------------------
Avatar billede Slettet bruger
15. maj 2003 - 09:19 #2
Koden skal så være på en kanp på din form...
Avatar billede Slettet bruger
15. maj 2003 - 09:20 #3
...eller en knap (der er frit valg)  :-)
Avatar billede martin_moth Mester
15. maj 2003 - 13:19 #4
Du kan fange keypress-eventen på dine forme, og så vise html-koden hvis der blev trykket F1 - er det ikke vejen frem?
Avatar billede dc Nybegynder
16. maj 2003 - 01:18 #5
keypress-eventen? Hvordan gør man det?
Avatar billede martin_moth Mester
16. maj 2003 - 11:52 #6
Der er en keypress-event for (vistnok) alle kontroller, også userforms. I den kan du tjekke om der blev trykket på F1, og blev der det, viser du brugeren hjælpefilen...

Der er måske bedre måder at fange et tastetryk på, mener at have læst om det andetstede på E
Avatar billede martin_moth Mester
16. maj 2003 - 12:03 #7
Sorry - keypress fanger ikke funktionstasterne, har jeg lige læst mig frem til. Men keydown gør, så du kan bruge følgende kode:

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 112 Then ' 112= F1
    MsgBox "Du trykkede F1"
    'Blaa blaa - vis din hjælpetekst
  End If
End Sub
Avatar billede dc Nybegynder
19. maj 2003 - 10:02 #8
Jeg har indsat proceduren i "form koden" men jeg synes ikke det virker. Proceduren kaldes automatisk ved et keydown eller hvad?
Avatar billede martin_moth Mester
19. maj 2003 - 10:21 #9
Hvad er det du kalder "form-koden"?

Du skal bare smide koden i din form. Som navnet siger (UserForm_KeyDown), så afvikles den når der er et keydown på din userform
Avatar billede dc Nybegynder
19. maj 2003 - 15:19 #10
Det er den kode der kommer når jeg højre klikker på en form og vælger "view code".
Hvis jeg har en form som hedder ABCForm skal proceduren så hedde ABCForm_KeyDown. Er det det du mener?
Avatar billede dc Nybegynder
19. maj 2003 - 15:28 #11
Har fundet en løsning... Brugte det på TextBox1 og så virker det når den er i focus. Tak.
Avatar billede martin_moth Mester
19. maj 2003 - 15:53 #12
Yep - men så virker det KUN når textboxen er i fokun. Hvis det skal være når formen er i fokus, skal du gøre som du selv skriver 15:19:58
Avatar billede fagpoler Novice
19. maj 2003 - 19:28 #13
Det her kan du bruge til finde hjælp med F1 og skifte tilbage til Arken du kommer fra.*******************************
Sub Auto_Open()
    Application.OnKey "{F1}", "Hjælp"
    Application.OnKey "{Escape}", "Esc"
   
End Sub


Sub Hjælp()
    If ActiveSheet.Name = "Firma" Then 'Navnet på arken du vil have hjælp i
    Sheets("Hjælp").Select ' Den Ark du vil bruge til hjælp
    [iv1].Value = "Firma" ' arken som heder Firma skal du skrive Firma i celle iv1
    GoTo Slut
    End If
   
    If ActiveSheet.Name = "Kunder" Then
    Sheets("Hjælp").Select
    [iv1].Value = "Kunder"
    GoTo Slut
    End If
   
    If ActiveSheet.Name = "Maaned" Then
    Sheets("Hjælp").Select
    [iv1].Value = "Maaned"
    GoTo Slut
    End If
     
Slut:
End Sub


Sub Esc() 'Bruges til at skifte hvor du kom fra
     
    If ActiveSheet.Name = "Hjælp" Then
    If [iv1] = "Firma" Then
    Sheets("Firma").Select
    GoTo Slut
    End If
    If [iv1] = "Kunder" Then
    Sheets("Kunder").Select
    GoTo Slut
    End If
    If [iv1] = "Maaned" Then
    Sheets("Maaned").Select
    GoTo Slut
    End If
    End If
Slut:
End Sub
Avatar billede fagpoler Novice
19. maj 2003 - 19:39 #14
Det her kan du bruge til finde hjælp med F1 og skifte tilbage til Arken du kommer fra. Undskuld en lille rettelse*****************************************

Sub Auto_Open()
    Application.OnKey "{F1}", "Hjælp"
    Application.OnKey "{Escape}", "Esc"
   
End Sub


Sub Hjælp()
    If ActiveSheet.Name = "Firma" Then 'Navnet på arken du vil have hjælp i
    Sheets("Hjælp").Select ' Den Ark du vil bruge til hjælp
    [iv1].Value = "Firma" ' HER SKRIVES FIRMA I CELLE IV1 I ARKEN HJÆLP
    GoTo Slut
    End If
   
    If ActiveSheet.Name = "Kunder" Then
    Sheets("Hjælp").Select
    [iv1].Value = "Kunder"
    GoTo Slut
    End If
   
    If ActiveSheet.Name = "Maaned" Then
    Sheets("Hjælp").Select
    [iv1].Value = "Maaned"
    GoTo Slut
    End If
     
Slut:
End Sub


Sub Esc() 'Bruges til at skifte hvor du kom fra
     
    If ActiveSheet.Name = "Hjælp" Then
    If [iv1] = "Firma" Then
    Sheets("Firma").Select
    GoTo Slut
    End If
    If [iv1] = "Kunder" Then
    Sheets("Kunder").Select
    GoTo Slut
    End If
    If [iv1] = "Maaned" Then
    Sheets("Maaned").Select
    GoTo Slut
    End If
    End If
Slut:
End Sub
Avatar billede martin_moth Mester
19. maj 2003 - 20:58 #15
faqpolers svar er meget bedre end mit - jeg kendte ikke til Application.OnKey
Så brug hans svar. Jeg afgiver gerne mine points, hvis I måtte ønske dette...
Avatar billede fagpoler Novice
19. maj 2003 - 21:27 #16
Nej det er ok, jeg har selv fået meget hjælp på eksperten
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