Avatar billede zjat Nybegynder
30. november 2010 - 09:33 Der er 11 kommentarer og
2 løsninger

Åben userform alt efter værdi i celle

Hej Alle

Jeg har en celle hvor der enten står:

- Userform1
- Userform2

Alt efter hvad der står i cellen skal userform1 eller userform2 åbnes.

Microsoft giver denne vejledning:

Sub ShowUserForm3()

      'Cell A1 of Sheet1 contains the name of the UserForm
      X = ActiveWorkbook.Sheets("Sheet1").Cells("A3").Value

      VBA.UserForms.Add(X).Show
  End Sub

Men det får jeg slet ikke til at virke - er der mon nogen som kan hjælpe?

Jeg kører Excel 2007.
Avatar billede supertekst Ekspert
30. november 2010 - 10:36 #1
Prøv at rette linjen til følgende: Cells --> Range

      x = ActiveWorkbook.Sheets(Sheet1").Range("A3").Value
Avatar billede store-morten Ekspert
30. november 2010 - 12:30 #2
Prøv også at rette til følgende: ("Sheet1") --> ("Ark1")

      x = ActiveWorkbook.Sheets("Ark1").Range("A3").Value
Avatar billede zjat Nybegynder
30. november 2010 - 15:40 #3
Doh...selvfølgelig skulle der stå range!

Morten: Jeg kører skam engelsk version :)

Den skriver at X melder fejl "variabel not defined" men hvad skal jeg mon definere den som?
Avatar billede zjat Nybegynder
30. november 2010 - 15:45 #4
Jeg har prøvet at definere X som:

Dim X as Object

melder så subscript out of range :(

på linien

x = ActiveWorkbook.Sheets(Sheet1").Range("A3").Value
Avatar billede zjat Nybegynder
30. november 2010 - 15:56 #5
og laver jeg en ændring så der er mit sheets navn jeg benytter så skriver den:

"object variable or with block variable not set"

Har prøvet og se om der er noget galt med min activesheet henvisning, men den duer uden problemer, hvis jeg bare sætter den lig en celle i stedet for X.
Avatar billede zjat Nybegynder
30. november 2010 - 16:04 #6
Løsningen er at skrive følgende:

VBA.UserForms.Add(ActiveWorkbook.Sheets("Sheet1").Range("A3").Value).Show

Dog vil jeg gerne stadig finde grunden til det ikke virkede på den anden måde.

Kunne se at værdien gav "Userform1" hvor den måske skal have værdien uden gåseøjne???
Avatar billede store-morten Ekspert
30. november 2010 - 16:04 #7
Sub ShowUserForm3()
      'Cell A3 of Sheet1 contains the name of the UserForm
      X = ActiveWorkbook.Sheets(1).Range("A3").Value
      VBA.UserForms.Add(X).Show
End Sub

Virker fint hos mig ;-)
Avatar billede zjat Nybegynder
30. november 2010 - 16:14 #8
hmmm...måske er det gåseøjnene i sheets der skal fjernes...vil jeg prøve senere :)

Du er sikker på du ikke på nogen måde har defineret X?
Avatar billede store-morten Ekspert
30. november 2010 - 16:18 #9
Virker som skrevet står.
Sub ShowUserForm3()
      'Cell A3 of Sheet1 contains the name of the UserForm
      X = ActiveWorkbook.Sheets(1).Range("A3").Value
      VBA.UserForms.Add(X).Show
End Sub


Prøv:
VBA.UserForms.Add(ActiveWorkbook.Sheets(1).Range("A3").Value).Show
Så kan man døbe faneblade om uden den fejler.
Avatar billede supertekst Ekspert
30. november 2010 - 23:31 #10
Vedr. #3

Dim x as Variant
Avatar billede zjat Nybegynder
28. december 2010 - 21:35 #11
Hej Supertekst og store-morten.

Synes begge jeres svar var gode og vil gerne give jer begge point.

Så smid et svar så får i point :)
Avatar billede supertekst Ekspert
28. december 2010 - 23:19 #12
Hej zjat

Ok & tak - et svar..
Avatar billede store-morten Ekspert
29. december 2010 - 14:16 #13
Ok, tak
et 'Svar' og godt nytår.
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