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

Bij opslaan de melding backup map bestaat niet

Status
Niet open voor verdere reacties.

popipipo

Meubilair
Lid geworden
21 nov 2006
Berichten
8.368
Ik heb een bestandje wat automatisch een backup maakt in een backupmap.
Bestaat die map niet dan komt er een foutmelding.
Zou deze fout melding kunnen vervangen worden door een melding
"Er is geen backup gemaakt omdat er geen backup map bestaat."

Code:
Sub opslaan()
    Dim mydate
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
   
        mydate = Format(Date, "yyyy-mm-dd")
            ActiveWorkbook.Save
            ActiveWorkbook.SaveAs Filename:=Range("A1").Value & "forum test - kopie " & mydate & ".xlsm"
            
??????????????????????????????????            
            
MsgBox ("Er is geen backup gemaakt omdat er geen backup map bestaat.")
    Application.ScreenUpdating = True
    ActiveWorkbook.Close
End Sub


In Cel A1 staat de formule:
Code:
=LEFT(CELL("filename");FIND("[";CELL("filename"))-1)&"backup\"
 

Bijlagen

  • forum test.xlsm
    15,2 KB · Weergaven: 41
Was iets van...
If len(dir(padnaam)) = 0 then msgbox "pad bestaat niet"
 
Zoiets dus:
Code:
Sub opslaan()
    If Dir(Range("A1"), vbDirectory) <> "" Then
        With ActiveWorkbook
            .Save
            .SaveAs Filename:=Range("A1").Value & "forum test - kopie " & Format(Date, "yyyy-mm-dd") & ".xlsm"
            .Close
        End With
    End If

    MsgBox ("Er is geen backup gemaakt omdat de map " & Range("A1").Value & " niet  bestaat."), vbCritical
End Sub
 
Laatst bewerkt:
Code:
Sub opslaan()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    [COLOR="#FF0000"]ActiveWorkbook.Save
[/COLOR]
    If Dir(Range("A1"), vbDirectory) <> "" Then
        With ActiveWorkbook
            .SaveAs Filename:=Range("A1").Value & "forum test - kopie " & Format(Date, "yyyy-mm-dd") & ".xlsm"
            .Close
        End With
    Else
        MsgBox ("Er is geen backup gemaakt omdat de map " & Range("A1").Value & " niet  bestaat."), vbCritical
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    ActiveWorkbook.Close
End Sub

Met een kleine aanpassing werkt het naar tevredenheid.
 
Het zetten van ScreenUpdating kan je weg laten, dat is niet nodig.
Die DisplayAlerts hoef je alleen op False te zetten als je geen melding wilt hebben dat het document met die naam al bestaat in de backup map.
 
Ik had de DisplayAlerts op off gezet om geen melding te krijgen dat is nu inderdaad overbodig.
 
Waarom maak je die veiligheidsopslagdirectory niet meteen aan met VBA ?
 
Het staat op een usb stick en als je hem willekeurig ergens anders in plaats dan krijg je overal vervuiling.
Dan hoor ik je al weer denken je kunt er dan weer een vraag in zetten wel of niet aan maken, maar dat vind ik dan weer overdreven/overbodig.
 
Ter leering ende vermaeck :D

Je kan ook zoiets doen:
Code:
Sub opslaan()
    ActiveWorkbook.Save
    If Dir(Range("A1"), vbDirectory) = "" Then
        If MsgBox("De map " & Range("A1").Value & " bestaat niet. Wil je deze maken?", vbOKCancel) = vbOK Then
            MkDir Range("A1").Value
        Else
            MsgBox ("Er is geen backup gemaakt omdat de map " & Range("A1").Value & " niet  bestaat."), vbCritical
            Exit Sub
        End If
        
        With ActiveWorkbook
            .SaveAs Filename:=Range("A1").Value & "forum test - kopie " & Format(Date, "yyyy-mm-dd") & ".xlsm"
            .Close
        End With
    End If
End Sub
 
Vandaar die eerste regel in #9 :D
 
Hoezo willekeurig ?

Code:
Sub M_snb()
  if dir(left(thisworkbook.path,3) & "backup",16)="" then mkdir left(thisworkbook.path,3) & "backup"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan