Userform automatisch sluiten?

Status
Niet open voor verdere reacties.

karell

Gebruiker
Lid geworden
19 jun 2007
Berichten
138
Mijn vraag is bestaat zoiets dat het volgende kan doen: userform.show(en sluit af over 5 seconden)
Hoe moet je dat ingeven,als het al bestaat?
 
Form verdwijnt over 5 seconden.
Code:
Private Sub UserForm_Activate()
'DoEvents
  Application.Wait DateAdd("s", 5, Now)
Me.Hide
End Sub
 
Laatst bewerkt:
Heb dit geprobeerd,maar het ga niet Harry.


Het start in een functie waar 6 nummers in staan,bij 2 speelt ie een zinneke van k3 ons Zina haarre favoriet :d terzelfder tijd komt er die
userform16 en die zou moeten weggaan uit zichzelf (als het gaat)na 5 sec.

If random_number = "2" Then Soundfile = "c:\aZinaExel\goedzozina2" 'k3
If random_number = "2" Then Run "ballon"
End Function

Sub ballon()
Range("l5").Select
UserForm16.Show

Groeten Karel
 
Laatst bewerkt:
Hoi,
Jaren terug heb ik ooit zoiets gemaakt voor een bingo spelletje
Volgende code werkt

Code:
Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Sub UserForm_Activate()
    Dim WAVFile As String
    Const SND_ASYNC = &H1
    Const SND_FILENAME = &H20000
    WAVFile = ThisWorkbook.Path & "\[COLOR="#FF0000"]winner.wav[/COLOR]" [COLOR="#008000"]'hier uw muziekje[/COLOR]
    Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
    Application.Wait DateAdd("s", 35, Now)
    Me.Hide
End Sub
Groet
 
Hallo,

Ferm van uw dat ge er dat inzet,maar die soundfile dat doet ie wel en terzelfder tijd dan gaat ie naar sub ballon()
waar userform16.show instaat die laat ie ook zien terwijl pc dat muziekje speelt en dat muziekje duurd zo een 5 seconden en dan is dat uit,maar dan staat die userform16 nog op scherm en dat is het probleem,natuurlijk als je dan op het kruiske klikt sluit die wel,maar ik zou graag hebben dat die ENE userform16 ALLEEN na 5 seconden ook dan sluit.
Er zou in Sub ballon(), iets moeten komen staan dat userform16 op scherm zet en die dan na 5 sec. automatsch sluit,weet niet of het kan .

If random_number = "2" Then Run "ballon"
End Function

Sub ballon()
Range("l5").Select
UserForm16.Show

Groeten Karell
 
Je laat veel te weinig van je code zien. Er is niet uit op te maken waar dit is geplaatst en met welke gebeurtenis e.e.a. wordt gestart. Je kan beter je document of een relevant voorbeeld ervan plaatsen.
 
Hoi Karel,
Ik begrijp uw probleem niet?
Hierbij een vbtje
Hier in mijn vbtje wordt de macro ballon gestart via een knop, maar hoe de macro ballon wordt gestart in uw bestand maakt verder niets uit.
Ga in mijn vbtje naar de userform programma code en verander het muziekje dan kan je het testen (muziekje en vbtje in zelfde map zetten)
Het aantal seconden aanpassen aan de lengte van uw muziekje
Kom je er niet uit post dan een vb bestandje
Groet
 

Bijlagen

Hallo

Ge hebt gelijk Ed en had dat ook al gedacht,maar het is een stukje uit iets dat veel te groot is,want dit welk ik hieronder heb staan werkt niet(speelt dat muziekje niet af en in het geheel program doet ie dat wel ) maar geeft toch een gedacht hoop ik.
Gelijk ge weet niks gestructureerd eh...allemaal practisch bij mekander gezocht tot het werkt,tussen haakjes het meeste komt van hier.

Public Declare Function sndPlaySound32 _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Function GoedGedaan() As String
Dim Soundfile As String

Randomize
random_number = Int(6 * Rnd) + 1

If random_number = "2" Then Soundfile = "c:\aZinaExel\goedzozina2" 'k3
If random_number = "1" Then Soundfile = "c:\aZinaExel\goedzozina" 'Brit

If random_number = "3" Then Soundfile = "c:\aZinaExel\germaine" 'germaine
If random_number = "4" Then Soundfile = "c:\aZinaExel\a (2)"
If random_number = "5" Then Soundfile = "c:\aZinaExel\a (3)"
If random_number = "6" Then Soundfile = "c:\aZinaExel\karel" 'karel

'If random_number = "6" Then Soundfile = "c:\aZinaExel\a (4)" 'dit laten staan
'If random_number = "7" Then Soundfile = "c:\aZinaExel\a (5)"
'If random_number = "8" Then Soundfile = "c:\aZinaExel\a (6)"
'If random_number = "9" Then Soundfile = "c:\aZinaExel\a (7)"

GoedGedaan = "Heel goed gedaan"
sndPlaySound32 Soundfile, &H1
ActiveCell.Offset(0, -1).Select

If random_number = "2" Then Run "ballon"

End Function
Sub ballon()
Range("l5").Select
UserForm1.Show
'Application.Wait (Now + TimeValue("0:00:05"))

' SendKeys({ENTER})
End Sub

Groeten Karel
 
Zet de gegeven code uit #2 in de activate van het form, en niet in de aanroepcode naar het form.
 
Hallo


Code:
Public Declare Function sndPlaySound32 _
    Lib "winmm.dll" _
    Alias "sndPlaySoundA" ( _
        ByVal lpszSoundName As String, _
        ByVal uFlags As Long) As Long
----------------------------------------------------------------------- ----------------------------
'=ALS(EN(W13=Z13;W13>0,51);GoedGedaan();" ") 
' dan komt ie naar hier als het 2 is speelt ie een liedje (vraag me niet hoe dat
'kan.....want dat weet ik niet,het is een kwestie geweest van vanalles gezocht te hebben totdat het werkte en dat die
'useform16 uit zijn eigen sluit kan ik niet gevonden krijgen .
'Heb nu ook al vanalles geprobeerd met hetgeen jullie hier zetten,
'Heb nochthans het boek STEP BY STEP EXCEL 2007 VBA in de kringloop gevonden en gelezen,maar ik krijg het niet voor mekaar.:-(:-)

Function GoedGedaan() As String
    Dim Soundfile As String
    Randomize
'Random whole number between 1 and 50 :
 random_number = Int(6 * Rnd) + 1
  If random_number = "2" Then Soundfile = "c:\aZinaExel\goedzozina2"  'k3
   If random_number = "1" Then Soundfile = "c:\aZinaExel\goedzozina"   'Brit
   If random_number = "3" Then Soundfile = "c:\aZinaExel\germaine"     'germaine
   If random_number = "4" Then Soundfile = "c:\aZinaExel\a (2)"
   If random_number = "5" Then Soundfile = "c:\aZinaExel\a (3)"
   If random_number = "6" Then Soundfile = "c:\aZinaExel\karel"        'karel
   
   'If random_number = "6" Then Soundfile = "c:\aZinaExel\a (4)" 'dit laten staan
   'If random_number = "7" Then Soundfile = "c:\aZinaExel\a (5)"
   'If random_number = "8" Then Soundfile = "c:\aZinaExel\a (6)"
   'If random_number = "9" Then Soundfile = "c:\aZinaExel\a (7)"
     GoedGedaan = "Heel goed gedaan"
    sndPlaySound32 Soundfile, &H1
    ActiveCell.Offset(0, -1).Select
    
    If random_number = "2" Then Run "ballon"
End Function
 Sub ballon()
  Range("l5").Select
  UserForm16.Show
' Weet niet of dat kan ,maar HIER zou iets moeten komen dat die userform16 na 5 seconden van het scherm verdwijnd.
 End Sub

Lees a.u.b in de code de (')
 
Laatst bewerkt:
Hallo,

Lees #9 nog eens rustig.
Zoveel informatie staat daar niet, maar het dringt nog niet tot je door.
 
HSV < Lees #9 nog eens rustig.

Harry welk bedoelde daar mee ?
 
In #9 staat precies wat je moet doen om het goed te laten werken (Zoals ook al in #2, maar dat terzijde) maar ik denk dat je nog niet echt op de hoogte bent van objecten en hun gebeurtenissen (Events). In dit geval gaat het om het Activate event van de betreffende userform.
 
Laatst bewerkt:
Post 9, 15-3-2016 10:25 uur.

Links staat datum en tijd... rechts staat #9.

Ik zal nog een poging doen.

Je hebt dus een formulier die je aanroept met:
Userform16.show

In de module van userform16 staan rechtsboven aan het werkblad de events.
Het begint bij 'Activate', en eindigt met 'Zoom'.

Kies voor 'Activate' of 'Initialize'.

De gegeven code.....
Code:
Application.Wait DateAdd("s", 5, Now)
Me.Hide
...zet je in de 'initialize' of 'activate' event.

Edit: @edmoor was me al voor met hetzelfde.
 
Userform16 sluit niet na 5 sec. en zo was toch de bedoeling eh....,of welk deed ik verkeerd?KnipselUserform.JPG
 
KnipselUserform.JPG
Userform16 sluit niet na 5 sec. en zo was toch de bedoeling eh....,of welk deed ik verkeerd?
 
En werkt het?
 
Waar gaan we om wedden?
De weddenschap staat als het is gelukt.

Plaats anders je eigen bestand, iemand zal het voor je inbouwen.
 

Bijlagen

Laatst bewerkt:
Waar gaan we om wedden?
De weddenschap staat als het is gelukt.

Plaats anders je eigen bestand, iemand zal het voor je inbouwen.

Als het over excel vba gaat ,wed ik voor nikske tegen uw :-)
Daar moest ik nog niet voor zien,om te weten dat het ging.
Maar ik ga dat eens op mijn gemakske bekijken,want dat MOET ik toch vinden volgens mij.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan