• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Gebruik van kalender in 2 UserForms.

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste,

Graag zou ik een kalender in 2 UserForms willen gebruiken.

Bestaande werkende code voor 1 UserForm was:

Code:
Private Sub Cmd_Invullen_Click()
        UserForm3.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
        Unload Me
End Sub

Ik gebruik de volgende aangepaste code maar werkt niet.

Code:
Private Sub Cmd_Invullen_Click()
    [COLOR="red"]If FormIsLoaded("Userform3") Then[/COLOR]        
UserForm3.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
    [COLOR="red"]ElseIf FormIsLoaded("Userform6") Then[/COLOR]        
UserForm6.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
    End If
        Unload Me
End Sub

Volgens mij ligt het aan de regel in het rood, maar wat ?

Groetjes Danny. :thumb:
 
Ik denk dat je de functie FormIsLoaded niet hebt.
Geen nood, die kun je zelf maken.

Code:
Private Function FormIsLoaded(formName As String) As Boolean
  Dim loop As Form
 
  For Each loop In Forms
    If loop.Name = formName Then
      FormIsLoaded = True
      Exit Function
    End If
  Next
 
  FormIsLoaded = False
End Function

Succes :)
 
Beste edmoor, ;)

Ik denk dat je de functie FormIsLoaded niet hebt.
Geen nood, die kun je zelf maken.

Toch wel, deze:

Code:
Private Function FormIsLoaded(UFName As String) As Boolean
Dim UF As Integer
For UF = 0 To VBA.UserForms.Count - 1
FormIsLoaded = UserForms(UF).Name = UFName
If FormIsLoaded Then Exit Function
Next UF
End Function

Zowel de uwe als de mijne werken niet :confused:

Groetjes Danny. :thumb:
 
Zeg maar jij hoor :-)
Zit de functie wel in dezelfde module als de sub?
Anders moet je hem Public maken in plaats van Private.
 
Laatst bewerkt:
Schrijf je sub eens anders als het tegelijk in beide forms moet:
Code:
Private Sub Cmd_Invullen_Click()
    If FormIsLoaded("Userform3") Then        
        UserForm3.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
    End If

    If FormIsLoaded("Userform6") Then        
        UserForm6.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
    End If

    Unload Me
End Sub

Of als het om je huidige form gaat:

Code:
Select Case Me.Name
    Case "Userform3"
        UserForm3.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
    Case Userform6
        UserForm6.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
End Select
Unload Me

Maar dan heb je ook voldoende aan:
Code:
    Me.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
 
Laatst bewerkt:
Beste Edmoor ;)

Heb alles opnieuw herschreven en hij doet het nu met de volgende code:

Code:
Private Function FormIsLoaded(UFName As String) As Boolean
Dim UF As Integer
For UF = 0 To VBA.UserForms.Count - 1
FormIsLoaded = UserForms(UF).Name = UFName
If FormIsLoaded Then Exit Function
Next UF
End Function

Sub Cmd_Invullen_Click()

    If FormIsLoaded("UserForm3") Then
        UserForm3.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
        Unload Frm_Rooster
        
    ElseIf FormIsLoaded("UserForm6") Then
        UserForm6.TextBox1.Value = Format(Frm_Rooster.Cal_Rooster.Value, "dd/mm/yyyy")
        Unload Frm_Rooster
        
    End If
    
End Sub

Bedankt voor het meedenken en de steun :thumb:

Groetjes Danny. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan