load macro

Status
Niet open voor verdere reacties.
Iets anders, zou iemand weten hoe je een bestandsnaam kan beschermen tegen wijzigen terwijl het bestand wel kan/mag gebruikt worden ?

Nu probeer ik een beetje het omgekeerde te bekomen, namelijk opslaan als met verplicht 'machinelijst' als naam te gebruiken, ik dacht macro zoals hieronder maar lukt nog niet, denk dat ik er compleet naast zit
:confused:

Sub test()
'
' test Macro
' De macro is opgenomen op 30/04/2018 door Fernand.

machinelijst = Application.GetSaveAsFilename(FileFilter:="Excel Files(machinelijst.xls),.xls", Title:="SELECTEER MACHINELIJST (bestand)")
If TypeName(machinelijst) = "Boolean" Or InStr(1, machinelijst, "machinelijst") = 0 Then
MsgBox "Gestopt omdat u de juiste file niet koos (verplichte naam = machinelijst)"
End If
 
Waarom om een bestandsnaam vragen als je die al weet? De folder waar het moet komen is dan alles wat je wilt weten:
Code:
Sub Opslaan()
     With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show <> 0 Then
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:=.SelectedItems(1) & "\Machinelijst.xls"
            Application.DisplayAlerts = True
        End If
    End With
End Sub
 
info

Deze macro werk hoor, toont wel erg weinig, de bestaande .xls files zouden mogen verschijnen maar met 'machinelijst' standaard als 'opslaan naam' en bij verkeerdelijk wijzigen een Msg schermpje met een waarschuwing zoals bijvoorbeeld: "bestandnaam 'machinelijst' verplicht"
Zou dat mogelijk zijn ?
 
Probeer eens of dit is wat je wilt:
Code:
Sub VraagBestand()
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "SELECTEER MACHINELIJST (bestand)")
        .InitialFileName = "machinelijst"
        If .Show = -1 Then
          bestand = Split(.SelectedItems(1), "\")(UBound(Split(.SelectedItems(1), "\")))
          If Split(bestand, ".")(0) <> "machinelijst" Then
               MsgBox "bestandnaam 'machinelijst' verplicht"
          End If
        End If
    End With
End Sub
 
Laatst bewerkt:
de goeie richting

Dat is het bijna, alleen het Excel informatie scherm met de melding "..... bestaat al. Wilt u het bestaande bestand vervangen ?" zou eigenlijk enkel mogen verschijnen als de naam effectief "machinelijst" is, als dat niet zo is de waarschuwing tonen.

Sorry voor de lastige vragen he
 
Sorry voor de lastige vragen he
Zolang ik ze kan beantwoorden valt dat wel mee ;)

Zet dan voor je voor de opdracht om het bestand op te slaan deze regel:
Application.DisplayAlerts = False

En na het opslaan deze:
Application.DisplayAlerts = True

Als dat het moment is dat je bedoelt.
 
Laatst bewerkt:
proberen

effe proberen
euh, eigenlijk geen flauw idee waar die twee regels in te passen

Sub VraagBestand()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Save a file"
.InitialFileName = "machinelijst"
If .Show = -1 Then
bestand = Split(.SelectedItems(1), "")(UBound(Split(.SelectedItems(1), "")))
If Split(bestand, ".")(0) <> "machinelijst" Then
MsgBox "bestandnaam 'machinelijst' verplicht"
End If
End If
End With
End Sub
 
Laatst bewerkt:
Die code zet alleen de gewenste naam in de variabele Bestand.
Het opslaan moet je dan nog doen en daar gebruik je die getoonde regeltjes.
 
Ik weet uiteraard niet wat je waar allemaal doet. Je kan dan beter je document plaastsen en aangeven wat precies je bedoeling is.
Als je het opslaan aan Excel zelf overlaat kan je die melding van een bestaand bestand niet voorkomen.
 
Okee

Het ziet er goed uit om zo te gebruiken, enfin tenminste mocht de macro daadwerkelijk opslaan, wat het niet doet, ik krijg immers na gebruik van de macro daarna bij gewoon sluiten van excel de melding "Wilt u de wijzigingen in machinelijst opslaan ?
Na testen kan ik allen maar vaststellen dat de macro de wijzigingen niet heeft opgeslagen.

Waarschijnlijk nog een kleine aanpassing nodig denk ik.
 
Ben er bijna, alleen de MsgBox "machinelijst_draaien is met succes opgeslagen" en sluiten zou enkel mogen gebeuren wanneer het bestand effectief opgeslagen is

Sub VraagBestand()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Save a file"
.InitialFileName = "machinelijst_draaien"
If .Show = -1 Then
bestand = Split(.SelectedItems(1), "")(UBound(Split(.SelectedItems(1), "")))
If Split(bestand, ".")(0) <> "machinelijst_draaien" Then
MsgBox "OPGELET - Het bestand kan enkel opgeslagen worden met bestandnaam 'machinelijst_draaien'"
End If
ActiveWorkbook.save
End If
MsgBox "machinelijst_draaien is met succes opgeslagen"
End With
ActiveWorkbook.Close

End Sub
 
Ik begrijp het nut van die functie niet. Het bestand heeft een naam en je wilt deze opslaan met dezelfde naam. Dan vraag je om de naam en geeft een foutmelding als deze anders is dan de huidige is. Wat is nu precies je bedoeling ermee?
 
ander ...

Ik begrijp volkomen dat u het niet begrijpt. Het bestand moet altijd dezelfde naam behouden omdat die vanuit een ander excel programma via een macro aangesproken of ingecopieerd worden als upgrade voor het gebruik van een berekenings toepassing. De indeling/opmaak van de excel machinelijst.xls is exact hetzelfde als het werkblad dat in de toepassing zit.
 
Maar dan is het toch voldoende om het document gewoon op te slaan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan