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

Userform met combobox1

Status
Niet open voor verdere reacties.

johngub

Gebruiker
Lid geworden
1 jun 2006
Berichten
52
Hallo,
Ik heb een Userform met een aantal invulvelden.
Als ik dan op de knop Toevoegen druk wordt alles opgeslagen op het tabblad DATA.
Met uitzondering van de gegevens die ik uit de Combobox1 selecteer; daarvan slaat hij altijd de eerste keuze op ook als ik keuze 2 of 3 heb gemaakt.
De Combobbox1 haalt de gegevens uit het Tabblad DATA2.
 

Bijlagen

  • userform 2 test.xlsm
    38 KB · Weergaven: 42
Laatst bewerkt door een moderator:
Denk dat het zo beter gaat :
 

Bijlagen

  • userform 2 test (1).xlsm
    30,8 KB · Weergaven: 55
Inderdaad dit werkt prima nu, bedankt.

Had ik nog een vraagje:
Als ik de knop toevoegen druk dan wist hij alle gegevens uit het Userform behalve uit de Combobox1.

Ook dit kan ik niet vinden.
 
Laatst bewerkt door een moderator:
Ok hierbij aangepast :

Code:
Private Sub CMDtoevoegen_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")

'vindt laatst gebruikte cel, ga naar volgende rij
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row

'plaatst de gegevens in de database
ws.Cells(iRow, 1).Value = Me.TxtAankomstdatum.Value
ws.Cells(iRow, 2).Value = Me.Txttijdstip.Value
ws.Cells(iRow, 3).Value = Me.TxtNaam.Value
ws.Cells(iRow, 4).Value = Me.TxtLengte.Value
ws.Cells(iRow, 5).Value = Me.TxtBreedte.Value
ws.Cells(iRow, 6).Value = Me.TxtVertrekDatum.Value
ws.Cells(iRow, 7).Value = Me.ComboBox1.[COLOR="#FF0000"]Value[/COLOR]


'verwijder gegevens
Me.TxtLengte.Value = ""
Me.TxtAankomstdatum.Value = ""
Me.Txttijdstip.Value = ""
Me.TxtNaam.Value = ""
Me.TxtBreedte.Value = ""
Me.TxtVertrekDatum.Value = ""
[COLOR="#FF0000"]Me.ComboBox1.Value = ""[/COLOR]
End Sub
 

Bijlagen

  • userform 2 test (2).xlsm
    30,9 KB · Weergaven: 40
Laatst bewerkt:
Ietsie pietsie anders.;)
 

Bijlagen

  • helpmij test.xlsm
    28,9 KB · Weergaven: 58
nog iets anders ook de volgorde van boxen gerangschikt.
 

Bijlagen

  • userform 2 test.xlsm
    27,8 KB · Weergaven: 53
Beste vorige schrijvers....

Al jullie data wordt verkeerd weggeschreven.

Waarom wordt er geen gebruik gemaakt van ..cdate... en waarom ga je zoeken met Find naar de laatste regel+1 ??
Code:
    Sheets("Data").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 8) = Array(CDate(TxtAankomstdatum), [COLOR="#0000FF"]Txttijdstip.Value,[/COLOR] TxtNaam.Value, TxtLengte.Value, TxtBreedte.Value, _
        CDate(TxtVertrekDatum), ComboBox1.Value, ComboBox2.Value)
 
Laatst bewerkt:
Er stond per abuis twee keer achter elkaar.
Code:
CDate(TxtAankomstdatum)

Ik heb het aangepast in mijn vorig schrijven.

Maar bij jullie komt de data er verkeerd in.

01-11-2019 wordt bij jullie 11-01-2019.
En daar gebruik je Cdate voor. ;)
 
Als jullie toch bezig zijn :D ik zou ook graag bij vertrek datum een popupje krijgen zodat ik een datum kan kiezen.
Ik ben er zelf al mee bezig geweest maar wil nog niet echt lukken (te weinig) kennis nog.
Zo iets als hieronder.

calendar.png
 
Dan kan het zó:
 

Bijlagen

  • __userform_t.xlsb
    24,7 KB · Weergaven: 45
Dit is niet wat ik bedoel ik wil alleen bij vertrek een datum kunnen kiezen en dan zo net als op het plaatje (zie bericht ervoor)

En ik kan ook geen wijs meer uit de VBA code bij het laatste bestand.
Maar dat zal aan mij liggen denk ik
 
Laatst bewerkt door een moderator:
Hallo,

Misschien wordt de vba zo wat duidelijker:

Code:
Option Explicit
Dim Ctrl As Control
Private Sub CMDtoevoegen_Click()
With Sheets("Data")
        'Blad1.Cells(Rows.Count, 1).End(xlUp)Zoekt de eerste lege rij van boven in blad 1, Offset(1) vertelt Excel om in de eerste kolom te beginnen
        'Resize(, 8) vertelt Excel hoeveel kolommen er zijn en Array schrijft vervolgens de gegevens uit het Userform weg, waarbij de toevoeging CDate
        'er voor zorgt dat de datum niet in de Amerikaanse notatie (mm/dd/yyyy) komt te staan, maar in de Europese (dd/mm/yyyy)
        Blad1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 8) = Array(CDate(TxtAankomstdatum.Value), Txttijdstip.Value, TxtNaam.Value _
        , TxtLengte.Value, TxtBreedte.Value, CDate(TxtVertrekDatum.Value), ComboBox1.Value, ComboBox2.Value)
    End With
    MsgBox "De nieuwe boeking is opgeslagen", vbInformation, "Klaar"
        'Maakt alle invulvelden in het Userform leeg
        For Each Ctrl In Controls
        If TypeOf Ctrl Is MSForms.OptionButton Then Ctrl.Value = False
        If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = ""
    Next Ctrl
End Sub

Voor het invoegen van een pop-up kalender moet je in de werkset van je Userform (via rechtermuisklik) een extra besturingselement toevoegen (Month View of Microsoft Date en Time Picker Control), ten minste als je die hebt. Ik namelijk niet, dus ik kan het niet laten zien
 
Laatst bewerkt:
Ik ga me er in verdiepen en kijken of ik het zelf voor elkaar krijg.
Bedankt voor alle uitleg.
 
De uitleg over onderstaande coderegel is natuurlijk niet juist.
Code:
'Blad1.Cells(Rows.Count, 1).End(xlUp)Zoekt de eerste lege rij van boven in blad 1, Offset(1) vertelt Excel om in de eerste kolom te beginnen

Code:
'Blad1.Cells(Rows.Count, 1).End(xlUp) Geef de laatst ingevulde cel in kolom A vanaf onderen naar boven in blad 1, Offset(1) betekent 1 cel naar onderen.

Onderstaande code is allemaal overbodig bij 'Unload Me'.
Code:
MsgBox "De nieuwe boeking is opgeslagen", vbInformation, "Klaar"
        'Maakt alle invulvelden in het Userform leeg
        For Each Ctrl In Controls
        If TypeOf Ctrl Is MSForms.OptionButton Then Ctrl.Value = False
        If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = ""
    Next Ctrl

De schrijvers vöör @snb maken alles eerst leeg en dan doen ze Hide (allemaal overbodig dus).

Bestudeer liever de code van @snb.
 
Met een kalender om de vertrek datum te selecteren :
 

Bijlagen

  • userform 2 test (3).xlsm
    121,8 KB · Weergaven: 47
Loek010 dit is precies wat ik bedoel :thumb:
Bedankt..............
 
Laatst bewerkt door een moderator:
@johngub

Ik zie nu wat HSV probeert uit te leggen i.v.m. dat de Datum niet correct invult,
ook bij mijn vorige voorbeeld bestand ging het verkeerd zag ik nu.

@HSV je had gelijk 1-3-2019 werd 3-1-2019

Ik heb dat nu in onderstaand bestand gecorrigeerd :
 

Bijlagen

  • userform met Kalender (4).xlsm
    100,5 KB · Weergaven: 41
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan