opsaal waarschuwing

Status
Niet open voor verdere reacties.

flats

Gebruiker
Lid geworden
7 mei 2015
Berichten
171
Misschien een eenvoudig iets, maar de naam van het op te slane bestand mag alles zijn behalve “machinelijst_draaitijd” .. doet of probeerd men het toch men (door selectie) dan zou die macro iets moeten tone zoals “ bestandsnaam ‘machinelijst_draaien’ niet toegestaan”

Code:
Sub opslaan()
    '
    ' opslaan Macro
    ' De macro is opgenomen op 29/04/2018 door Fernand.

    Dim bFileSaveAs As Boolean
    bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
    If Not bFileSaveAs Then MsgBox "Niet opgeslagen", vbCritical
End Sub
 
machinelijst_draaitijd of machinelijst_draaien zijn volgens mij twee verschillende zaken??
Wat mag niet?? Graag een duidelijke vraag of Ziej van Brugge zet je vanachter.:d
 
mag niet

Als men in het excel programma "lalala.xls" de macro "'opslaan als" start en per abuis het bestaande "machinelijst_draaien" selecteert moet dat vermeden worden, anders hebben ze pech en moeten ze de lijst opnieuw maken.

en vanovend zittik vanvoiren in de biekorve theatere:)
 
In Thisworkbook.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim bestandsnaam As String
if saveasui then
  Application.EnableEvents = False
    bestandsnaam = dezenaam
    If bestandsnaam <> "" Then ThisWorkbook.SaveAs bestandsnaam, 52
    Cancel = True
  Application.EnableEvents = True
end if
End Sub

In een standaard module:
Code:
Function dezenaam() As String
With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = "C:\users\flats\documents\"
    .FilterIndex = 2
    .Title = "Opslaan"
    .AllowMultiSelect = False
   If .Show Then
     If LCase(Split(.SelectedItems(1), "\")(UBound(Split(.SelectedItems(1), "\")))) = "[COLOR=#3E3E3E]machinelijst_draaitijd[/COLOR].xlsm" Then
        dezenaam = ""
        MsgBox "verzin een andere naam"
        Exit Function
      Else
        dezenaam = .SelectedItems(1)
     End If
   End If
 End With
End Function
 
Laatst bewerkt:
Ik vrees dat ik de draad kwijt ben en opnieuw moet vertrekken van de eerste macro, (ik sla een en ander door elkaar momenteel, die twee codes begrijp ik niet)

Code:
Sub opslaan()
    Dim bFileSaveAs As Boolean
    bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
    If Not bFileSaveAs Then MsgBox "Niet opgeslagen", vbCritical
End Sub
 
Ik vrees dat ik de draad kwijt ben en opnieuw moet vertrekken van de eerste macro

Je moet vertrekken vanaf geen macro's en mijn codes plaatsen.
 
hoe smeed ik die twee codes aan elkaar, ik bedoel, kan ik daar een gewone 'sub' van bekomen ?
 
Nee, die eerste code plaats je in Thisworkbook en de tweede in een standaard module.
Als je nu 'opslaan.als' wilt doen lopen de codes automatisch.
 
Welke macro moet ik dan toewijzen aan mijnen knop
 

Bijlagen

  • cover.jpg
    cover.jpg
    56,3 KB · Weergaven: 60
Niet een macro hoeft aan een knop worden toegevoegd.
Als je op de knop 'Opslaan.als' van Excel klikt gaat het automatisch.
 
Hmm, dat is nu eenmaal zeker niet de bedoeling, het moet voor de gebruiker(s) met knop gedaan te worden.
In overdreven zin en bij wijze van spreken moet ik er van uitgaan dat de gebruiker al een handleiding nodig heeft om zijn pc aan te leggen, enfin, zwaar overdreven dus
 
Als je niet weet dat opslaan.als gebeurt met de knoppen die bijna elk programma tot zijn beschikking heeft, kun je ze beter bezig houden met 'Mens erger je niet'.
 
Tja, het moet er nu eenmaal uitzien of gebruikt worden alsof men bijna niet beseft dat men in excel bezig is:)
 
Ook als ze slimmer zijn dan je denkt.
In thisworkbook.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim bestandsnaam As String
if saveasui then
  Application.EnableEvents = False
    bestandsnaam = dezenaam
    If bestandsnaam <> "" Then ThisWorkbook.SaveAs bestandsnaam, 52
    Cancel = True
  Application.EnableEvents = True
end if
End Sub

In een standaard module.
Code:
 Sub opslaan()
  Call Workbook_BeforeSave(True, True)
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim bestandsnaam As String
  Application.EnableEvents = False
    bestandsnaam = dezenaam
    If bestandsnaam <> "" Then ThisWorkbook.SaveAs bestandsnaam, 52
    Cancel = True
  Application.EnableEvents = True
End Sub

Function dezenaam() As String
With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = "C:\users\flats\documents\"
    .FilterIndex = 2
    .Title = "Opslaan"
    .AllowMultiSelect = False
   If .Show Then
     If LCase(Split(.SelectedItems(1), "\")(UBound(Split(.SelectedItems(1), "\")))) = "machinelijst_draaitijd.xlsm" Then
        dezenaam = ""
        MsgBox "verzin een andere naam"
        Exit Function
      Else
        dezenaam = .SelectedItems(1)
     End If
   End If
 End With
End Function
 
Laatst bewerkt:
Zal later vandaag de standaard module code proberen, moet erop uit straks
 
Mooi dat je het op opgelost zet, maar enig reactie had er ook wel afgekund dunkt me.
Waarom zouden helpers nog gratis helpen als ze niet te weten komen of het ook heeft geholpen.
De zoekfunctie komt dit zo ook niet ten goede.

Voor mij eerst maar enige reacties op al je vragen (ik besteed liever tijd aan vragenstellers die een reactie achter laten; goed of niet goed).
 
Mijn excuses daarvoor, iemand vroeg om als het opgelost is om ze af te sluiten, ik dacht dat ik wel bedankt heb voor oplossingen in de threads, maar toch goed dat u mij erop wijst. Ik zal er in het vervolg ook aan denken om de oplossing/de werkende macro als afsluiter te posten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan