Avatar billede senee Nybegynder
17. april 2005 - 09:59 Der er 11 kommentarer og
1 løsning

GOTO til at starte subrutine

Hej E
Jeg ved at det er uprofessionelt at anvende goto, men alligevel!

Jeg vil gerne have at hvis der står 2 eller 3 i celle A1 så skal det starte en subrutine. Jeg har forsøgt med:

IF range(A1) = "2"
IF range (A1)= "3"
then goto
Private Sub UserForm_Activate()
end if

Det ser jo ikke særlig elegant ud, så jeg håber i har et bedre forslag, og helst et der virker :-)
Avatar billede busschou Praktikant
17. april 2005 - 10:03 #1
kan man ikke gøre sådan
IF range (A1)= "3" then
  UserForm_Activate()
end if
Avatar billede senee Nybegynder
17. april 2005 - 10:12 #2
Nej, den går ikke!
Avatar billede busschou Praktikant
17. april 2005 - 10:15 #3
hmm kan ikke huske om man måske skal brug
Call UserForm_Activate()
Avatar billede sjap Praktikant
17. april 2005 - 10:19 #4
Højreklik på fanebladet, og vælg "Vis programkode" og indsæt følgende

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Address = "$A$1" Then
    If Range(A1) = 2 Or Range(A1) = 3 Then
       
    End If
End If

End Sub
Avatar billede senee Nybegynder
17. april 2005 - 10:21 #5
Den vil heller ikke, hmm..... mystisk. Koden bliver bare ignoreret!!
Avatar billede senee Nybegynder
17. april 2005 - 10:22 #6
sjap. Så får jeg en runtime error
Avatar billede sjap Praktikant
17. april 2005 - 10:23 #7
Ja der var lige en lille bøf:

ret til:

    If Range("A1") = 2 Or Range("A1") = 3 Then
Avatar billede senee Nybegynder
17. april 2005 - 10:26 #8
Det bliver stadigvæk bare ignoreret
Avatar billede senee Nybegynder
17. april 2005 - 10:29 #9
den kode du gav mig opdatere jo heller ikke rutinen
"Private Sub UserForm_Activate()"
Avatar billede sjap Praktikant
17. april 2005 - 10:29 #10
Ja, jeg lavede sådan set blot det som du kalder GOTO delen. Du må selv sætte noget det program ind som du skal bruge. Din pointtildeling antyder jo at det er en nem opgave, så jeg troede, at du måske selv kunne klare resten ;0)

Hvis ikke har jeg måske et bud her:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Address = "$A$1" Then
    If Range("A1") = 2 Or Range("A1") = 3 Then
        DialogSheets("Userform1").Show
    End If
End If

End Sub

Den vil køre Userformen "Userform1" hvis A1 får værdien 2 eller 3.
Avatar billede senee Nybegynder
17. april 2005 - 10:30 #11
oki, hvis du sender et svar sjap, så er den hjemme ;-)
Avatar billede sjap Praktikant
17. april 2005 - 10:31 #12
:0)
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