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

MsgBox vbYesNo bij openen excelbestand

Status
Niet open voor verdere reacties.

Paradoxx

Gebruiker
Lid geworden
2 nov 2007
Berichten
135
Goedemorgen weer.

In een bestand die door mijn collega's wordt gebruikt voor het maken van een dagplanning, wil ik bij het openen van het bestand een keuze geven. Of men opent het bestand voor het maken van een nieuwe dagplanning, derhalve een inputbox voor het ingeven van een nieuwe datum, of men wil het bestand alleen inzien zonder wijzigingen te maken, derhalve hoeft er niets te gebeuren.

Ik heb het volgende, maar bij het openen krijg ik een foutmelding :confused:: Sub, function of property verwacht. Ik zie niet wat ik fout doe.. (het is nog vroeg... en nog geen koffie gehad)!!

In ThisWorkbook Open wordt de volgende sub aangeroepen:
Code:
Sub OpenenBestand()

Dim keuze As VbMsgBoxResult
Dim myDatum As String

keuze = MsgBox("Wil je een nieuwe dagplanning gaan maken?", vbYesNo + vbQuestion)
myDatum = InputBox("Geef de datum op voor de nieuwe dagplanning (dd-mm-jj)", "Datum opgeven", Today + 1)

If keuze = vbYes Then
    myDatum
Else:
    Exit Sub
 End If

Sheets("totaal").Range("A2").Value = myDatum

End Sub
 
Zo te zien verwijst de code in ThisWorkbook niet naar OpenenBestand.
Het kan zijn dat er een schrijffout in de benaming zit.
Je code kon overigens wat korter.
Verder is het niet zo logisch om een datum in te laten voeren en vervolgens te vragen om men een nieuwe dagplanning wil gaan maken. Stel dat men geen dagplanning wil maken dan moet men toch een datum opgeven.
Het lijkt mij logischer om te vragen of men een dagplanning wil maken en als men dat bevestigt, een datum op te laten geven.

Code:
Private Sub Workbook_Open()
Dim myDatum As Date
   
    If MsgBox("Wil je een nieuwe dagplanning gaan maken?", vbYesNo + vbQuestion) = vbYes Then
        myDatum = InputBox("Geef de datum op voor de nieuwe dagplanning (dd-mm-jj)", "Datum opgeven", Today + 1)
        Sheets("totaal").Range("A2").Value = myDatum
     End If

End Sub

Met vriendelijke groet,


Roncancio
 
Goedemorgen Roncancio,

Ik had in de private sub Workbook_Open() een verwijzing naar de sub OpenenBestand() opgenomen, zodat bij het openen van het bestand die sub zou worden gestart. Maar anyway, die van jou is idd veel kleiner (de code ;) dus) en werkt idd als een tierelier. Alleen geeft hij als voorbeeldwaarde 1 ipv de datum van morgen. Dat zoek ik zelf nog wel eventjes uit, maar wederom bedankt!

Groeten Cor.
 
Bedankt voor de input snb, maar ik had het inmiddels al opgelost.
Om het even compleet te maken, hieronder de code die ik dan gebruikt heb.

Code:
Private Sub Workbook_Open()
Dim myDatum As Date
Dim morgen As String

morgen = Sheets("totaal").Range("A2").Value + 1
   
    If MsgBox("Wil je een nieuwe dagplanning gaan maken?", vbYesNo + vbQuestion) = vbYes Then
        myDatum = InputBox("Geef de datum op voor de nieuwe dagplanning (dd-mm-jj)", "Datum opgeven", morgen)
        Sheets("totaal").Range("A2").Value = myDatum
     End If

End Sub

Misschien niet de mooiste oplossing, maar hij werkt.
 
Als je dan toch met VBA werkt waarom dan geen VBA gebruikt ?

Code:
Private Sub Workbook_Open()
    If MsgBox("Wil je een nieuwe dagplanning gaan maken?", vbYesNo + vbQuestion) = vbYes Then  Sheets("totaal").Range("A2").Value = InputBox("Geef de datum op voor de nieuwe dagplanning (dd-mm-jjjj)", "Datum opgeven", format(Date +1,"dd-mm-yyyy"))
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan