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

Macro opslaan bestand

Status
Niet open voor verdere reacties.

Rommyke

Gebruiker
Lid geworden
29 mrt 2007
Berichten
357
Hoi allemaal,

Ik heb een macro voor het opslaan van een bestand.
De macro werkt ... Als ik de macro bedien (Als deze als een keer is gesaved)krijg ik een popup(box) en kan kiezen tussen Ja - Neen - Cancel .

Als ik nu op Ja druk wordt de vorige file overschreven en is er geen probleem
Het probleem is echter als ik op Nee of Cancel druk dan krijg ik een foutmelding
Kan er iemand eens naar kijken ?

bedankt

Sub SvMe()


Dim newFile As String, fName As String
fName = Range("Y30").Value
newFile = "Shift" & fName & " " & Format$(Date, "dd-mm-yyyy")

ActiveWorkbook.SaveAs Filename:="" & newFile
 
Laatst bewerkt:
Waar is de code hiervan?

Hier is geen code van ,

deze popup krijg je als de file reeds bestaat en je saved de file

je krijgt een box met vermelding

A file named "test"already exist in this location, do you want to replace it ?

en hier heb je dan de keuze Ja , Nee , cancel

Als je hier dan Nee of cancel druk krijg je de foutmelding .

Sorry voor de verwarring
 
Hoi allemaal,

Ik heb een macro voor het opslaan van een bestand.
De macro werkt ... Als ik de macro bedien (Als deze als een keer is gesaved)krijg ik een popup(box) en kan kiezen tussen Ja - Neen - Cancel .

Als ik nu op Ja druk wordt de vorige file overschreven en is er geen probleem
Het probleem is echter als ik op Nee of Cancel druk dan krijg ik een foutmelding
Kan er iemand eens naar kijken ?

bedankt

Sub SvMe()


Dim newFile As String, fName As String
fName = Range("Y30").Value
newFile = "Shift" & fName & " " & Format$(Date, "dd-mm-yyyy")

ActiveWorkbook.SaveAs Filename:="" & newFile


Hoi,

Ik heb je code iets aangepast. Nu ben ik geen VBA kunstenaar maar ik heb een msgbox toegevoegd. Misschien werkt het

Code:
ub SvMe()
Dim iresponse As Integer
iresponse = MsgBox("Wil je dit document opslaan?", vbYesNo)
If iresponse = vbYes Then

Dim newFile As String, fName As String
fName = Range("Y30").Value
newFile = fName & " " & Format$(Date, "dd-mm-yyyy")
ActiveWorkbook.SaveAs Filename:="" & newFile
Else
MsgBox "Er is niets opgeslagen"
End If
End Sub

Groet,
Allard
 
Mbv:
Code:
application displayAlert
zet je alle meldingen uit.
Ook je gegeven dat je file al bestaat.

Code:
Sub SvMe()
Dim newFile As String, fName As String

Application.DisplayAlerts = False

fName = Range("Y30").Value
newFile = "Shift" & fName & " " & Format$(Date, "dd-mm-yyyy")

ActiveWorkbook.SaveAs Filename:=newFile

Application.DisplayAlerts = True

End Sub

ps.
graag je code in het vervolg binnen de code tags plaatsen. Bedankt. :)
 
Laatst bewerkt:
Mbv:
Code:
application displayAlert
zet je alle meldingen uit.
Ook je gegeven dat je file al bestaat.

Code:
Sub SvMe()
Dim newFile As String, fName As String

Application.DisplayAlerts = False

fName = Range("Y30").Value
newFile = "Shift" & fName & " " & Format$(Date, "dd-mm-yyyy")

ActiveWorkbook.SaveAs Filename:=newFile

Application.DisplayAlerts = True

End Sub

ps.
graag je code in het vervolg binnen de code tags plaatsen. Bedankt. :)

:D Denk ik stoer te doen door eindelijk eens te reageren ipv te vragen, is er weer iemand die het beter weet :p

:thumb:
 
Hoi,

Code:
ub SvMe()
Dim iresponse As Integer
iresponse = MsgBox("Wil je dit document opslaan?", vbYesNo)
If iresponse = vbYes Then

Dim newFile As String, fName As String
fName = Range("Y30").Value
newFile = fName & " " & Format$(Date, "dd-mm-yyyy")
ActiveWorkbook.SaveAs Filename:="" & newFile
Else
MsgBox "Er is niets opgeslagen"
End If
End Sub

Sorry allard1 maar hier zat ik nog altijd met hetzelfde probleem als de filenaam al bestond.

Maar toch bedankt , maar die msgbox is leuk gevonden ga ik zeker gebruiken.
 
Mbv:
Code:
application displayAlert
zet je alle meldingen uit.
Ook je gegeven dat je file al bestaat.

Code:
Sub SvMe()
Dim newFile As String, fName As String

Application.DisplayAlerts = False

fName = Range("Y30").Value
newFile = "Shift" & fName & " " & Format$(Date, "dd-mm-yyyy")

ActiveWorkbook.SaveAs Filename:=newFile

Application.DisplayAlerts = True

End Sub

ps.
graag je code in het vervolg binnen de code tags plaatsen. Bedankt. :)

Bedankt Demeter , dit werkt perfect.:thumb:

en voor dat laatste , dat komt in orde in het vervolg ;)
 
Hoi,

Code:
ub SvMe()
Dim iresponse As Integer
iresponse = MsgBox("Wil je dit document opslaan?", vbYesNo)
If iresponse = vbYes Then

Dim newFile As String, fName As String
fName = Range("Y30").Value
newFile = fName & " " & Format$(Date, "dd-mm-yyyy")
ActiveWorkbook.SaveAs Filename:="" & newFile
Else
MsgBox "Er is niets opgeslagen"
End If
End Sub

Sorry allard1 maar hier zat ik nog altijd met hetzelfde probleem als de filenaam al bestond.

Maar toch bedankt , maar die msgbox is leuk gevonden ga ik zeker gebruiken.

Je hebt gelijk. De eerste keer werkte hij wel, maar toen was het bestand niet al een keer opgeslagen :D dan toch maar die van demeter! :thumb: :thumb:
 
@Allard,

Ik ken het gevoel :). LOL.

En dat gevoel moet je zeker niet weerhouden om iets te posten.
We leren allemaal van elkaars vragen / fouten / verbeteringen das ook het mooie van een forum:D
 
Kon het geheel met de msgbox niet los laten:
Code:
Sub opslaan()
Dim newFile As String, fName As String
Dim iresponse As Integer
Dim f, objFSO

    fName = Range("Y30").Value
    newFile = fName & " " & Format$(Date, "dd-mm-yyyy")
    
    'Microsoft Scripting Run Time wel ingeschakeld zijn
    'Deze vind je onder: Extra/Verwijzingen in de Visual Basic editor (waar je deze code ook plakt)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(newFile & ".xls") = True Then
        iresponse = MsgBox("Document bestaat! Wilt u toch opslaan?", vbYesNo)
            If iresponse = vbYes Then
                ActiveWorkbook.Save
                MsgBox "Document is opgeslagen!"
                Exit Sub
            Else
                MsgBox "Document is NIET opgeslagen!"
                Exit Sub
            End If
    End If

    ActiveWorkbook.SaveAs Filename:=newFile

End Sub


Met dank aan de jongens welke in deze post reacties hebben gegeven (VBA gedeelte van dit forum): http://www.helpmij.nl/forum/showthread.php?t=283834

Prettig weekend
 
Kon het geheel met de msgbox niet los laten:
Code:
Sub opslaan()
Dim newFile As String, fName As String
Dim iresponse As Integer
Dim f, objFSO

    fName = Range("Y30").Value
    newFile = fName & " " & Format$(Date, "dd-mm-yyyy")
    
    'Microsoft Scripting Run Time wel ingeschakeld zijn
    'Deze vind je onder: Extra/Verwijzingen in de Visual Basic editor (waar je deze code ook plakt)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(newFile & ".xls") = True Then
        iresponse = MsgBox("Document bestaat! Wilt u toch opslaan?", vbYesNo)
            If iresponse = vbYes Then
                ActiveWorkbook.Save
                MsgBox "Document is opgeslagen!"
                Exit Sub
            Else
                MsgBox "Document is NIET opgeslagen!"
                Exit Sub
            End If
    End If

    ActiveWorkbook.SaveAs Filename:=newFile

End Sub


Met dank aan de jongens welke in deze post reacties hebben gegeven (VBA gedeelte van dit forum): http://www.helpmij.nl/forum/showthread.php?t=283834

Prettig weekend

Hoi Ferenc , knap , heb er onmiddelijk gebruik van gemaakt met een paar aanpassingen

Code:
Sub opslaan()
Dim newFile As String, fName As String
Dim iresponse As Integer
Dim f, objFSO

    fName = Range("Y30").Value
    newFile = "shift" & fName & " " & Format$(Date, "dd-mm-yyyy")
    
    'Microsoft Scripting Run Time wel ingeschakeld zijn
    'Deze vind je onder: Extra/Verwijzingen in de Visual Basic editor (waar je deze code ook plakt)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(newFile & ".xls") = True Then
        iresponse = MsgBox("Document bestaat! Wilt u toch opslaan?", vbYesNo)
            If iresponse = vbYes Then
                [COLOR="Red"]Application.DisplayAlerts = False[/COLOR]
                ActiveWorkbook.Save[COLOR="red"]As[/COLOR] [COLOR="red"]Filename:="W:\Test \." & newFile[/COLOR]                
                [COLOR="red"]Application.DisplayAlerts = True[/COLOR]
                MsgBox "Document is opgeslagen!"
                Exit Sub
            Else
                MsgBox "Document is NIET opgeslagen!"
                Exit Sub
            End If
    End If
    [COLOR="red"]Application.DisplayAlerts = False[/COLOR]
    ActiveWorkbook.SaveAs Filename:="W:\Test\." & newFile
    [COLOR="red"]Application.DisplayAlerts = True[/COLOR]
End Sub

aan 1 ding geraak ik niet uit .Je spreekt dat 'Microsoft Scripting Run Time wel ingeschakeld moet zijn en waar je deze code ook plakt??
Set objFSO = CreateObject("Scripting.FileSystemObject")

ik heb beide niet gedaan en toch (denk ik )werkt het volgens mij perfect .

Of kan dat niet ?
 
Hey mensen,

Ik heb even een vraagje tussendoor (sorry Wigi:o ), maar ik heb dezelfde macro toegepast, zonder msgbox, maar ik wil graag dat hij opgeslagen wordt niet met de datum erachter, maar met de waarde die in D8 staan. Ik heb al geprobeerd om dat te wijzigen met Range maar dat werkt niet. Kan iemand mij even helpen tussendoor?

Alvast bedankt!

ExcelNoob
 
Excelnoob,

Graag zien we dat je je vraag in een nieuwe post start met een verwijzing naar deze.
Je zal nu zeker weinig respons gaan krijgen aangezien de vraag ook al op opgelost staat.
 
Code:
ActiveWorkbook.SaveAs Filename:="W:\Test\" & Range("D8").Value & ".xls"

Om dit te laten werken, moet je een W schijf hebben, en tevens de map Test in de W schijf.

Er moet ook nog een \ achter Test komen, maar het forum geeft die niet goed weer.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan