Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Excel] functie VANDAAG

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in de cel A2 de datum van vandaag invullen als de cel A1 ingevuld wordt. Dit doe ik d.m.v. de volgende functie in de cel A2: ALS(A1="";"";VANDAAG())

Probleem is dat telkens ik het werkblad open de datums terug ververst worden. Dat is niet de bedoeling. De datum moet blijven staan op de waarde zoals hij het eerst werd ingevuld.

Hoe kan ik dit voor mekaar krijgen?

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 20:34

Haan

dotnetter

Je zou dan moeten checken of je cel A2 al gevuld is (met de ISLEEG functie), zo nee zet je de datum van vandaag erin, anders doe je niets.

dat is volgens mij niet echt een oplossing voor je probleem..

Je kan A2 wel kunnen vullen met wat VBA code, zodat er geen formule staat, maar gewoon een datum, die zal dan nooit meer wijzigen

[ Voor 53% gewijzigd door Haan op 19-08-2009 10:56 ]

Kater? Eerst water, de rest komt later


  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Probleem is dan, hoe sla je hem op (zal wel als template gebruikt worden) zonder dat die cel is ingevuld? :)
Handigste is om de sheet wat verder te bekijken.
Met een macro het volgende doen:

Kijk in de sheet of een bepaalde cel is ingevuld die in alle omstandigheden ingevuld dient te worden en als die cel niet leeg is EN je datumcel is leeg, vul dan de waarde van VANDAAG() in je datumcel in.
Op deze manier voorkom je dat je bij het openen van je excel sheet direct een datum in die cel krijgt (en hem dus eigenlijk nooit zonder datum kan opslaan) EN je voorkomt dat de datum overschreven wordt aangezien de macro kijkt of het datumveld leeg is.

[ Voor 71% gewijzigd door Mental op 19-08-2009 11:02 ]


  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Voorbeeld vba:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    ' Test of het verplichte veld in de sheet leeg is
    If (Not Worksheets("Sheet1").Range("A4").Value = "") Then
        
        ' Test of het datumveld in de sheet leeg is
        If (Worksheets("Sheet1").Range("A2").Value = "") Then
            
            ' Als het verplichte veld NIET leeg is en het Datum veld wel,
            ' vul dan de huidige datum in het datum veld in.
            Worksheets("Sheet1").Range("A2").Value = Now
        
        End If
    End If
End Sub


Waar A2 het veld is waar de datum in moet komen en A4 een veld is wat ingevuld moet worden voordat de datum uberhaubt verschijnt.
Als de datum eenmaal is ingevuld in A2 zal hij bij heropenen dat niet nog een keer doen, dat gebeurt pas op het moment dat A4 leeggemaakt is en weer gevuld is.
(Vertalen kan nodig zijn aangezien ik in de engelse office werk)

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23:42
L4m0r schreef op woensdag 19 augustus 2009 @ 11:37:

(Vertalen kan nodig zijn aangezien ik in de engelse office werk)
Nop, VBA is always in english.

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Bolukan schreef op woensdag 19 augustus 2009 @ 13:49:
[...]


Nop, VBA is always in english.
Ah ok, meeste doe ik niet met VBA maar gewoon formules in de cellen zelf.. daar moet je je wel netjes aan de taal houden :s

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:43

Reptile209

- gers -

L4m0r schreef op woensdag 19 augustus 2009 @ 11:37:
Voorbeeld vba:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    ' Test of het verplichte veld in de sheet leeg is
    If (Not Worksheets("Sheet1").Range("A4").Value = "") Then
        
        ' Test of het datumveld in de sheet leeg is
        If (Worksheets("Sheet1").Range("A2").Value = "") Then
            
            ' Als het verplichte veld NIET leeg is en het Datum veld wel,
            ' vul dan de huidige datum in het datum veld in.
            Worksheets("Sheet1").Range("A2").Value = Now
        
        End If
    End If
End Sub


Waar A2 het veld is waar de datum in moet komen en A4 een veld is wat ingevuld moet worden voordat de datum uberhaubt verschijnt.
Als de datum eenmaal is ingevuld in A2 zal hij bij heropenen dat niet nog een keer doen, dat gebeurt pas op het moment dat A4 leeggemaakt is en weer gevuld is.
(Vertalen kan nodig zijn aangezien ik in de engelse office werk)
En de leuke oefening voor de TS is: wat gebeurt er als ik dit vandaag in een sheet zet, en iets invul in A4 en opsla. En wat als ik dan morgen die sheet open en in cel B8 (B12 mag ook) "=1+1" invul. ;)
Hint: niet helemaal wat je zou verwachten of zou willen denk ik

Maar hiermee is TS al een aardig eind op weg. Vertalen is overigens niet nodig: VBA is taal-onafhankelijk, in tegenstelling tot de worksheet-functies. Alleen even Sheet1 in Blad1 veranderen.

Zo scherp als een voetbal!

Pagina: 1