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

Automatisch data aanpassen m.b.v. VBA

Status
Niet open voor verdere reacties.

steponthegas

Gebruiker
Lid geworden
26 aug 2015
Berichten
6
Hallo iedereen

Ik heb in mijn Excel-file een kolom met een bepaalde datum (van de controle van een bepaald product), dan een kolom met het aantal maanden tot de nieuwe controle en dan een kolom met de datum van de nieuwe controle (gebaseerd op dat aantal maanden). Het is me al gelukt om automatisch de datum van de nieuwe controle te laten bepalen. Maar nu vraag ik me af of het mogelijk is om ervoor te zorgen dat, als de datum van de nieuwe controle verstreken is, de datum van de vorige controle wordt vervangen door die van de laatste en dat de datum voor de volgende controle dan ook weer automatisch aangepast wordt (in dezelfde kolom telkens?).

In de voorbeeldfile zien jullie dus die drie kolommen. In het tweede geval is de datum van de volgende controle nog niet voorbij, dus daar is eigenlijk niks aan de hand. In het eerste geval is die datum wel al voorbij, dus ik zou willen dat die datum automatisch op de plaats van de datum van de vorige controle komt en automatisch een nieuwe datum op de plek van de volgende controle.

Blijkbaar kan dit met VBA, maar kan iemand me uitleggen/tonen hoe het dan precies moet?

Alvast bedankt.

Groeten
Steponthegas
 

Bijlagen

  • Voorbeeld.xlsx
    8,5 KB · Weergaven: 49
let wel op als je deze sub laat draaien dat hij altijd maar 1 keer verder gaat.
terwijl het na bepaalde tijd soms meerdere keren nodig zou kunnen zijn.
 
VenA, ik wou graag een concreet voorbeeld als antwoord op mijn vraag (waarvoor trouwens bedankt, u heeft me perfect geholpen!), maar op mijn andere vraag leek ik niet echt repons meer te krijgen. Ik vond niet hoe ik die vraag kon verwijderen.

sylvester-ponte, dank u voor de tip!
 
@sylvester-ponte, Ik begrijp jouw opmerking/aanvulling niet.

De code kan toch onder een knop of een Worksheet_Activate geplaatst worden? Zelf zou ik het nooit op deze manier opzetten omdat je niet weet of de controle uitgevoerd is.;)
 
@VenA, dat bedacht ik me ook daarnet. Je weet idd niet of de controle al dan niet uitgevoerd is. Dat zit me nog een beetje dwars, hoe ik dat eventueel zou kunnen oplossen.
 
Ik zou een kolom toevoegen met daarin de datum dat het daadwerkelijk uitgevoerd is. En obv hiervan de berekening starten. Als de controle is uitgevoerd dit wegschrijven naar een andere tab en de datum voor de nieuwe controle weer in kolom a zetten.
 
@sylvester-ponte, Ik begrijp jouw opmerking/aanvulling niet.

De code kan toch onder een knop of een Worksheet_Activate geplaatst worden? Zelf zou ik het nooit op deze manier opzetten omdat je niet weet of de controle uitgevoerd is.;)

wat ik bedoel:
nu is het verschil 12 maanden. 2de kolom.
stel dat de sub wordt geactiveerd door Worksheet_Activate.
en stel dat het interval bvb op 1 maand wordt gezet, en je de computer pas na 3,5 maanden aan zet (lange vakantie).
dan wordt de sub maar 1 keer uitgevoerd.
terwijl de sub pas na 3 maal uitvoeren op de juiste tijd uit komt.
 
Waar krijg je zo'n lange vakantie?:shocked:

Stel ik gooi de pc in het water. Stel ik open Excel nooit meer. Stel ik open Excel wel maar het bestandje nooit meer. Heb je hier een oplossing voor?:D
 
ja ja.
maar nu werk je toevallig met maanden.
de volgende keer werk je met dagen......
het gaat om het idee .
als je de code iets aanpast gaat het altijd goed
Code:
Sub VenA()
For Each cl In Columns(3).SpecialCells(-4123)
    do until cl.Value > Date: cl.Offset(, -2) = cl.Value : loop
Next cl
End Sub
 
Ik denk dat we langs elkaar heen babbelen. Maar ik het geen idee waarom je de lus eromheen gemaakt hebt? :confused:
 
VenA, volgens mij snap jij het best wel.

die loop is om na een (te lange vakantie) eventueel in meerdere stappen de begindatum aan te passen.
 
Nu wel. Gisteren blijkbaar met de gedachten ergens anders.:d
 
Formule voor kolom C:
Code:
=zelfde.dag(a2;b2)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan