Inputscherm met verwijzing naar een celinhoud

Status
Niet open voor verdere reacties.

Robert Smidt

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

Ik ben op zoek naar een code voor een inputscherm waar de vraag gesteld wordt of het bedrag - dat in de actieve regel in kolom I staat - juist is, zo niet, dat deze handmatig in het inputscherm aangepast kan worden. Wellicht ten overvloede; wanneer het bedrag juist is, dan d.m.v. een "Ja" of enter het bedrag accepteren en plaatsen in kolom N.


Code:
Range("N" & Target.Row) = Format(InputBox("Is dit factuurbedrag correct (enter), zo niet, druk op Nee en pas het bedrag aan?")

Een antwoord zie ik met veel belangstelling tegemoet.

Alvast bedankt.

Met vriendelijke groet,
Robert Smidt
 
Indien het antwoord 'Nee' is moet het bedrag handmatig - in de inputbox - aangepast worden en in kolom M geplaatst worden. Per abuis had ik in mijn voorbeeld kolom N staan.
 
Helaas heeft een inputbox de buttons "OK" en "Annuleren".
 
Beste,

Komt deze code tegemoet aan jouw vraag?
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'correctie = MsgBox("De ingevoerde waarde is " & ActiveCell.Value & Chr(13) & "Wil je deze waarde wijzigen?", vbYesNo, "Correctie ingevoerde waarde")
correctie = MsgBox("De ingevoerde waarde is " & ActiveCell.Value & vbCrLf & "Wil je deze waarde wijzigen?", vbYesNo, "Correctie ingevoerde waarde")
If correctie = vbNo Then
Cells(ActiveCell.Row, ActiveCell.Column-1).Value = ActiveCell.Value
Cells(ActiveCell.Row, ActiveCell.Column).Value = ""
Else: ActiveCell.Value = InputBox("Geef nieuwe waarde in", "Correctie ingevoerde waarde")
End If
End Sub
 
Laatst bewerkt:
Heren,

De laatste oplossing - met een paar veranderingen - moet volgens mij goed komen.

Wanneer ik het bedrag wil wijzigen laat deze niet de waarde vanuit kolom I zien maar blijft leeg in het scherm. Het kan ook te maken hebben omdat ik de eerste regel niet kan overnemen, deze is nu:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
en omdat er meer codes in staan lijkt het mij niet verstandig om die aan te passen.

Wanneer ik de nieuwe waarde wijzig zet deze de waarde in kolom H, dat moet worden kolom M.

Volgens ben ik nu op de goede weg en met die aanpassing moet het goed komen :)
 
Opgelost

Na wat gestoei heb ik de oplossing voor mijn probleem:

Code:
    If Range("G" & Target.Row) <> "Op rekening" And Range("J" & 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 uw klant betaald?", "BETALINGSMUTATIE (Let op! zet een . i.p.v. een ,)")
                 End If
                 Range("N" & Target.Row) = Format(InputBox("Vermeld hier de betaaldatum!                                 VB: 1-5 = (1 mei dit jaar) "), "MM/DD/YYYY")
                 'Range("N" & Target.Row) = date 'Indien je de datum van vandaag wil vermelden!
                 Application.Goto .Offset(, 5) 'kolom c
              End If

Nu heb ik nog een klein verzoek; is het mogelijk dat je in de Msgbox ook de optie "annuleren" aan toe kan voegen en dat hij dan niets wijzigt en in de actieve regel in kolom G de waarde (Op rekening) zet?
 
Maak svp het forum niet onnodig vrouwonvriendelijk.
 
Code:
If Target.offset(,-2) <> "Op rekening" And Target.offset(,1)<> "" And target.offset(,5) = "" Then
  if MsgBox("Het betaalde bedrag is " & "€ " & target & "  Is dit bedrag correct?", vbYesNo, "BETALINGSMUTATIE")= vbYes Then
     target.offset(,4)=target.value
  Else
     target.offset(,4)= replace(InputBox("Hoeveel heeft uw klant betaald?", "BETALINGSMUTATIE"),",",".")
  End If

  target.offset(,5) = cdate(InputBox("Betaaldatum dd-mm-jjjj",,format(date,"dd-mm-yyyy")))
End If

Maar.... beter 1 userform dan 2 inputboxes.
 
Laatst bewerkt:
Beste,

Graag het voorbeeldbestand waarop de code werd toegepast. Zo kan ik zien wat het resultaat is van de code.
 
Beste mensen,

Ik hoop hiermee mijn fout herstelt te hebben :)

Het bestand is dusdanig groot en omvangrijk dat het hier niet op gezet kan worden.

De code die ik had werkt prima en SNB had nog een welkome toevoeging t.a.v. het datum in de msxbox. Echter is mijn vraag niet beantwoord. Ik heb het zo gemaakt dat het systeem bij een bepaalde waarde in kolom G in gang gezet wordt. Zolang de actieve cel in kolom G op "Op rekening" staat, moet het systeem niets doen, maar wanneer ik daar bijv. "Bank" van maak, moet de code geactiveerd worden. Nu is het denkbaar dat je abusievelijk de code in werking hebt gezet door "Op rekening" te wijzigen in "Bank" in dat geval wil ik dat kunnen annuleren en dat hij "Bank" weer herstelt in "Op rekening".

Volgens mij - mits technisch mogelijk - is dit een kleine aanpassing.

Wederom weer bedankt..
 
Een voorbeeldbestand kan (en moet) altijd gereduceerd worden tot het voor de vraag essentiële minimum.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan