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

F8 werkt niet

  • Onderwerp starter Onderwerp starter JHH
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JHH

Gebruiker
Lid geworden
18 aug 2015
Berichten
72
Goedemorgen,

De debugmethode (F8) werkt niet in een bepaalde bestand. in andere doet deze het weer wel. wat kan daar de oorzaak van zijn? ik heb excel al opnieuw opgestart, maar ik krijg het niet voor elkaar.

code is:

Workbook - BeforeSave
[Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "deze melding komt net voor het opslaan"
End Sub]

kan iemand mij helpen?
 
Laatst bewerkt:
En in dat andere document gaat het ook om de Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ?
Daar kan je niet met F5 of F8 doorheen zonder er eerst een breakpoint in te zetten (F9) en, in dit geval, tevens het event te triggeren.
 
Laatst bewerkt:
Ja inderdaad. ik was er zojuist al achter dat dit daar blijkbaar niet werkt. ik ben nl geen expert in VBA, maar probeer langzaam aan wel wat samen te stellen.

nu heb ik het als volgt aangepast, maar krijg ik 2x de melding "Deze melding komt net....". Hoe kan dat?
vervolgens komt de vraag of ik het bestaande bestand wil overschrijven, terwijl dit bestand daar (bureaublad) helemaal staat, maar wel gestaan heeft. als ik op "ja"klik looppt excel vast.. (ik gebruik office 365)


Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim FileName As String
Dim Filepath As String

FileP = Range("c3").Value
FileN = Range("b5").Value

MsgBox "deze melding komt net voor het opslaan"
   
    If Dir(Range("c3").Value) = "" Then
   
       MsgBox "De map bestaat niet!"
      
        Exit Sub
    
    Else
    
       ActiveWorkbook.SaveAs FileName:=FileN & ".xlsm"

    End If

End Sub
 
Doe daar niet Exit Sub maar Cancel = True
De melding komt 2x omdat je het document opslaat en in diezelfde Sub nog eens.
Ik weet niet wat je plan is maar dit is er kennelijk niet het juiste event voor.
 
Laatst bewerkt:
Dat heb ik nu gedaan.

1. Maar nog steeds krijg ik 2x de melding "deze melding komt voor...."
2. en excel loopt vast bij overschrijven van file of ik krijg een foutmelding "Fout 1004" Methode SaveAs van object_Woorkbook is mislukt...

fout zit in "ActiveWorkbook.SaveAs Filename:=..."
 
Je verteld niet wat je probeert te bereiken.
En, zoals ik al zei, ik veracht niet dat dit het juiste event is om die activiteiten in uit te voeren.
Vertel precies wat je wilt en plaats een voorbeeld document.
 
OK,

ik heb een soort templatedocument gemaakt.
Als iemand anders dit opent en opslaat wil ik dat dit bestand automatisch op een bepaalde locatie opgeslagen wordt. De locatie EN de filename is gebaseeerd op gegevens uit het document; zie bijlage.

begrijpt u wat ik bedoel?

mvg Rick
 

Bijlagen

Probeer het eens zo:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim FileName As String
    Dim Filepath As String
    Static LooptAl As Boolean
    
    FileP = Range("c3").Value
    FileN = Range("b5").Value
    
    If Not LooptAl Then
        LooptAl = True
        MsgBox "deze melding komt net voor het opslaan"
        
        If Dir(Range("C3").Value, vbDirectory) = "" Then
            MsgBox "De map bestaat niet!"
            Cancel = True
        Else
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs FileName:=FileN & ".xlsm"
            Application.DisplayAlerts = False
        End If
    End If
    LooptAl = False
End Sub
 
Laatst bewerkt:
Dag,

De dubbele melding krijg ik nu niet meer, maar excel loopt nog steeds vast bij het opslaan...

P.S. Eerlijk gezegd dacht ik dat dit een veel voorkomende code is die veel mensen gebruiken, maar het blijkt niet al te makkelijk te zijn.
 
Misschien de regel voor het opslaan veranderen.

Application.GetSaveAsFilename
 
Hij doet het hier zonder problemen.
Loopt dus niet vast.
Waarom bij jou wel zou ik zo niet weten.
 
Probeer het eens zo al zou ik er een compleet andere constructie voor verzinnen:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim FileName As String
    Dim Filepath As String
    Static LooptAl As Boolean
    filep = Range("c3").Value
    FileN = Range("b5").Value
    
    If Not LooptAl Then
        LooptAl = True
        MsgBox "deze melding komt net voor het opslaan"
        
        If Dir(Range("C3").Value, vbDirectory) = "" Then
            MsgBox "De map bestaat niet!"
            Cancel = True
        Else
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveCopyAs (filep & FileN & ".xlsm")
            Application.DisplayAlerts = True
        End If
    End If
End Sub
 
Als dat niet lukt, een andere constructie:

Code:
 Sub Opslaan()
  Dim strFileName As Variant
  Dim strPath As String
  strFileName = Range("AJ2").Value
  strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName, _
                                              FileFilter:="Excel Files (*.xls), *.xls, Excel 2007 Files (*.xlsm), *.xslm", _
                                              FilterIndex:=1, _
                                              Title:="Kies de juiste map en pas eventueel de bestandsnaam aan!")
  If strFileName = False Then
    MsgBox "Oh oh... je hebt niet opgeslagen! "
  Else
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs FileName:=strFileName
    MsgBox "Gelukt!  Opgeslagen als: " & strFileName
  End If
End Sub
 
Met het popup scherm werkt het wel, maar ik heb nu een knop gemaakt waarmee de code aangeroepen wordt. daarmee is het voldoende opgelost.

bedankt voor de hulp.

ik heb nog wel een andere vraag, maar zal een nieuw item aanmaken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan