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

Opgelost Bij openen en opslaan datum en gebruikersnaam plaatsen in cel 2

Dit topic is als opgelost gemarkeerd

malawi

Gebruiker
Lid geworden
10 mrt 2009
Berichten
151
Hallo ik heb onlangs deze vraag gesteld. maar kom nu nog 2 probleemjes tegen die ik niet opgelost krijg. Misschien kan iemand mij helpen

Probleem 1. Het test bestand werkte het goed, maar ik deze overzet naar het originele bestand komt ik het volgende tegen. Het originele bestand is een excel sjabloon(.xltm). Vanuit dit sjabloon open ik elke keer een nieuw bestand. (.xlsm) Wanneer ik vanuit de sjabloon een nieuw xlsm bestand aanmaak moet alleen de aanmaak datum en naam worden ingevuld. Dus geen wijzigingsdatum en naam. Pas wanneer laten dit nieuwe bestand wordt gewijzigd wel. Kan ik dit aanpassen?

2e probleem is dat wanneer ik het nieuwe bestand wil "opslaan als" krijg ik een foutmelding dat ik geen cel kan wijzigen in een beveiligd blad, terwijl ik in de macro wel eerst de beveiliging eraf haal. Wat gaat hier verkeerd? Zie bijlage

Ik kan geen .xltm toevoegen, dus het bestand in .xlsm als bijlage toegevoegd. Deze dient dan als eerst als .xltm opgeslagen te worden dan kom ik probleem 1 tegen.
 

Bijlagen

  • Test aangemaakt door.xlsm
    19,4 KB · Weergaven: 14
Verwijder Sub Workbook_BeforeSave en wijzig Opslaanals():
Code:
Sub Opslaanals()
    With Sheets("Blad1")
        If Not ThisWorkbook.Saved Then
            .Unprotect Password:="ww"
            .Range("E16") = Now()
            .Range("E17") = Environ("username")
            .Protect Password:="ww"
        End If
    End With
    Application.Dialogs(xlDialogSaveAs).Show
End Sub
 
Heren,

Voor mij geldt nog 1 opmerking. Als bijlage heb ik mijn laatste testbestand toegevoegd. Er is een knop toegevoegd voor het tussendoor opslaan. Datum en tijdstip wijzigd netjes mee. Maar als ik buiten de knoppen om opsla met opslaan knop in lint snelle toegang of de sneltoets ctrl+s helaas niet. Hoe kan ik dit nog inpassen zodat de wijzigingsdatum altijd wordt aangepast is ik het opsla?

Bij voorbaat dank,

Ewald
 

Bijlagen

  • Test aangemaakt door1.xlsm
    19,8 KB · Weergaven: 7
Dat kan je doen in de ThisWorkbook module:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 
Dan kom ik weer bij mijn eerste probleem uit. De wijzigingsdatum moet alleen werken bij een nieuw bestand. (.xlsm) Die vanuit een Excel sjabloon is aangemaakt. met de opslaan button in het formulier, opslaan knop in lint snelle toegang of de sneltoets ctrl+s. Dus niet in een Excel sjabloon(.xltm).
 
Code:
Sub hsv()
Workbooks.Add
With ActiveWorkbook
 .Sheets(1).Cells(1) = CDate(.BuiltinDocumentProperties(11))
 .Sheets(1).Cells(2) = Environ("username")
   With .VBProject.VBComponents(ThisWorkbook.CodeName).CodeModule
     .InsertLines .CountOfLines + 1, "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)" & vbCrLf & "sheets(1).cells(1) = now" & vbCrLf & "End Sub"
   End With
End With
End Sub
 
Er moet nog wel een coderegel toegevoegd worden boven "With .VBProject" zodat het bestand ergens wordt opgeslagen.
Iets van:
Code:
.saveas "c:\users\malawi\map1\nieuw bestand",52
 
Is dit misschien in mijn laatste testbestand te integreren? Ik kom er niet uit.

Gr. Ewald
 
Het originele bestand is een excel sjabloon(.xltm). Vanuit dit sjabloon open ik elke keer een nieuw bestand. (.xlsm)
In je laatste testbestand staat geen code hoe jij een nieuwe bestand aanmaakt.
 
ok, zie bijlage.
 

Bijlagen

  • Test aangemaakt door.xlsm
    19,8 KB · Weergaven: 7
In Thisworkbook-module plaatsen en opslaan.
Daarna kan je het opslaan.als(....
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
 With Application.FileDialog(msoFileDialogSaveAs)
   If .Show Then .Execute
  End With
 With ActiveWorkbook
  .Sheets(1).Cells(1) = Now
  .Sheets(1).Cells(2) = Environ("username")
    With .VBProject.VBComponents(ThisWorkbook.CodeName).CodeModule
      .DeleteLines .ProcStartLine("Workbook_BeforeSave", 0), .ProcCountlines("Workbook_BeforeSave", 0)
      .InsertLines .CountOfLines + 1, "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)" & vbCrLf & "sheets(1).cells(1) = now" & vbCrLf & "End Sub"
    End With
 End With
Cancel = True
End If
End Sub
 
Krijg helaas een foutmelding bij het invullen van de data. Bestand aangepast en opgeslagen als sjabloon. Foutmelding volgt na het "opslaan als" als nieuw bestand. Zie Laatste bestand is toegevoegd.Schermafbeelding 2024-03-27 190956.png
 

Bijlagen

  • Test aangemaakt door1.xlsm
    22,2 KB · Weergaven: 10
Niet mijn code de schuld geven als je het zelf verkeerd aanpast.
 
Sorry als dit zo overkomt, als ik maar wist wat ik er verkeerd heb aangepast als alleen de celverwijzing en toevoeging van de ww regel
 
Je denkt dat dit goed is?
Code:
.Sheets(Blad1).Cells(E16) = Now
Kijk eens naar het verschil tussen Cells en Range.
 
Terug
Bovenaan Onderaan