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

Pad in header

Status
Niet open voor verdere reacties.
Dan werkt het ook. En zoniet, plaats dan even je document.
 
Nog even voor de duidelijkheid
Het pad met bestandsnaam wordt bij het openen van het bestand getoond, maar als ik het bestand onder een andere naam wil saven met 'opslaan als' dan wordt de bestandsnaam na het opslaan in de header niet gewijzigd in de actuele sheet en dat zou wel moeten.
 
Eerder zei je dan dan het pad niet wordt getoond, alleen de nieuwe naam van het document.
Met de functies zoals getoond wordt dat dan wel gedaan, inclusief het pad naar het document.
 
Laatst bewerkt:
Je hebt het dus achter Blad1 staan en niet in de ThisWorkbook sectie.
 
Ik zie net dat Excel 2007 het Aftersave event nog niet heeft. Ik heb Excel 2010 en die heeft dat wel. Daar komt de verwarring vandaan.
 
Ik zal eens kijken of dat na te bootsen is in Office 2007.
 
Gebruik deze in plaats van de in Office 2007 niet bestaande Workbook_Aftersave:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = True
    Application.EnableEvents = False
    If SaveAsUI = True Then
        cFile = Application.GetSaveAsFilename(ActiveWorkbook.Name, "Excel 2007-2013 Workbook (*.xlsm),*.xlsm")
        If cFile <> False Then
            ActiveWorkbook.SaveAs Filename:=cFile
        End If
    Else
        ActiveWorkbook.Save
    End If

    ActiveWorkbook.Save
    Application.EnableEvents = True

    Windows(1).Caption = ActiveWorkbook.FullName
    Application.Caption = "Microsoft Excel"
End Sub
 
Laatst bewerkt:
Bekijk bijlage AEXspaarsysteem.xlsx
Als je de nieuwe VBA regels toevoegt in ThisWorkbook bij het bijgevoegde bestand en je slaat het bestand op onder een nieuwe naam dan krijg ik de eerste keer een melding. Bij een tweede poging lukt het wel maar wordt alleen de bestandsnaam in de header getoond. (zonder dus het pad) Pas als en het bestand en Excel wordt afgesloten en daarna Excel met het nieuwe bestand wordt geopend, verschijnt zowel het pad als de bestandsnaam.
Is dit nog wat te verbeteren?
 
Je bijlage is een bestand zonder macro's.
Je moet hem wel opslaan als document met macro's (.xlsm)
Dan krijg je die melding ook niet.
 
Laatst bewerkt:
Het toegevoegde bestand is inderdaad zonder de macro. Ik schreef ook als je nu je nieuwe macro toevoegd en het bestand opslaat met ingeschakelde macro's onder een nieuwe naam dan wordt uiteindelijk bij mij alleen de nieuwe bestandsnaam in de header getoond. Let wel ik gebruik Excel 2007. Hoe nu verder?
 
Als ik je bijlage zonder macro's open, daar de maco in plak en het document dan opsla als document met macro's werkt het bij mij direct goed in Office 2007. Ik zie dus direct het hele pad en de nieuwe bestandsnaam in de header van Excel. Ik heb daarom ook even geen idee meer.

Toch nog een ideetje. Wijzig dit gedeelte:
Code:
If cFile <> False Then
        ActiveWorkbook.SaveAs Filename:=cFile
End If

Eens in:
Code:
If cFile <> False Then
    ActiveWorkbook.SaveAs Filename:=cFile, FileFormat:=52
End If
 
Laatst bewerkt:
Upgraden naar Excel 2013 werkt ook... :)

Versieverschillen had ik even geen rekening mee gehouden. Weer wat geleerd.
 
Met het nieuwe stukje code werkt de header nu voortreffelijk maar.....
Als ik een bestand (met VBA code) onder een nieuwe naam wegschrijf, dan wordt het pad met nieuwe naam, zoals gewenst, netjes in de header geplaatst maar niet in het lijstje 'Onlangs geopende documenten'. Kijk ik vervolgens in de verkenner dan staat het nieuwe bestand er wel en uiteraard op de juiste plaats.
Als je een Excel bestand hebt zonder VBA code (dus met extensie .XLSX en je wijzigt die in een andere naam dan wordt het nieuwe bestand met zijn nieuwe naam onmiddellijk opgenomen in het voornoemde lijstje van Excel. Dit moet toch nu ook mogelijk zijn met een VBA code toevoeging?
 
Deze past ook de lijst "Onlangs geopende documenten" aan:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim RecFiles As Object
    
    Cancel = True
    Set RecFiles = Application.RecentFiles
    Application.EnableEvents = False
    
    If SaveAsUI = True Then
        cfile = Application.GetSaveAsFilename(ActiveWorkbook.Name, "Excel 2007-2013 Workbook (*.xlsm),*.xlsm")
        If cfile <> False Then
            ActiveWorkbook.SaveAs Filename:=cfile, FileFormat:=52
            RecFiles.Add cfile
        End If
    Else
        ActiveWorkbook.Save
    End If

    ActiveWorkbook.Save
    Application.EnableEvents = True

    Windows(1).Caption = ActiveWorkbook.FullName
    Application.Caption = "Microsoft Excel

End Sub
 
Laatst bewerkt:
Alles werkt nu perfect. Hartelijk dank voor de ondersteuning. Tot slot heb ik nog een vraag.
Ik heb een aantal Excel bestanden die al voorzien zijn van een macro met VBA code. De code zorgt ervoor dat bepaalde gegevens van Internet worden opgehaald en op een bepaalde plaats in het Excel blad worden neergezet. Nu wil ik de header van het bestand voorzien van de bestandnaam inclusief het pad naar dat bestand. De code staat niet in 'ThisWorkbook' maar in 'Module 2'. In 'ThisWorkbook'staan 2 regels code. Waar moet die code voor het tonen van de bestandsnaam met pad in de header nu geimplementeerd worden?
 
Codes die afhankelijk zijn van een Event (gebeurtenis) in het werkbook moeten in ThisWorkbook staan en die voor een werkblad uiteraard achter het blad. Elke andere functie of sub moet in een module staan. Je kunt meerdere modules maken om bijvoorbeeld functies of subs te groeperen.

Waar die code moet komen is op dezelfde plekken als in je voorbeeld document. Wat de sub in de module betreft maakt het niet uit in welke module hij komt te staan. Die voor Workbook_Open moet uiteraard in ThisWorkbook komen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan