Wijziging loggen

Status
Niet open voor verdere reacties.
1/03/2018 11:15 Ron '[loggen 1.xlsm]Blad1'!$B$22 tes ron

1/03/2018 12:26 Ron '[loggen 1.xlsm]Blad1'!$B$26 gregrr
1/03/2018 12:26 Ron '[loggen 1.xlsm]Blad1'!$D$22 grgrg
1/03/2018 12:26 Ron '[loggen 1.xlsm]Blad2'!$C$29 vena
1/03/2018 12:26 Ron '[loggen 1.xlsm]Blad2'!$C$30 snb
1/03/2018 12:26 Ron '[loggen 1.xlsm]Blad2'!$C$31 edmoor
 
Als je nu sorteert op de 3e kolom, er eventueel een tabel van maakt en filtert op de wijzigingen van 1 specifieke cel komt het helemaal goed, toch ?
Kleuren voegen hier niets toe, omdat het allemaal om gewijzigde cellen gaat.
 
Kan je nog toevoegen "van naar"...
Is voor mij toch belangrijk, zo kan ik snel zien dat geplande werken niet gaan doorgaan...

BV: Van werkorder (weet ik dat dit gepland is) naar bv: V (verlof) voor deze persoon...
En als het vak leeg was, dat er LEEG komt te staan, in tegengestelde richting hetzelfde...

Bedankt!
 
De codes zijn allemaal TOP! heb ik ergens gelezen, maar je moet ze wel bestuderen.
Een hint:
"application.undo"
 
En ook andere tekst tot je laten doordringen....
 
"van" x "naar" y (deze in UCase en rode kleur) en 10000 rijden clearcontents
Voor van x naar y heb je de code al. Het tweede gedeelte van de zin is nogal onbegrijpelijk. Je gaat eerst loggen en als er 10.000 rijen gelogd zijn dan wil je weer opnieuw beginnen?
Zoals al vaker geschreven denk eerst na over wat je wil ipv een complete applicatie te laten maken door de helpers op dit forum. Probeer zelf eens wat aan te passen en laat dan zien waar je nog tegenaan loopt. Dit geldt voor alle draadjes die je nog open hebt staan.
 
Ik heb code wat aangepast...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  c00 = Target.Value
  Application.Undo
  c01 = Target.Value
  Sheets("Log").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 8) = Array(Replace(Environ("username"), ".", " "), "wijzigde op", Now, Replace(Target.Address(, , , -1), "[Logbestand na wijziging(jp) (1).xlsm]", ""), "van", UCase(c01), "naar", UCase(c00))
  Target = c00
  Application.EnableEvents = True
End Sub

Nog 2 problemen;

Hoe wordt automatisch alles in het midden uitgelijnd?
Welk commando geef ik om dit uit te voeren, maar dan in externe file? Ik krijg wel een externe file open, maar krijg de gegevens niet weggeschreven..

Bedankt!
 

Bijlagen

  • Logbestand na wijziging(jp) (1).xlsm
    27,1 KB · Weergaven: 44
Laatst bewerkt:
"wijzigde op", "van" en "naar" hebben geen enkele toegevoegde waarde. Deze moet je gebruiken als kolomkoppen. Tekst lijn je standaard links uit en getallen rechts. Heeft ook geen toevoegde waarde in de logfile. Als je de naam van het bestand wijzigt dan werkt de code niet meer correct en is dus niet zo'n handige oplossing.

Als de code in meerdere tabjes van toepassing moet zijn dan plaats je deze in de module van Thisworkbook en niet in elke bladmodule afzonderlijk. En al zeker niet in de module van blad 'log'. Het wordt dan zoiets.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Sh.Name = "Log" Then Exit Sub
    Application.EnableEvents = False
    c00 = Target.Value
    Application.Undo
    c01 = Target.Value
    Sheets("Log").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = Array(Environ("username"), Now, Replace(Target.Address(, , , -1), "[" & ThisWorkbook.Name & "]", ""), c01, c00)
    Target = c00
    Application.EnableEvents = True
End Sub
 
't is al moeilijk genoeg.
Code:
Replace(Target.Address(, , , -1), "[" & ThisWorkbook.Name & "]", "")
sh.name & target.address
sh.name & "!" & target.address
 
Code van VenA is inderdaad oke en genoeg qua info.

@ HSV

Waarvoor is dat stukje nog?

Ik zou nu enkel deze code nog in een aparte file moeten wegschrijven ipv van tabblad in ThisWorkbook.
Kan je een voorzet geven?

Bedankt!

***EDIT***
Is het ook mogelijk om dit te splitsen in twee kolommen?
Code:
week 10'!$B$36

Week 10 en $B$36
 
Laatst bewerkt:
De onderste 2 regels zijn een van de vervangers voor de 1e coderegel.
 
Mij lijkt het dat alle antwoorden op jouw vragen wel gegeven zijn. Als je er niets van kan of wil begrijpen dan kunnen wel doorgaan tot het oneindige met het aanpassen van de code. Maar hier is dit forum in mijn optiek niet voor bedoelt.
 
Laatst bewerkt:
Ben de code van #28 nu aan het gebruiken maar krijg foutmelding op Undo bij eerste keer veranderen van sheet (en schrijft dan wijzigingen niet weg)...
Code loopt daarop spaak...
En fout 424, object vereist

Met googlen vind ik niet echt iets...

Methode UNdo van object_Application is mislukt
 
Laatst bewerkt:
Je hebt er vast handelingen tussen geplaatst in de code, dan werkt 'Undo' niet meer.
 
Dan zull je je toch echt in VBA moeten verdiepen in plaats van ongericht zoeken op internet.
 
Ik heb er geen handelingen tussengeplaatst...

Blijft in de "echte" file fout geven (#34), dit is de code die er staat

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    If Sh.Name = "Log" Then Exit Sub
    Application.EnableEvents = False
    c00 = Target.Value
    Application.Undo  'Geeft hier steeds fout
    c01 = Target.Value
    Sheets("Log").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = Array(Environ("username"), Now, Replace(Target.Address(, , , -1), "[" & ThisWorkbook.Name & "]", ""), c01, c00)
    Target = c00
    Application.EnableEvents = True


End Sub
 
Staan er nog codes in het werkblad zelf?
 
Bedoel je in de sheets zelf?

Zo ja, deze;

Code:
Option Explicit

Sub Tijd()
Dim interval As Date
interval = TimeValue("00:00:01")
Worksheets(1).Range("AB1") = Format(Time, "hh:mm:ss")
Application.OnTime Now + interval, "Tijd"
End Sub

***edit*** Uit alle sheets uitgehaald, maar werkt nog niet...
Ook paswoorden van sheets en workbook, geen resultaat...
Moet ik definiëren in een range?
 
Laatst bewerkt:
Nee. begin eerst eens met de VBA fundamentals: een stevig boek bijv.
VBA onderscheidt zich in niets van een gewone taal: grammatica, woordenschat, syntaxis, etc.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan