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

Ik wil een soort ''geschiedenis'' opbouwen

Status
Niet open voor verdere reacties.

miicker

Gebruiker
Lid geworden
1 jul 2010
Berichten
87
Hallo,

Ik hou een voorraad bij van een aantal artikelen. Ik heb het bestand redelijk ver klaar.
Iedere keer als iemand iets wijzigt, dan zal diegene zijn naam kunnen selecteren via een drop down menu.

Wat ik zou willen:
Iedere keer als iemand iets wijzigt, dus zijn/haar naam selecteert via het drop down menu, dat dit in de geschiedenis wordt vermeld (apart tabblad)

Er dient dan automatisch de datum worden neergezet, het incident nummer dat in ingevuld, en de naam van de persoon die is ingevuld.

Ik heb het bestand waarop dit moet worden toegepast als bijlage.
Zie dan het tabblad geschiedenis.

Ik hoop dat iemand dit voor mij kan oplossen.

Als dit niet mogelijk is met Excel, kan iemand dan zeggen waarmee het wel kan?

Met vriendelijke groet,
Mickey.

Hier het bestand: http://www.mijnbestand.nl/Bestand-UPGZBHGCJAVH.zip
 
hoe veilig moet het zijn? Uiteraard is dit bij uitstek iets waar (transactionele) databases voor bedoeld zijn. Het is wel te bewerkstelligen in excel, maar je krijgt het nooit volledig dichtgetimmerd en veilig. Als dit voor "gewoon" gebruik is kun je een heel eind komen met macro's, zolang je je realiseert wat de beperkingen zijn van zo'n systeem
 
Het moet zeg maar zo zijn dat als iemand het wijzigt, dat dan direct wordt opgeslagen op een regel wie het heeft gewijzigd, snap je wat ik bedoel?
 
Laatst bewerkt door een moderator:
Dat begrijp ik, die persoon kan dat echter net zo hard weer ongedaan maken.
 
Dat geeft niet, aangezien het een beperkt aantal mensen betreft, en er geen reden zou zijn dit te doen, het moet worden bijgehouden puur voor administratieve redenen.
 
Laatst bewerkt door een moderator:
Je opzet maakt het iets lastiger. Je moet aan elke pulldown een macro toewijzen of de linked cell aanmaken. De pulldown zelf is namelijk niet direct te gebruiken voor automatische opslag. Integratie met form elementen buiten een formulier is redelijk lastig in excel.
 
Misschien werkt het als ik een pulldown gebruik via gegevensvalidatie?
 
Dat kan wel. Je kunt dan namelijk reageren op de verandering van een cell. Als je dingen automatisch wil doen heb je een "trigger" nodig. Het veranderen van de waarde van een cell is zo'n trigger.
 
Dat kan wel. Je kunt dan namelijk reageren op de verandering van een cell. Als je dingen automatisch wil doen heb je een "trigger" nodig. Het veranderen van de waarde van een cell is zo'n trigger.


heb je macro's om dit te doen, of als het niet te veel moeite is, zou je dit kunnen doen?
Ik heb zelf namelijk nog nooit echt met macro's gewerkt.
 
Deze code moet op worksheet 1 komen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect([g2:g50000], Target) Is Nothing Then
    With Sheets("Geschiedenis").Cells(Sheets("Geschiedenis").UsedRange.Rows.Count + 1, 1)
        .Value = Target.Offset(, -6)
        .Offset(, 1).Value = Target.Offset(, -5)
        .Offset(, 2).Value = Target.Offset(, -4)
        .Offset(, 3).Value = Target
        .Offset(, 4).Value = Now()
        .Offset(, 5).Value = Target.Offset(, 1)
    End With
 End If
End Sub
 
Op zich is dit al redelijk wat ik bedoel,
alleen wanneer ik een wijziging toe breng in de zelfde regen, dan worden de gegevens vervangen. Is hier iets op te verzinnen dat dit er onder komt te staan?
 
Deze code moet op worksheet 1 komen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect([g2:g50000], Target) Is Nothing Then
    With Sheets("Geschiedenis").Cells(Sheets("Geschiedenis").UsedRange.Rows.Count + 1, 1)
        .Value = Target.Offset(, -6)
        .Offset(, 1).Value = Target.Offset(, -5)
        .Offset(, 2).Value = Target.Offset(, -4)
        .Offset(, 3).Value = Target
        .Offset(, 4).Value = Now()
        .Offset(, 5).Value = Target.Offset(, 1)
    End With
 End If
End Sub

nee sorry, ik keek verkeerd, dat is alleen het geval als men het document niet opslaat.
Maar wat wel verkeerd gaat: Alleen het bovenste incident nummer wordt er neergezet (H2), daaronder wordt alleen de overige info weggeschreven, niet het incident nummer.
 
Oke, ik zie nu dat het incident nummer wel mee over wordt genomen, maar dit moet eerst ingevuld zijn.
Volgens mij zit de change trigger bij de gene die het wijzigt. Want op het moment dat ik dat wijzig wordt het bij de geschiedenis vermeld.
Eigenlijk moet dit pas gedaan worden als het incident nummer gewijzigd wordt.
 
Je hoeft dan alleen de intersect te veranderen in kolom "H" en de target.offsets iets aanpassen
 
Hoe moet ik de target.offsets aanpassen? Ik krijg het niet voor elkaar.. (ik heb nog nooit met VB codes gewerkt)
 
Je intersect 1 verder naar rechts dus je offset moet -1 extra

.Value = Target.Offset(, -7)
.Offset(, 1).Value = Target.Offset(, -6)
.Offset(, 2).Value = Target.Offset(, -5)
.Offset(, 3).Value = Target.Offset(, -1)
.Offset(, 4).Value = Now()
.Offset(, 5).Value = Target
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan