• 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.

aanpassen frm

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Ik heb een bestand "Euromillions 2021" waarin ik alle trekkingen met gewonnen bedragen via een frm wekelijks inbreng.
Ik had op dat frm een Date Time Picker staan.
Helaas in office 365 is deze Date Time Picker niet meer beschikbaar.
Ik wil nu dit vervangen door ofwel een textbox waar ik de datum kan ingeven of een keuzelijst met datums om uit te kiezen.
Helaas krijg ik de code niet aangepast om dit te laten gebeuren.
Ik krijg steeds een foutmelding op de regel "For eatch ctl"
De uitgechakelde codes zijn zaken die ik geprobeerd heb
Graag een beetje hulp.
In bijlage het bestand zonder de gevoelige informaties.

Grtjs.
Armand
 

Bijlagen

  • Euromillions 2021.3.xlsb
    29,6 KB · Weergaven: 26
Bij mij werkt het gewoon. Of moet de Combobox ook leeggemaakt worden?
 
Hallo VenA
Ik heb juist nog eens getest en heb de code even uitgeschakeld
Code:
Private Sub cmbWegschrijven_Click()
Application.ScreenUpdating = False
Dim data(21), i As Integer, j As Integer
    'data(0) = Me("Calendar1").Value
    'data(0) = Me("Textbox1").Value
    data(0) = Me("cboDatums").Value
        For i = 1 To 20
        'For i = 1 To 21
            data(i) = Me("TextBox" & i).Value
        Next
        For j = 1 To 1
            Sheets(Choose(j, "Trekkingen")).Range("B112").End(xlUp).Offset(1).Resize(, 21) = data
        Next
        'For Each [COLOR="#FF0000"]ctl[/COLOR] In frmEuromillions.Controls
        '    If TypeName(ctl) = "TextBox" Then
        '        ctl.Value = ""
        '    End If
        'Next
Application.ScreenUpdating = True
End Sub
En dan lukt het bij mij ook. Als ik de code "For Each ctl" niet uitschakel krijg ik de foutmelding "Kan het object of de bibliotheek niet vinden" op "ctl"
En hoe pas ik de code aan als ik in plaats van een combobox te gebruiken, een textbox zou gebruiken voor de datum (in de combobox.list zouden eigenlijk 104 datums per jaar komen)
En zowel de combox en eventueel de extra textbox moeten dus leeg gemaakt worden
Grtjs.
Armand
 
Laatst bewerkt:
zo?
Code:
Dim ctl As Object
        For Each ctl In Me.Controls
            If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
                ctl.Value = ""
            End If
        Next
 
Hier werkt het ook gewoon zonder die For Each ctl uit te schakelen.
Heb je Option Explicit aan staan?
Verwijder die regel dan eens.
 
Laatst bewerkt:
Bij mij kreeg ik dezelfde melding.

Als ik in de VB-editor - extra-verwijzingen het vinkje weghaal bij ONTBREEKT:Microsoft Calendar Control 2007
krijg ik geen foutmelding meer.
Geen idee wat de oorzaak hiervan is.
 
Het wegschrijven en leeg maken van de controls lukt perfect.
Waarvoor alvast bedankt voor de oplossing.
Om toch niet met een lange comboxlist te moeten werken, heb ik geprobeert om met een textbox te werken.
Het wegschrijven hiervan lukt ook, maar eender welke datum ik dan inbreng in het form komt op de sheet telkens "zondag 1 januari 1900" te staan.
De cellen op de sheet zijn opgemaakt als datum.

Grtjs.
Armand
 
Dan staat er in die cel een 1.
 
Ik ben eens gaan kijken in de betreffende cel en als ik in de formulebalk kijk dan staat er 1/01/1900 terwijl ik in de txtbox op het frm 9/07/2021 heb ingevuld.
 
Probeer dan eens:
Range("A1") = CDate(TextBox1.Text)
 
En waar in deze code moet ik dat dan zetten
Code:
Private Sub cmbWegschrijven_Click()
Application.ScreenUpdating = False
Dim data(21), i As Integer, j As Integer
        data(0) = Me("Textbox1").Value
        For i = 1 To 20
             data(i) = Me("TextBox" & i).Value
        Next
        For j = 1 To 1
            Sheets(Choose(j, "Trekkingen")).Range("B112").End(xlUp).Offset(1).Resize(, 21) = data
        Next
Dim ctl As Object
        For Each ctl In frmEuromillions.Controls
            If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "Combobox" Then
                ctl.Value = ""
            End If
        Next
Application.ScreenUpdating = True
End Sub
 
Ik weet uiteraard niet welke cel waar wordt gevuld.
 
had juist gezien dat er in de code toch een foutje stond
Code:
Private Sub cmbWegschrijven_Click()
Application.ScreenUpdating = False
Dim data(21), i As Integer, j As Integer
        data(0) = Me("Textbox[COLOR="#FF0000"]21[/COLOR]").Value
        For i = 1 To 20
             data(i) = Me("TextBox" & i).Value
        Next
        For j = 1 To 1
            Sheets(Choose(j, "Trekkingen")).Range("B112").End(xlUp).Offset(1).Resize(, 21) = data
        Next
Dim ctl As Object
        For Each ctl In frmEuromillions.Controls
            If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "Combobox" Then
                ctl.Value = ""
            End If
        Next
Application.ScreenUpdating = True
End Sub
De datums komen te staan in kolom B, telkens op de laatste lege rij.
Nu wordt het wel weggeschreven, maar als test heb ik bijvoorbeeld 09/07/21 in de txt op het frm ingebracht en dat geeft op de sheet "09/07/21" in plaats van de ingestelde weergave "vrijdag 9 juni 2021"
 
Waarom gebruik je dan / tekens in plaats van - tekens?
 
Ik dacht dat dit hetzelfde was. Ik gebruik normaal altijd /
Even getest met - in plaats van / en nu wordt de toch al in de juist opmaak weergegeven op de sheet, maar 9-7-21 geeft op de sheet "dinsdag 7 september 2021"
 
Laatst bewerkt:
probeer dit eens.
Code:
Private Sub TextBox21_AfterUpdate()
TextBox21 = Format(TextBox21, "dd-mmm-yyyy")
End Sub
 
Super.
Nu werkt alles zoals het hoort.
Bedankt aan alle helpers.
Iedereen een prettige dag verder.

Grtjs.
Armand
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan