Inputbox foutmelding bij keuze "annuleren"

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
931
Beste Helpmij'ers,

Ik heb een vba-code die een foutmelding geeft wanneer ik bij regel: Range("N" & Target.Row) = CDate(InputBox("Betaaldatum dd-mm-jjjj", , Format(Range("a" & Target.Row), "dd-mm-yyyy"))) op annuleren klik. Volgens mij moet er nog een if en else bij, maar zou niet weten hoe.

Code:
'CREDITEUREN (de betaling is verricht)
    'If Range("G" & Target.Row) <> "Op rekening" And Range("i" & Target.Row) <> "" And Range("J" & Target.Row) <> "" And Range("N" & Target.Row) = "" Then
    If Range("G" & Target.Row) <> "Op rekening" And Range("i" & Target.Row) <> "" And Range("N" & Target.Row) = "" Then
        correctie = MsgBox("Het betaalde bedrag is " & "€ " & Range("i" & Target.Row) & ".  Is dit bedrag correct?", vbYesNo, "BETALINGSMUTATIE")
        If correctie = vbYes Then
           Range("M" & Target.Row) = Range("I" & Target.Row).Value
        Else: Range("m" & Target.Row).Value = InputBox("Hoeveel heeft u betaald?", "BETALINGSMUTATIE  (Let op! zet een punt i.p.v. een komma)")
        End If
        Range("N" & Target.Row) = CDate(InputBox("Betaaldatum dd-mm-jjjj", , Format(Range("a" & Target.Row), "dd-mm-yyyy")))
        Application.Goto .Offset(, 5) 'kolom c
    End If

Alvast heel erg bedankt.

MvG.
Robert Smidt
 
Voorbeeldje:
Code:
    Datum = InputBox("Betaaldatum dd-mm-jjjj")
    If Trim(Datum) <> "" Then
        If IsDate(Datum) Then
            MsgBox "Datum is geldig"
        Else
            MsgBox "Geen geldige datum"
        End If
    Else
        MsgBox "Niets ingegeven"
    End If
 
Laatst bewerkt:
Is dit niet overzichtelijker ?

Code:
Sub M_snb()
   Select Case MsgBox("Het betaalde bedrag is " & "€ " & Range("i" & Target.Row) & ".  Is dit bedrag correct?", vbYesNo, "BETALINGSMUTATIE")
   Case vbYes
        Range("M" & Target.Row) = Range("I" & Target.Row).Value
   Case vbNo
        Range("m" & Target.Row).Value = InputBox("Hoeveel heeft u betaald?", "BETALINGSMUTATIE  (Let op! zet een punt i.p.v. een komma)")
    End Select
End Sub
 
Heren bedankt voor jullie reactie.

De code van SNB is prima vervanger voor het eerste gedeelte, echter mijn probleem zit in het tweede gedeelte nl.

Code:
Range("N" & Target.Row) = CDate(InputBox("Betaaldatum dd-mm-jjjj", , Format(Range("a" & Target.Row), "dd-mm-yyyy")))

De oplossing van Edmoor lijkt in de goede richting aangezien deze betrekking heeft op het probleem, alleen vermeld de code hetgeen in de inputbox staat niet in kolom N. De oplossing moet gevonden worden in bovenstaande code dat wanneer ik op annuleren druk deze geen foutmelding geeft. Het systeem weet immers ook niet wat hij moet doen bij annuleren.
 
Dan heb je mijn voorbeeld niet goed begrepen want die doet precies wat je vraagt. Je moet dat uiteraard wel aan je eigen situatie aanpassen. Zoiets dus:

Code:
    Datum = InputBox("Betaaldatum dd-mm-jjjj")
    If Trim(Datum) <> "" Then
        If IsDate(Datum) Then Range("N" & Target.Row) = CDate(Datum)
    End If
 
De code werkt hoor, alleen moet de datum hier handmatig geplaatst worden. Ik beschik over te weinig kennis dat deze de datum vanuit kolom A automatisch in de inputbox zet.
 
Ik beschik toch over voldoende kennis. Op gegeven moment viel het kwartje.

Code:
datum = InputBox("Betaaldatum dd-mm-jjjj", , Format(Range("a" & Target.Row), "dd-mm-yyyy"))
If Trim(datum) <> "" Then
    If IsDate(datum) Then Range("N" & Target.Row) = CDate(datum)
End If

Heel erg bedankt. Het werkt nu perfect.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan