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

VBA Als celwaarde ="X" plaats datum 'fixed)

Status
Niet open voor verdere reacties.

Dedeke

Gebruiker
Lid geworden
7 dec 2020
Berichten
36
Beste,

Al geruime tijd zoek ik naar een oplossing om volgend te bewerkstelligen.
Van zodra een bepaalde waarde ("X" in mijn geval) in een bepaalde cel komt te staan had ik graag in de kolom ernaast in de overeenkomende cel graag de datum van wanneer de "X" ingevuld is.
Deze datum mag dan ook niet meer wijzigen.
De waarde "X" wordt bekomen door resultaat van een formule.
Ik heb reeds een code gevonden die wel zijn werk doet zolang de gegevens manueel worden ingevoerd. Van zodra echter dat de waarde"x" bekomen word door formule loopt het fout.
In bijlage een deel van mijn origineel (is te groot om het volledige doc te uploaden) Blad 1 zit de code mee ingebakken en iets aan verduidelijking (hoop ik) blad 2 is dan een kopie van mijn origineel.
Er zullen enkele formules niet bijgewerkt kunnen worden maar deze lijken mij niet van belang om het resultaat te bekomen.

Hopelijk kan mij iemand hier naar het juiste (VBA) pad leiden, het was nu al een lange lijdensweg :)

Alvast bedankt voor tijd en moeite
Grtz Dedeke
Oeps bijna vergeten: Win 10 - office 2016
 

Bijlagen

Laatst bewerkt:
haal die C-cellen uit die change en stop ze in een calculate
Code:
Private Sub Worksheet_Calculate()
   For Each c In Range("C6:C10").Cells
      If c.Value = "X" And c.Offset(, 1).Value = "" Then c.Offset(, 1).Value = Data
   Next
End Sub
 
@Cow 18

Alvast bedankt voor de snelle reactie.
Als ik deze goed begrijp zou de waarde "X" gezocht worden in de range C6 tot C10 en dan de datum moeten wegschrijven in de cel ernaast als deze leeg is.
Ik ben geen kenner van VBA en probeer hieruit ook zoveel mogelijk te leren.

Ik heb deze code geplaatst onder VBAProject- This workbook.
Deze gesaved- gesloten- heel de map opnieuw opgeslagen. Geopende maar ik zie helemaal geen datums verschijnen.
Waar ga ik in de fout?? Heb geprobeerd toe te passen op de file die ook mee geupload is.
 
Die staat net in hetzelfde werkblad als je change-event.
Dus rechtsklikken op het tabje van "blad1" en "programmacode weergeven" of iedere ander manier om in bladmodule van "bald1" te komen.
Dan deze macro weghalen uit thisworkbook, want die doet daar niets, en hem hier neerzetten.
Dan bovenin die change-event alles van de C-kolom eruit halen.

De rest had je goed geraden.
 
@Cow 18

Ofwel ben ik te dom om dit uit te voeren of zou het misschien kunnen dat er in mijn excel andere dingen gebeuren.
Heb al wel ergens gelezen dat sommige code zich anders kan gaan gedragen naargelang de gebruikte office versie.

Ik heb nu gewoon een blanco excel workbook genomen met 1 blad. Om te vermijden dat er ook maar ergens iets kan staan wat er niet thuis hoort.
Rechts klik op blad 1 programmacode weergeven
jouw code geplakt degelijk in blad 1.
Save - close - Save file(xlsm) - close
File open - waarschuwing om macro's te enablen- enabled.
Ik ga ervan uit als ik nu in de opgegeven range een X (caps lock) ingeef de datum in kolom D zou moeten verschijnen.
Niet met grote x niet met kleine x helemaal niets

Ik blijf hopen dat het degelijk aan mij ligt en niet dat de aangeboden oplossing niet zou werken met excel 2016

Nog eens bijgevoegd de file waar nu enkel en alleen jouw code in staat.
 

Bijlagen

@Cow18; @VenA

Bedankt voor de correctie,

Heb echter toch moeten wijzigen naar deze

Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Range("C1:C10").Cells
If c.Value = "1" And c.Offset(, 1).Value = "" Then c.Offset(, 1).Value = Date
Next
End Sub


Deze: Begrijp nog wel niet waarom deze niet wil werken

Private Sub Worksheet_Calculate()
For Each c In Range("C6:C10").Cells
If c.Value = "X" And c.Offset(, 1).Value = "" Then c.Offset(, 1).Value = Date
Next
End Sub

Bedankt voor alle hulp, ik kan weer verder..... me happy
 
lijkt me ook de beste oplossing
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan