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

bij opslaan altijd naar speciaal tabblad gaan om gegevens in te voeren, hoe moet dit

Status
Niet open voor verdere reacties.

ECORNELISSEN

Gebruiker
Lid geworden
25 nov 2014
Berichten
17
beste allemaal,

in heb een excel sheet met diverse tabbladen. een van de tabbladen moet gaan dienen als logboek. ik wil bereiken dat als je een wijziging in een van de ander tabbladen aanbrengt dat je dan in het logboek kort vermeld wat je gedaan hebt. ik wil hierin de volgende stappen doorlopen;
* bij het openen moet altijd geopend worden met het tabblad "logboek".
* bij wijzigingen in een van de andere tabbladen en door op opslaan te drukken moet automatisch het tabblad "logboek"voor komen te staan.
* vervolgens kan je alleen het document sluiten als je weer op opslaan drukt. De bedoeling hierachter is dat er in het tabblad logboek door de wijziger een korte melding wordt gemaakt van wat er is gewijzigd. Mooi zou zijn als er een melding in beeld komt waarin staat dat als men het logboek niet invult, dat dan het document niet opgeslagen en afgesloten kan worden.

Ik werk in office 2013 en is hier toevallig een knop voor? ik heb geen ervaring met VBA.
Ik heb een bijlage bijgevoegd.

Wie kan mij helpen?
Alvast bedankt

groet Ed Cornelissen
 

Bijlagen

Onderstaande codes staan in 'Thisworkbook'.
Macro's inschakelen.

Hoe werkt het:
Elke wijziging van elk blad wordt weggeschreven in tabblad logboek, behalve de wijzigingen van blad logboek.
Ook de gegevens die er stonden worden erin geschreven.
In de eerste cel en daarop volgend. de datum, gebruikersnaam van Excel, welk blad, welk cel, welke waarde, voor en na.

Bij het sluiten van het bestand wordt het automatisch opgeslagen mits je het eenmalig hebt opgeslagen als bestand met macro's (.xlsm of .xlsb extensie).

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "logboek" Then
 With Application
   .EnableEvents = False
   .Undo
  Sheets("logboek").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Array(Date, Application.UserName, Sh.Name, "cel " & Target.Address(0, 0), Target.Value, "dit stond er")
   .Undo
  Sheets("logboek").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Array(Date, Application.UserName, Sh.Name, "cel " & Target.Address(0, 0), Target.Value, "dit staat er nu")
   .EnableEvents = True
  End With
 End If
End Sub

'nb Environ("UserName") = Pc naam  > application.username = Excel gebruikersnaam
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan