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

opslaan als macro

Status
Niet open voor verdere reacties.

flats

Gebruiker
Lid geworden
7 mei 2015
Berichten
171
Beste allemaal, ik heb een macro die ik met uw hulp heb kunnen maken, waarvoor dank.
Vandaag heb ik eigenlijk tijd gevonden om wat verder testen te doen en merk nu pas dat ik het bestand niet eender waar kan opslaan.
Bedoeling is dat het bestand alleen mag opgeslagen worden met de naam “machinelijst_draaien” indien niet aan deze voorwaarde wordt voldaan komt er een melding daarvan.
Hoop dat deze onderstaande macro aanpasbaar is.

Code:
Sub VraagBestand()

ActiveSheet.Unprotect
Range("b3:f101").Select
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
Range("b3").Select
ActiveSheet.Protect
restart_here:
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'"
            GoTo restart_here
        Else
            ActiveWorkbook.Save
            MsgBox "machinelijst_draaien is met succes opgeslagen"
            Calculate
        End If
      End If
End With
ActiveWorkbook.Close
End Sub
 
Ik vind het een rare manier van werken; als het bestand alleen opgeslagen mag worden onder de naam "machinelijst_draaien" dan heeft het toch geen enkele zin om daar een FileDialog tegenaan te gooien? Dan kun je toch gelijk het bestand opslaan? Je overschrijft nu ook, dus een Dialog waarmee je een map selecteert, en gelijk het bestand opslaan zou meer dan genoeg moeten zijn. En als het pad óók vast ligt, dan is de procedure nog veel simpeler te maken.
 
hoe ziet u het

Ik begrijp het niet zo goed, hoe ziet u die macro dan. Het bestand moet eender waar kunnen opgeslagen worden met als voorwaarde dat het bestand geen ander naam mag hebben dan : machinelijst_draaien
 
Je hebt dus inderdaad alleen de folder nodig waar het bestand moet worden opgeslagen. Dat kan zo:
Code:
With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show <> 0 Then
        MapNaam = .SelectedItems(1)
    End If
End With
 
moet met macro

@edmoor. Het is wel de bedoeling dat de gebruiker een melding krijgt bij bestandsnaam die niet gelijk is aan "machinelijst_draaien" Wat zou ik moeten veranderen aan de macro
@emiels. Het moet wel degelijk met een macro gebeuren
 
Zoiets dus:
Code:
Sub VraagBestand()
Dim MapNaam As String
    
    Application.DisplayAlerts = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .InitialFileName = ActiveWorkbook.Path
        If .Show <> 0 Then
            MapNaam = .SelectedItems(1) & IIf(Right(.SelectedItems(1), 1) <> "\", "\", "")
        End If
    End With
    ActiveWorkbook.SaveAs MapNaam & "machinelijst_draaien.xlsx"
    Application.DisplayAlerts = True

End Sub
 
@edmoor. Het is wel de bedoeling dat de gebruiker een melding krijgt bij bestandsnaam die niet gelijk is aan "machinelijst_draaien" Wat zou ik moeten veranderen aan de macro

Als de naam van het bestand vier veranderd hoef je niks aan te doen omdat je die gewoon "hard" in de code opneemt.
 
Begrijp uw antwoord niet zo goed hoor. Het opslaan moet met macro begeleiding gebeuren + het bestand mag niet onder een andere naam opgeslagen worden want dit bestand wordt ook gebruikt in een andere toepassing die bepaalde gegevens ervan nodig heeft
 
De macro vermeld bij #1 werkt goed zolang het opslaan gebeurd vanaf de excel map van waaruit die gestart wordt.

Wegens ander prioriteiten mag de vraag 'on hold' of als (voorlopig) opgelost geplaatst worden.

Toch bedankt voor de info en voorstellen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan