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

Bij openen van bestand een cel vullen met waarde

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

Fubi

Gebruiker
Lid geworden
19 feb 2004
Berichten
39
Is het mogelijk om bij het openen van een bestand (alleen lezen) deze functie uit te voeren en in Cel D2 te plaatsen ?

Function Dagcode(dag)
l = Year(dag) - 2000: 'Jaarcode

'Berekening dagcode
If DateValue(Year(dag) + 1 & "-1-1") - DateValue(Year(dag) & "-1-1") > 365 Then
If Month(dag) > 2 Then k = 1 Else k = 0
Else
k = 0
End If

If dag = DateValue(Year(dag) & "-2-29") Then
Dagcode = 366
Else
Dagcode = Int(dag) - DateValue(Year(dag) - 1 & "-12-31") - k
End If

'Berekening uurcode
m = Hour(dag)
If Weekday(dag, 2) > 5 Then
If Hour(dag) >= 6 And Hour(dag) < 18 Then m = "A" Else m = "C"
Else
If Hour(dag) < 6 Then m = "C"
If Hour(dag) >= 6 And Hour(dag) < 14 Then m = "A"
If Hour(dag) >= 14 And Hour(dag) < 22 Then m = "B"
If Hour(dag) >= 22 Then m = "C"
End If

'Samenstelling dagcode
Dagcode = "L" & l & Format(Dagcode, "0") & 3 & m
End Function


Zodat als je het bestand opent hij automatisch in D2 de Dagcode invult ?
 
Hoi Fubi,

Sorry, vraag denk ik niet goed begrepen.

In D2 gewoon =dagcode(nu())

Jeroen
 
probleem is dat =dagcode(nu()) vervangen moet worden door de effectieve code.

Dus D2 wordt L41233B ipv =dagcode(nu())
 
Geen functie (waarom zou je?), maar gewoon een macro uitvoeren als de werkmap wordt geopend.
Om het duidelijk te houden heb ik zo veel mogelijk je eigen vorm gehandhaafd. Ik ben er overigens niet zeker van of ik helemaal heb begrepen wat je bedoelt.

Private Sub workbook_open()
Dim I As Integer, dagcode As String, m As String, u As Integer
dagcode = Date - CDate("12/31/" & Year(Date) - 1)
If Year(Date) Mod 4 = 0 Then
If Month(Date) > 2 Then dagcode = dagcode - 1
If Date = CDate("02/29/" & Year(Date)) Then dagcode = 366
End If
m = "C"
u = Hour(Time)
If u >= 6 And u < 14 Then m = "A"
If u >= 14 And u < 22 Then m = "B"
If Weekday(Date, 2) > 5 Then
If u >= 6 And u < 18 Then
m = "A"
Else: m = "C"
End If
End If
I = Year(Date) - 2000
Worksheets(1).Range("D2").Value = "L" & I & dagcode & 3 & m
End Sub

Bedenk wel dat de dagcode kan wijzigen als je de werkmap (opnieuw) opent. Maar dat zal waarschijnlijk ook de bedoeling zijn...(?)

fra
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan