userform?

Status
Niet open voor verdere reacties.

karell

Gebruiker
Lid geworden
19 jun 2007
Berichten
138
Hallo ,

Randomize
nummer = Int((50 - 0 + 1) * Rnd + 0)
UserForm.Add(nummer).Show Deze regel die werkt niet en het is dat welk ik wil vragen,hoe moet ik dat doen
zodat het wel werkt ,zonder dat Select Case nummer?
'Select Case nummer
'Case Is = 1: UserForm1.Show
'Case Is = 2: UserForm2.Show
'Case Is = 3: UserForm3.Show
' enz....
'End Select
 
Een userform met een eigen naam en nummer toevoegen aan je VBA project doe je als volgt:

Code:
    Dim nr As Integer
    Dim formpje As Object
    nr = 2
    Set formpje = Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_MSForm)
    
    With formpje
         .Properties("Height") = 246
         .Properties("Width") = 616
         .Name = "Formulier" & nr
         .Properties("Caption") = "Test formulier"
    End With

Hiervoor moet je bij Referenties wel "Microsoft Visual Basic for Applications Extensibility" aangevinkt hebben.


Of bedoel je het openen van een bestaand formulier?
Lees dan dit eens:
http://www.cpearson.com/Excel/showanyform.htm
 
Laatst bewerkt:
edmoor > Hiervoor moet je bij Referenties wel "Microsoft Visual Basic for Applications Extensibility" aangevinkt hebben.

Was er gerust in dat het werkte als ik dit aanvinkte gelijk je zegt,in menu Extra van de VBE editor onder Extra->Verwijzingen.
Maar daar kreeg ik een ander prob,namelijk dat verwijzingen daar in het lichtgrijs staat,gelijk je in bijvoegsel ziet.

Dat zal natuurlijk het probleen zijn dat het daardoor niet gaat.
Hoe is zoiets op te lossen?
 

Bijlagen

  • Knipsel.userformJPG.JPG
    Knipsel.userformJPG.JPG
    42,7 KB · Weergaven: 94
Dat komt omdat je in Debug mode zit. Als er geen macro actief is zal je er wel bij kunnen.
 
Ik kan me geen situatie voorstellen waarin je dit zou (moeten) willen.

Kun je vertellen wat je hiermee beoogt ?
 
Maar het was aangevinkt gelijk je ziet in bijlage,maar het gaat niet.
Kijk nog eens goed naar jouw plaatje, en dan naar mijn plaatje. En zoek de verschillen...
 

Bijlagen

  • VBA extensiblity.png
    VBA extensiblity.png
    21,6 KB · Weergaven: 73
Bekijk bijlage hondforum.xlsmBekijk bijlage hondforum.xlsm
Ik kan me geen situatie voorstellen waarin je dit zou (moeten) willen.

Kun je vertellen wat je hiermee beoogt ?

Ja en ik versta uw vraag voor 100%,want het is inderdaad iets apart welk ik vraag.
Dus hier komt de reden waarom ik dat vraag,ik ben een grootvader met een autistisch kleinkind,welke niet liever doet dan pakjes(cadeau's) uitpakken met pluche hondjes in.
Snap zelf niet dat ik niet vroeger op dit kwam want nu sta ik nogmaar aan het begin van dit welk ik in excel probeer te maken voor hem,
namelijk een scherm waar pakjes opstaan als ie er op klikt dat er een willekeurig(random) hondje op scherm komt.

Welk ik bedoel zie je in serieus uitgedunt met userforms van hondjes progje en daar zoek ik tochwel een paar honderd verschillende van in te brengen,want hij ziet graag zoveel mogelijk verschillende.
Zal er dat progje eens bij aanhangen,zodat ge ook ziet welk ik net bedoel.
 
Laatst bewerkt:
Knipselfout.JPGKnipseluserf.JPG
Dat komt omdat je in Debug mode zit. Als er geen macro actief is zal je er wel bij kunnen.

Dat is juist,kan het veranderen dan.
Maar ik doe nog iets verkeerd dan,want krijg dan een foutmelding.
Welk kan dat zijn?
 
Laat je code eens zien.
 
Laat je code eens zien.

Het is die van U die ik zoekt te gebruiken eh....
Zal dat weleens hier neerzetten welk ik had,maar dat is niet welk ik nu voor ogen had en die is ook heel simpel,want daar ga je niet veel in zien denk.
Option Explicit
Sub hond1()

Dim UF As Object
Dim nummer As Long

Randomize
nummer = Int((30 - 0 + 1) * Rnd + 0)

Select Case nummer

Case Is = 1: UserForm1.Show
Case Is = 2: UserForm2.Show
Case Is = 3: UserForm3.Show
Case Is = 4: UserForm4.Show
Case Is = 5: UserForm5.Show
Case Is = 6: UserForm6.Show
Case Is = 7: UserForm7.Show
Case Is = 8: UserForm8.Show
Case Is = 9: UserForm9.Show
Case Is = 10: UserForm10.Show
Case Is = 11: UserForm11.Show
Case Is = 12: UserForm12.Show
Case Is = 13: UserForm13.Show
Case Is = 14: UserForm14.Show
Case Is = 15: UserForm15.Show
Case Is = 16: UserForm16.Show
Case Is = 17: UserForm17.Show
Case Is = 18: UserForm18.Show
Case Is = 19: UserForm19.Show
Case Is = 20: UserForm20.Show
Case Is = 21: UserForm21.Show
Case Is = 22: UserForm22.Show
Case Is = 23: UserForm23.Show
Case Is = 24: UserForm24.Show
Case Is = 25: UserForm25.Show
Case Is = 26: UserForm26.Show
'Case Is = 27: UserForm27.Show
'Case Is = 28: UserForm28.Show
Case Is = 29: UserForm29.Show
Case Is = 30: UserForm30.Show

End Select

End Sub
 
Dat zal niet de code zijn die de getoonde foutmelding veroorzaakt.
 
Dat zal niet de code zijn die de getoonde foutmelding veroorzaakt.
Nee dat is waar,maar uw code moest ik toch in een module (sub userform()) zetten eh...?daarin kreeg ik die foutmelding dan.
 
Het lijkt me beter als je je document eens plaatst. Daar zitten 30 userforms in? Dan heb je die verwijzing waar ik het eerder over had niet nodig. Ik wil wel even naar dat document kijken.
 
Het lijkt me beter als je je document eens plaatst. Daar zitten 30 userforms in? Dan heb je die verwijzing waar ik het eerder over had niet nodig. Ik wil wel even naar dat document kijken.

Alles wat ik daarover heb eh...dat is hetzelfde als hier 7 msg naar boven staat als hondforum.xlsmhondforum.xlsm,maar daar dedd ik er ook een berg userforms uit,omdat ik het hier anders niet kon zetten.
Maar in het hetgeen ik hier heb staan er nogwel die dertig in en was van plan van er wel een paar honderd in te zetten,daar heb ik ook UW code ingezet die daar die foutmelding geeft.
Kan je een code maken,waar het aantal userforms onbeperkt is?
 
Het blijkt zodanig simpel te zijn dat er niet eerder aan gedacht is. Wijzig je originele routine in alleen dit:

Code:
Sub hond1
    Randomize
    VBA.UserForms.Add("UserForm" & Int((10 - 0 + 1) * Rnd + 0)).Show
End Sub

De 10 wijzig je straks uiteraard in 50 zodra je alle 50 formulieren hebt.
Maak er tevens een formulier bij met de naam Userform0 omdat het random nummer ook 0 kan opleveren.

In je allereerste bericht was je dus eigenlijk al heel goed op weg ;)
 
Laatst bewerkt:
Karel: de Quote knop is geen antwoord knop. Het is, zoals de naam al zegt, een knop om te citeren. Dus wil je hem niet meer gebruiken om je berichten nodeloos in lengte te verdubbelen? Je bent al lekker bezig om het record berichten in één vraag scherper te zetten, maar door a) alles te quooten en b) je code niet op te maken met de CODE knop (die mag je dan wél weer gebruiken) zorg je versneld voor een stevig aantal muisarmen...
 
Randomize
VBA.UserForms.Add("UserForm" & Int((10 - 0 + 1) * Rnd + 0)).Show
[/CODE]

Heel hard bedankt eh...want dat doet net wat ik bedoelde kort en goed,want ik kan er zoveel userforms mee aanmaken als ik wil. :thumb:
En sorry eh....dat ik niet meer durf Quoten,hoe dat komt..........vraag je maar eens aan Octafish.;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan