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

Als eerdere datum kleiner is dan vandaag, dan macro starten werk niet.

Status
Niet open voor verdere reacties.

samabert

Gebruiker
Lid geworden
27 mrt 2010
Berichten
308
Hallo forumleden,

Ik heb een werkboek (uitgeklede versie) waarin werkblad “logbook-today” opmerkingen ingeschreven worden.
Tijdens de nacht, om 00:01 wordt de inhoud van logbook-today gekopieerd naar een volgend werkblad, Logbook_previous_days.

Wat correct werkt is:

Als het werkboek open staat wordt er netjes om 00:01 gekopieerd naar het tweede blad, datum (A2) in logbook-today wordt aangepast naar de datum vandaag. De inhoud wordt gewist en in gedefinieerde namen wordt de waarde van de laatste keer gekopieerd aangepast.
Als je de macro in module VerplaatsData “kopie” laat draaien, deze werkt op zich ook helemaal correct.


Probleem:

Als het werkboek gesloten is en het wordt geopend de volgende dag na middernacht (na 00:01) zou er dus direct moeten gekopieerd worden, want (IF x < y Then kopie), dit werkt niet.
De datum wordt wel gewijzigd naar datum vandaag in cel A2 en in gedefinieerde namen (laatsteKeerGekopieerd) wordt de waarde aangepast.
Code:
  Private Sub Workbook_Open()


    x1 = Split(ThisWorkbook.Names("LaatsteKeerGekopieerd"), Chr(34))
    On Error GoTo errhandler
    x = DateValue(x1(1))
errhandler:
    If Err.Number = 9 Then x = Right(x1(0), Len(x1(0)) - 1)


    y = DateValue(Date)

    If x < y Then Call kopie  'Laatste keer gekopieerd was op een andere dag, dan direkt kopieren
                               'Deze regel werkt niet

    Application.OnTime TimeValue("00:01:00"), "kopie"       'Anders klaarzetten tegen volgende middernacht
                                                            'Deze regel werkt

    '========toegevoegd om datum te plaatsen===========
    With Sheets("Logbook-today")

        '.Unprotect Password:="123"

        '.Range("A1:A4").Locked = False
        .Range("A2").Value = Format(Date, "dd/mm/yyyy")
        .Range("A1").Value = Format(Date, "mmmm")
        .Range("A4").Value = Format(Date, "dd/mm/yyyy")


        '.Protect Password:="123"

    End With
    '=========================================
    Worksheets("Logbook-today").Activate

    'Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)"    'Toolbar invisible maken
    'Call TimeSetting



End Sub
Maar de waarden in range (A1:V24) zouden mee gekopieerd moeten worden naar blad Logbook_previous_days , dit via de macro kopie, blijven staan.

Ik vermoed dat het in de code Private Sub Workbook_Open fout loopt. Deze code heb ik op het forum gekregen maar het project heeft lang stilgelegen.
Graag jullie hulp.

Alvast bedankt
Marc
 

Bijlagen

Jij vergelijkt tekst met getal.
Code:
If CLng(x) < CLng(y)
 
HSV, bedankt voor de oplossing.

Hier heb ik weer iets bijgeleerd.
Ik ga het verder testen en hou je op de hoogte.

Marc
 
Ondertussen enkele keren getest, alles is in orde. :thumb:
Harry, nogmaals bedankt voor de oplossing.

Marc
 
Mooi zo,

Graag gedaan Marc.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan