Note: The other languages of the website are Google-translated. Back to English
English English
  • documenten
  • Excel
  • Hoe de datum in de cel automatisch te vullen wanneer de aangrenzende cel wordt bijgewerkt in Excel?

Hoe de datum in de cel automatisch te vullen wanneer de aangrenzende cel wordt bijgewerkt in Excel?

Soms, wanneer u een cel in een bepaalde kolom bijwerkt, wilt u misschien de laatste datum voor het bijwerken markeren. In dit artikel wordt een VBA-methode aanbevolen om dit probleem op te lossen. Wanneer de cel wordt bijgewerkt, wordt de aangrenzende cel onmiddellijk automatisch gevuld met de huidige datum.

Vul de huidige datum automatisch in de cel in wanneer de aangrenzende cel wordt bijgewerkt met VBA-code


Vul de huidige datum automatisch in de cel in wanneer de aangrenzende cel wordt bijgewerkt met VBA-code

Stel dat de gegevens die u nodig hebt om de lokalisaties in kolom B bij te werken, en wanneer cel in kolom B wordt bijgewerkt, wordt de huidige datum ingevuld in de aangrenzende cel van kolom A. Zie screenshot:

U kunt de volgende VBA-code uitvoeren om dit probleem op te lossen.

1. Klik met de rechtermuisknop op de bladtab die u nodig hebt om de datum automatisch in te vullen op basis van de aangrenzende bijgewerkte cel, en klik vervolgens op Bekijk code vanuit het rechtsklikmenu.

2. Kopieer en plak de onderstaande VBA-code in het codevenster in het venster Microsoft Visual Basic for Applications.

VBA-code: vul automatisch de huidige datum in een cel in wanneer de aangrenzende cel wordt bijgewerkt

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updated by Extendoffice 2017/10/12
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    If (Target.Count = 1) Then
        If (Not Application.Intersect(Target, Me.Range("B:B")) Is Nothing) Then _
            Target.Offset(0, -1) = Date
        Application.EnableEvents = False
        Set xRg = Application.Intersect(Target.Dependents, Me.Range("B:B"))
        If (Not xRg Is Nothing) Then
            For Each xCell In xRg
                xCell.Offset(0, -1) = Date
            Next
        End If
        Application.EnableEvents = True
    End If
End Sub

Opmerkingen:

1). In de code betekent B: B dat de bijgewerkte gegevens zich in kolom B bevinden.
2). -1 geeft aan dat de huidige datum wordt ingevuld in de linker kolom van kolom B. Als u wilt dat de huidige datum wordt ingevuld in kolom C, wijzig dan -1 in 1.

3. druk op anders + Q toetsen tegelijkertijd om de Microsoft Visual Basic voor toepassingen venster.

Vanaf nu wordt bij het bijwerken van cellen in kolom B de aangrenzende cel in kolom A onmiddellijk gevuld met de huidige datum. Zie screenshot:


Gerelateerde artikelen:


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met
80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan
    300
    krachtige functies
    . Ondersteunt Office/Excel
    2007-2019 en 365
    . Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functies
    30
    -dag gratis op proef. 60 dagen niet-goed-geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met
    50%
    , en vermindert elke dag honderden muisklikken voor u!
officetab onderkant
Comments (46)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Bedankt. Dit heeft veel geholpen. Maar wanneer ik een rij verwijder of een rij toevoeg, geeft dit een Runtime-fout 13 Type komt niet overeen. Hoe dit probleem aan te pakken. Verwacht zo snel mogelijk een terugval.
Deze opmerking is gemaakt door de moderator op de site
Beste Jishnu,
Het door u genoemde probleem doet zich in mijn geval niet voor. Zou u alstublieft uw Office-versie willen verstrekken?
Deze opmerking is gemaakt door de moderator op de site
Ik heb een set Excel-werkbladen met de titel maandag, dinsdag, woensdag, enz. Ik moet de begindatum op maandag in cel a1 zetten en de volgende datums voor dinsdag tot en met vrijdag in cel a1 op elk van die bladen laten invullen. Ik ben helemaal niet codevaardig, dus ik moet gewoon weten wat de eenvoudige formule is die ik daar kan invoeren. :) bedankt!
Deze opmerking is gemaakt door de moderator op de site
Beste Lea,
Je hoeft alleen maar de formule te gebruiken =maandag!A1+1 op bladdinsdag, =dinsdag!A1+1 op bladwoensdag enzovoort...
Deze opmerking is gemaakt door de moderator op de site
Kan dit worden bereikt op een cel die een formule bevat?
Deze opmerking is gemaakt door de moderator op de site
Beste Tammy,
De code is bijgewerkt. Het kan worden bereikt op een cel die nu een formule bevat. Bedankt voor je reactie.
Deze opmerking is gemaakt door de moderator op de site
Bedankt, het werkt prima, maar als het gaat om sluiten en opslaan, krijg ik een foutmelding dat de functie "VB-project" niet kan worden opgeslagen in een macro-vrije werkmap. Adviseer, alstublieft
Deze opmerking is gemaakt door de moderator op de site
Bedankt, het werkt prima, maar als het gaat om sluiten en opslaan, krijg ik een foutmelding dat de functie "VB-project" niet kan worden opgeslagen in een macro-vrije werkmap. Adviseer, alstublieft
Deze opmerking is gemaakt door de moderator op de site
U hoeft alleen maar te "opslaan als" een Excel-werkmap met macro's....
Deze opmerking is gemaakt door de moderator op de site
Kunt u deze functie twee keer op hetzelfde blad gebruiken? dat wil zeggen als ik gegevens in kolom B in kolom A met tijdstempel zou willen invoeren EN vermeldingen in kolom D in kolom C met tijdstempel zou willen plaatsen. Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Ik heb dit werkend gekregen door het volgende te doen:


Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
'Bijgewerkt door' Extendoffice 2017 / 10/ 12
Dim xRg als bereik, xCell als bereik
On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("B:B")) niets is) dan _
Target.Offset(0, -1) = Datum
Application.EnableEvents = False
Stel xRg = Application.Intersect(Target.Dependents, Me.Range("B:B")) in
Als (niet xRg is niets) dan
Voor elke xCell In xRg
xCell.Offset(0, -1) = Datum
Volgende
End If
Application.EnableEvents = Waar
End If


On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("D:D")) niets is) dan _
Target.Offset(0, -1) = Datum
Application.EnableEvents = False
Stel xRg = Application.Intersect(Target.Dependents, Me.Range("D:D")) in
Als (niet xRg is niets) dan
Voor elke xCell In xRg
xCell.Offset(0, -1) = Datum
Volgende
End If
Application.EnableEvents = Waar
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Kan iemand een code voorstellen voor wanneer ik het nummer invoer in kolom A en kolom B en in kolom CI een formule zoals kolom A + kolom B bewaarde. Nu heb ik een vba-code nodig die tijd en datum in kolom D kan geven wanneer kolom C verandert niet bij het invoegen van getallen in kolom A en B.
Deze opmerking is gemaakt door de moderator op de site
Good Day,
Heeft u een vraag over Excel, aarzel dan niet om op ons forum te posten: https://www.extendoffice.com/forum.html.
U krijgt meer ondersteuning over Excel van onze Excel-professional.
Deze opmerking is gemaakt door de moderator op de site
HI - nieuw voor VBA - ik wil de code herhalen - VBA-code: vul de huidige datum in een cel automatisch in wanneer de aangrenzende cel wordt bijgewerkt, zodat nadat een cel is bijgewerkt met een datum, ga dan verder om "J:J" te zeggen en update K met datum en doe dan nog 2 keer. Weet je niet zeker of het een lus is of voor? Dank u
Deze opmerking is gemaakt door de moderator op de site
Laat maar... Ik heb de reactie van John hieronder geprobeerd en het werkt - bedankt!
Deze opmerking is gemaakt door de moderator op de site
Ik heb deze code gebruikt om een ​​kolom automatisch te vullen en wil nu automatisch meer kolommen vullen op basis van de datum die in kolom H is ingevoerd. Met andere woorden, als een datum eenmaal is ingevoerd, kan ik kolommen automatisch invullen om datum 90, 60 en 30 dagen toe te voegen ?
Deze opmerking is gemaakt door de moderator op de site
Hallo Tracey,
De volgende VBA-code kan u helpen het probleem op te lossen. Probeer het alsjeblieft.

Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
Dim xRg als bereik, xCell als bereik
Dim xRgAddress als tekenreeks
xRgAddress = "H:H"
On Error Resume Next
Als (Target.count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range(xRgAddress)) niets is) dan
Target.Offset(0, 1) = Datum + 90
Target.Offset(0, 2) = Datum + 60
Target.Offset(0, 3) = Datum + 30
End If
Application.EnableEvents = False
Stel xRg = Application.Intersect(Target.Dependents, Me.Range(xRgAddress)) in
Als (niet xRg is niets) dan
Voor elke xCell In xRg
xCell.Offset(0, 1) = Datum + 90
xCell.Offset(0, 2) = Datum + 60
xCell.Offset(0, 3) = Datum + 30
Volgende
End If
Application.EnableEvents = Waar
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hoi. Ik probeer de "Huidige datum automatisch invullen in cel wanneer aangrenzende cel wordt bijgewerkt met VBA-code" te gebruiken. Dit werkt op blad 1, maar ik heb nog 11 andere bladen waarvoor ik de code nodig heb. Adviseer, alstublieft. Ik ben helemaal niet VBA-savvy, dus ik waardeer alle hulp die ik kan krijgen!

Bedankt.
Deze opmerking is gemaakt door de moderator op de site
Hallo Gwen,
Herhaal de stappen om de code naar andere bladen te kopiëren. Het is misschien omslachtig, maar het werkt.
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik heb wat hulp nodig. Ik probeer de huidige datum in kolom A in te vullen als cellen B tot en met N zijn gewijzigd. De offset houdt me tegen. Kan deze code worden geschreven om de datum in kolom A automatisch in te vullen?
Deze opmerking is gemaakt door de moderator op de site
Hi Joe,
De onderstaande VBA-code kan u helpen het probleem op te lossen. Probeer het alsjeblieft en bedankt voor je reactie.

Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
'Bijgewerkt door' Extendoffice 20190924
Dim xRg als bereik, xCell als bereik
Dim xInt als geheel getal
On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("B:N")) niets is) dan
Application.EnableEvents = False
xInt = Doel.Rij
Me.Bereik ("A" & xInt). Waarde = Datum
Application.EnableEvents = Waar
End If
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hallo, Kan ik de datum en tijd instellen om te vullen?
Deze opmerking is gemaakt door de moderator op de site
Hallo Abdij,
Vervang deze regel in de bovenstaande code:
"xCell.Offset(0, -1) = Datum"
die al met Countr werken
"xCell.Offset(0, -1) = Format(Now(), "jjjj-MM-dd uu:mm:ss")".
Hoop dat ik kan helpen. Bedankt voor je reactie.
Deze opmerking is gemaakt door de moderator op de site
dit voegde de tijd niet toe in ... is er een andere manier?
Deze opmerking is gemaakt door de moderator op de site
je moet het op 2 plaatsen veranderen, als je de originele code ziet, de datum staat op 2 plaatsen, verander beide met Format(Now(), "jjjj-MM-dd hh:mm:ss")
Deze opmerking is gemaakt door de moderator op de site
Hallo, is er een manier om kolom (A) automatisch te vullen met een datum bij het invoeren van een waarde in een cel in dezelfde rij?
Deze opmerking is gemaakt door de moderator op de site
Hoi Harry,
De onderstaande VBA-code kan u helpen het probleem op te lossen. Geef het bereik zoveel mogelijk op in de code. Bedankt voor je reactie.

Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
'Bijgewerkt door' Extendoffice 20191017
Dim xRg als bereik, xCell als bereik
Dim xInt als geheel getal
On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("B:BP")) niets is) dan
Application.EnableEvents = False
xInt = Doel.Rij
Me.Bereik ("A" & xInt). Waarde = Datum
Application.EnableEvents = Waar
End If
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
ik denk dat er ook een verandering nodig is in regel 7 ...
Deze opmerking is gemaakt door de moderator op de site
Weet iemand of er een manier is om automatisch in te vullen en te vergrendelen om te voorkomen dat de invoer de datum wijzigt? Als ik de cellen vergrendel en het document beveilig, worden de cellen helemaal niet gevuld.
Deze opmerking is gemaakt door de moderator op de site
Ik wil geen datum invoeren maar een constante waarde in de cel, bijvoorbeeld: een getal of een tekenreeks. stel de codewijzigingen voor hetzelfde voor.
Bedankt
Deze opmerking is gemaakt door de moderator op de site
Hallo, als je een nummer wilt invoeren, vervang dan de tekst Datum met de aantal direct in de code. Voor het invoeren van een tekenreeks, vervang de tekst Datum in de code met "je tekst string" (de dubbele aanhalingstekens zijn inbegrepen).
Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
'Bijgewerkt door' Extendoffice 2020 / 09/ 28
Dim xRg als bereik, xCell als bereik
On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("B:B")) niets is) dan _
Target.Offset(0, -1) = "een tekenreeks" 'Of voer direct een getal in
Application.EnableEvents = False
Stel xRg = Application.Intersect(Target.Dependents, Me.Range("B:B")) in
Als (niet xRg is niets) dan
Voor elke xCell In xRg
xCell.Offset(0, -1) = "een tekenreeks" 'Of voer direct een getal in
Volgende
End If
Application.EnableEvents = Waar
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Ik voer deze code in mijn Excel-werkmap in en er gebeurt niets. Kan iemand alsjeblieft helpen? In het ideale geval zou ik willen dat wanneer iets in kolom A wordt geplaatst, de tijd in kolom B wordt geplaatst.
Deze opmerking is gemaakt door de moderator op de site
Hallo chapo, probeer de onderstaande code. Hoop dat ik kan helpen. Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
'Bijgewerkt door' Extendoffice 2020 / 10/ 12
Dim xRg als bereik, xCell als bereik
On Error Resume Next
Als (Target.Count = 1) Dan
Als (Not Application.Intersect(Target, Me.Range("A:A")) niets is) dan _
Doel.Offset(0, 1) = Tijd
Application.EnableEvents = False
Stel xRg = Application.Intersect(Target.Dependents, Me.Range("A:A")) in
Als (niet xRg is niets) dan
Voor elke xCell In xRg
xCell.Offset(0, 1) = Tijd
Volgende
End If
Application.EnableEvents = Waar
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik gebruik uw code als referentie. Ik wil vragen of het mogelijk is om het volgende te hebben: 1. Voorkom dubbele datuminvoer2. Hebben de 2 macro-ingangen tegelijkertijd: Target.Offset(0,-1), Target,Offset(0,1)3. Mogelijk om automatisch een afbeelding in de cel in te voegen?
Ik probeerde het zelf uit te zoeken, maar ik kan geen bronnen online vinden die me kunnen helpen
Deze opmerking is gemaakt door de moderator op de site
Hallo, deze formule werkt geweldig. Is er echter een manier om in te stellen dat de cel in kolom A alleen wordt bijgewerkt als deze leeg is?  
Deze opmerking is gemaakt door de moderator op de site
Hoi Matt, Sorry, ik begrijp niet helemaal wat je bedoelt. Kun je proberen om specifieker te zijn over je vraag, of een screenshot geven van wat je probeert te doen?
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties

Volg ons

Copyright © 2009 - www.extendoffice.com. | Alle rechten voorbehouden. Aangedreven door ExtendOffice. | Sitemap
Microsoft en het Office-logo zijn handelsmerken of gedeponeerde handelsmerken van Microsoft Corporation in de Verenigde Staten en / of andere landen.
Beschermd door Sectigo SSL