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

Vinkjes om 0.00 uur weer uit......

  • Onderwerp starter Onderwerp starter Nicu
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Nicu

Gebruiker
Lid geworden
23 jan 2012
Berichten
222
Ik heb een formulier waarbij de vinkjes 's nachts om 0.00 weer automatisch gedeselecteerd moeten worden, dit formulier werkte op zich prima, maar nu met de nieuwere versie van office werkt het niet meer.
Onderstaand had ik in "thisworkbook" staan. Wat is hieraan nu mis?

Private Sub Workbook_Open()
If Range("F341!AH2") < Date Then
Range("F341!AH3") = False
Range("F341!AH4") = False
Range("F341!AH5") = False
Range("F341!AH6") = False
Range("F341!AH7") = False
Range("F341!AH2") = Date
End If
End Sub



Groet,

Josh
 
De verwijzingen naar de cellen zijn bijzonder vreemd.
Een cel met de naam "F341!AH2" (let op de aanhalingstekens) en alle celnamen die daaronder staan, bestaan niet.
Misschien bedoel je: cel AH2 in het blad met de naam F341 . Dat kan wel, alhoewel ik het niet aanbevelenswaardig vind om een bladnaam de naam van een cel te geven. Als je het vetgedrukte bedoelt, dan kun je als macro gebruiken:
Code:
Private Sub Workbook_Open()
Dim cl As Integer
With Sheets("F341")
If .Range("AH2").Value < Date Then
.Range("AH2:AH7").ClearContents
.Range("AH2").Value = Date
For cl = 3 To 7
.Range("AH" & cl).Value = False
Next cl
End If
End With
End Sub
 
Laatst bewerkt:
Ik denk dat die rare verwijzing met het kopieren is gebeurd. Ik heb het nu vervangen metgeen jij hebt genoteerd en heb alles aangevinkt, ben benieuwd of het morgen dan gewist is. Ik laat het je weten, in ieder geval enorm bedankt voor je hulp!

Groet,

Josh
 
Dit lijkt mij iets beter:
Code:
Private Sub Workbook_Open()
Dim cl As Integer
With Sheets("F341")
.Range("AH3:AH7").ClearContents
If .Range("AH2").Value < Date Then
.Range("AH2").Value = Date
For cl = 3 To 7
.Range("AH" & cl).Value = False
Next cl
End If
End With
End Sub
 
Laatst bewerkt:
Ik ga ze beide proberen. Had vannacht de 1e geprobeerd, maar helaas had ik de verwijzing verkeerd gezet. Voor vannacht 0.00 nieuwe kansen ;-)

Heb nog wel een vraag hieraan gekoppeld: is het ook mogelijk om 2 getallen die in 2 verschillende cellen staan standaard op een bepaald tijdstip naar een tabel in een andere sheet te plaatsen (als een database, met de datum van die dag voor die 2 getallen), deze getallen kunnen wisselen per dag en moeten een overzicht geven van de bedbezetting op een afdeling.
Ben benieuwd of dit kan....
 
Je kunt best alleen de tweede macro gebruiken, want bij de eerste blijven de cellen onder AH2 op False staan ook als niet aan de voorwaarde is voldaan. Bij de tweede wordt False alleen weergegeven als aan de voorwaarde is voldaan, zoals het hoort. Is er niet aan voldaan, dan blijven de cellen onder AH2 blanco. Als je wil dat die dan TRUE worden, dan moet je dat laten weten.
Let op dat ik in de tweede macro aanvankelijk de A-kolom gebruikt had i.p.v. de AH-kolom. Dat heb ik nu aangepast.
 
Je kan de datum van je Pc ook even een dag vooruit zetten om te testen, hoef je niet zolang te wachten. ;)
 
@HSV: Goede opmerking, zo heb ik het ook getest.
Maar de datum in AH2 wijzigen kan ook om te testen.

@Nicu, op een bepaald tijdstip wat laten gebeuren (kopiëren bv. zoals je vraagt) kan met Application.OnTime.
Daar zijn op dit forum diverse voorbeelden van te vinden, even de zoekfunctie gebruiken of de helpfile in Excel.
 
Laatst bewerkt:
Slim, daar had ik effe niet aangedacht. Maar de 2e macro werkt inderdaad prima, ben er heel blij mee.

Ik ga zoeken op het forum, dank voor de zoekcriteria. Ben beniuwd wat het gaat brengen.....

Groet,

Josh
 
Help, ik heb nog een probleem. Ik heb nog wat nieuws toegevoegd aan mijn formulier, er moet data worden weggeschreven elke keer als ecxel wordt afgesloten, maar nu worden de vinkjes (die alleen 's nachts om 0.00 uit moeten gaan) ook elke keer gewist en dat is dus niet de bedoeling.
Ik heb gepoogd het document klein te maken, maar helaas toch nog te groot voor het forum https://www.wetransfer.com/downloads/7706c23d3805817fb1e46aadcb86ed4520151219212209/09ddb6735fda7273b989b9c993977c6620151219212209/5d5581
Ziet iemand wat er aan de hand is?
 
Hoi Nicu, hoe is het nu opgelost?
 
Ja dat is een goeie.... ik heb nu gewoon de eerste optie van Zapatr gebruikt ipv de 2e en dit werkte perfect. Tijd nog even aangepast naar 0.00 en no problemo, deed het keurig. Vannacht ga ik weer kijken of hij het in de praktijk ook nog zo goed doet.
 
Nu leek alles zo goed te werken, maar helaas toch nog een teleurstelling.
Als ik deze code gebruik wordt automatisch na elke keer afsluiten de vinkjes gewist ipv alleen na 0.00:
Code:
Private Sub Workbook_Open()
Dim cl As Integer
With Sheets("F341")
.Range("AI3:AI7").ClearContents
If .Range("AI2").Value < Date Then
.Range("AI2").Value = Date
For cl = 3 To 7
.Range("AI" & cl).Value = False
Next cl
End If
End With
End Sub

Als ik deze code gebruik dan blijven de vinkjes goed staan en worden ze gewist iets na 0.00 wat ook precies de bedoeling is. Alleen als het document een paar uur later ('s nachts) wordt geopend dan wordt er niet meer alsnog gewist. En dat is behoorlijk frustie. Hoe kan ik instellen (met application.ontime) dat als het document wordt geopend na 0.00 en voor 7.00 de vinkjes automatisch uitgaan.

Code:
Private Sub Workbook_Open()
 If Range("F341!AI2") < Date Then
 Range("F341!AI3") = False
 Range("F341!AI4") = False
 Range("F341!AI5") = False
 Range("F341!AI6") = False
 Range("F341!AI7") = False
 Range("F341!AI2") = Date
 End If
 End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan