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

Cel aanpassen voor opslaan macro

Status
Niet open voor verdere reacties.

Frankell87

Gebruiker
Lid geworden
7 mei 2015
Berichten
141
Graag zou ik een cel aanpassen waarin de naam komt te staan van de persoon die het laatste een aanpassing heeft gedaan in het bestand.
onderstaande heb ik er nu in staan maar ik merk dat hij af en toe niet werkt. Volgens mij werkt hij wel altijd goed op het moment dat je op sluiten klikt (kruisje) maar als ik op de cassete klik (normaal opslaan) dan lijkt hij niet te werken

*Toevoeging: net nog een keer gedaan, de datum werd wel aangepast maar de naam/gebruiker niet.

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

Application.ScreenUpdating = False

    Range("A28").Select
    Selection.ClearContents
    
    Range("A28").Select
    Selection = "=NOW()"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    [A26] = ThisWorkbook.BuiltinDocumentProperties("Last Author")
 With ActiveSheet.PageSetup
 End With

Application.ScreenUpdating = True

End Sub

Kan iemand zien waar het mis gaat? En mij uitleggen waarom zodat ik het begrijp...:d
 
Laatst bewerkt:
Gebruik geen select en onnodig kopiëren naar waarden.

Code:
Range("A28") = Now
is voldoende.
 
komt dan niet de datum erin te staan die het nu is?

waar ik de cel nu voor gebruik is de wijzigingsdatum weergeven. kopieren plakken gebruikte ik om de formule te verwijderen en er een 'harde' tekst van te maken
 
klopt, maar als ik hem dan later open staat de datum erin dat hij de laatste keer is opgeslagen. bijvoorbeeld gisteren.
als ik de formule erin laat staat en ik open hem vandaag dan staat de datum van vandaag erin
als ik hem kopieer en plak (zonder formule maar alleen de waarde) staat de datum van gisteren er nog in
 
Het is de vraag of het met de nieuwe privacyregels wel toegestaan is zonder toestemming van een gebruiker zijn/haar gegevens op te slaan.
Zeker als niet duidelijk is waarvoor de opgeslagen gegevens gebruikt worden.
 
De datum wordt er in beide gevallen in gezet op het moment van opslaan.
Dat kopieren en plakken vervangt alleen de functie door de waarde maar je zet er ieder keer eerst de functie in waardoor er de huidige datum komt te staan.

Die hele routine kan je trouwens vervangen door dit:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Range("A28") = Now
    Range("A26") = Environ("username")
End Sub
 
Laatst bewerkt:
kan er nog iets dat hij dit alleen doet als er een wijziging is geweest in het werkblad?
 
Laatst bewerkt:
Zoiets:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not ThisWorkbook.Saved Then
        Range("A28") = Now
        Range("A26") = Environ("username")
    End If
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan