Hallo,
Ik heb een macro in ThisWorkbook staan die moet checken/bewerkstelligen dat een bestand (een factuur) volgens vaste naamsopbouw wordt opgeslagen. Bestandsnaam = vast pad + debiteurennummer + factuurnummer. Hiertoe heb ik onderstaande macro
Private Sub Workbook_BeforeSave(ByVal saveasUI As Boolean, cancel As Boolean)
Dim Naam$
Naam = ActiveWorkbook.Name
Dim welniet As Integer
welniet = MsgBox("Wilt u dit bestand op de standaardwijze opslaan ('debnr_faktnr.xls')?", vbYesNo)
If welniet = vbNo Then
MsgBox ("Het bestand is niet opgeslagen.")
End
Else
Dim strpath As String
Dim strdebnr As String
Dim strfaktnr As String
strpath = Sheets("Vaste instellingen").Range("C3")
strdebnr = Sheets("faktuur").Range("B7")
strfaktnr = Sheets("faktuur").Range("e7")
'***als er niets ingevuld is bij debnr wordt gevraagd om directorynaam
If Len(strdebnr) = 0 Then
strdebnr = InputBox("Onder welke naam moet deze faktuur worden opgeslagen?", "Opslaan")
Else
End If
'***als niets wordt ingevuld wordt er niets opgeslagen
If Len(strdebnr) > 0 Then
If Len(Dir(strpath & "nul")) > 0 Then
ActiveWorkbook.SaveAs Filename:= ' strpath & strdebnr & "_" & strfaktnr, FileFormat:=xlNormal
'End If
Else
MsgBox "U hebt geen geldige faktuurnaam opgegeven of:" + Chr(13) + "de standaardmap bestaat niet"
MsgBox "Er is niets opgeslagen.", vbExclamation, "Vul het juiste gegevens in en probeer opnieuw"
End If
End If
End If
End Sub
Het probleem is nu dat, nadat ik het bestand op de standaardwijze middels de macro heb opgeslagen, het bestand nogmaals opgeslagen zal worden (niet meer middels de macro maar gewoon door de save opdracht die ik gegeven heb). De proceduren blijft dan steken op het Opslaan als venster omdat de bestandnaam inmiddels al bestaat. Dat is nou net niet de bedoeling. Wie weet hoe ik dit laatste venster kan voorkomen?
Als toelichting gewenst cq noodzakelijk is dan hoor ik het graag.
Peter
Ik heb een macro in ThisWorkbook staan die moet checken/bewerkstelligen dat een bestand (een factuur) volgens vaste naamsopbouw wordt opgeslagen. Bestandsnaam = vast pad + debiteurennummer + factuurnummer. Hiertoe heb ik onderstaande macro
Private Sub Workbook_BeforeSave(ByVal saveasUI As Boolean, cancel As Boolean)
Dim Naam$
Naam = ActiveWorkbook.Name
Dim welniet As Integer
welniet = MsgBox("Wilt u dit bestand op de standaardwijze opslaan ('debnr_faktnr.xls')?", vbYesNo)
If welniet = vbNo Then
MsgBox ("Het bestand is niet opgeslagen.")
End
Else
Dim strpath As String
Dim strdebnr As String
Dim strfaktnr As String
strpath = Sheets("Vaste instellingen").Range("C3")
strdebnr = Sheets("faktuur").Range("B7")
strfaktnr = Sheets("faktuur").Range("e7")
'***als er niets ingevuld is bij debnr wordt gevraagd om directorynaam
If Len(strdebnr) = 0 Then
strdebnr = InputBox("Onder welke naam moet deze faktuur worden opgeslagen?", "Opslaan")
Else
End If
'***als niets wordt ingevuld wordt er niets opgeslagen
If Len(strdebnr) > 0 Then
If Len(Dir(strpath & "nul")) > 0 Then
ActiveWorkbook.SaveAs Filename:= ' strpath & strdebnr & "_" & strfaktnr, FileFormat:=xlNormal
'End If
Else
MsgBox "U hebt geen geldige faktuurnaam opgegeven of:" + Chr(13) + "de standaardmap bestaat niet"
MsgBox "Er is niets opgeslagen.", vbExclamation, "Vul het juiste gegevens in en probeer opnieuw"
End If
End If
End If
End Sub
Het probleem is nu dat, nadat ik het bestand op de standaardwijze middels de macro heb opgeslagen, het bestand nogmaals opgeslagen zal worden (niet meer middels de macro maar gewoon door de save opdracht die ik gegeven heb). De proceduren blijft dan steken op het Opslaan als venster omdat de bestandnaam inmiddels al bestaat. Dat is nou net niet de bedoeling. Wie weet hoe ik dit laatste venster kan voorkomen?
Als toelichting gewenst cq noodzakelijk is dan hoor ik het graag.
Peter