Foutmelding tenzij A2 is ingevuld

Status
Niet open voor verdere reacties.

WhiteSky

Gebruiker
Lid geworden
15 feb 2018
Berichten
55
Hoi,

Ik ben nog maar net bezig met VBA (via een online cursus), ik mag binnenkort een cursus gaan volgen via mijn werk, maar ben ondertussen al bezig met een projectje.
Ik heb een userform gemaakt en het is de bedoeling dat hij alles van deze userform in het tabblad "Gegevens" zet op de eerstvolgende lege regel.
In lijn 1 zet ik alle titels, dus vanaf lijn 2 zouden de gegevens moeten opgeslagen worden. Dit verloopt enkel goed als er in A2 reeds iets geschreven staat. Anders geeft hij een foutmelding. Wat kan ik hier tegen doen? (buiten gewoon in A2 iets schrijven?)

Ook zou ik voor het tekstkader waar de datum in komt willen schrijven dat er bij openen automatisch de datum van vandaag in komt te staan. en dat de datums de vorm dd/mm/yy(yy) hebben. Als ik hier dit zo invul en de dd is 1-12 geeft die dit als maand aan.

Hieronder het bestand (Hou er rekening mee dat ik echt een leek ben in VBA hé)
Bekijk bijlage Shiftoverdracht.xlsm


Alvast bedankt!
 
voor het probleem A2:
Code:
row_number = Range("A" & Rows.Count).End(xlUp).Row + 1

voor de datum:

Code:
Private Sub UserForm_Initialize()
tb_datum = Date
End Sub

wat je bedoelt met formaat dd/mm/yy(yy) snap ik niet.
 
@SjonR

Het A2 probleem is nog niet opgelost :(. Hij geeft hiermee de foutmelding 6: Overloop.

Als ik dus zoals vandaag de datum 03/11/18 ingeef en ik duw op opslaan gaat hij het in kolom A als 11/3/18 ingeven (dus hij maakt er 11 maart van ipv 3 november) tenzij ik 13(of hoger) november of whatever invul, dan doet hij het wel juist. Dus kan ik ergens invullen dat hij de datum in de vorm dd/mm/yyyy (dag dag/ maand maand / jaar jaar jaar jaar)

Bedankt
 
Die foutmelding staat volgens mij los van de door mij aangedragen code. Bij mij werkt het namelijk prima.

voor de datum kan je dit ook proberen:

Code:
Cells(row_number, 1) = CDate(tb_datum.Value)
 

Bijlagen

Laatst bewerkt:
Oké, in jouw bestand doet hij het wel. In het mijne niet (voor het A2 probleem :s)

Wat doet die Cdate juist? (zodat ik ook begrijp wat er staat...)

Bedankt
 
Je code kan ook ongelooflijk veel simpeler en vooral korter. Ik heb drie van je selectievakjes verkort. De rest kun je dan denk ik zelf wel uitzoeken.
Code:
    For i = 2 To 9
        If Me("cb_wsl" & i) = True Then
            Cells(row_number, ((i - 1) * 4) - 1) = "WSL " & i
            Cells(row_number, (i - 1) * 4) = IIf(Me("cb_wsl" & i) = True, "OK", "NOK")
        Else
            Cells(row_number, ((i - 1) * 4) - 1) = ""
        End If
    Next i
    
    For i = 2 To 9
        If Me("opm_wsl" & i) <> "" Then
            Cells(row_number, ((i - 1) * 4) + 1) = Me("opm_wsl" & i).Value
        End If
    Next i
    
    For i = 2 To 9
        If Me("cb_wsl" & i & "_sw") <> "" Then
            Cells(row_number, ((i - 1) * 4) + 2) = "WSL " & i
        End If
    Next i
 
Hey OctaFish

Dit gaat inderdaad voor alles van WSL lijnen, maar niet voor de andere (niet nummerieke lijnen)

Bedankt voor het voorstel..
 
Hoi,

ik heb in de excel een extra knop aangemaakt voor eventueel iets aan te passen (of toe te voegen), met een link naar een nieuwe (gekopieerde) Userform.
Maar bij de eerste om de (nieuwe) gegevens weg te schrijven. Moet ik opzoek gaan naar de eerste lege regel. Bij de nieuwe om gegevens aan te passen, moet hij het juiste regeltje vinden (afhankelijk van datum en gekozen shift).
Hoe kan ik dit best aanpakken?

Alvast bedankt,

Leek in VBA
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan