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

Datum mag niet veranderen

Status
Niet open voor verdere reacties.

rikkie52

Gebruiker
Lid geworden
10 jun 2008
Berichten
46
Kan iemand eens kijken naar bijgevoegd bestand. Met hulp van Rudi ben ik al ver gekomen om bestanden te koppelen en nu heb ik zelf iets geprutst om als je het bestand opent in werkblad "Inspectieplan" in cel AI3 de huidige datum te krijgen. Na opslaan onder een andere naam mag na het heropenen deze datum niet veranderen maar dat doet het dus wel. In VBA heb ik het volgend staan:

Sub Worksheet_Open()
If Sheets("Inspectieplan").Range("AI3") = "" Then Sheets("Inspectieplan").Range("AI3") = Date
End If
End Sub

Wat is hier niet goed?

MvG
Erik
 

Bijlagen

De END.. IF is niet nodig.
Je schrijft: Na opslaan onder een andere naam.
Ik zou dat gebruiken bij het opstarten. Bijv.:

Code:
Sub Worksheet_Open()
If ThisWorkbook.Name="Helpmij.xls" Then 
       Sheets("Inspectieplan").Range("AI3") = Date
End If
End Sub

Met vriendelijke groet,


Roncancio
 
En dan verandert iedere keer dat je het bestand opent de datum in die cel keuzig in de datum van 'vandaag'.
Was niet de bedoeling dacht ik.
 
Roncancio,

is dit dan de enige mogelijkheid? De nieuwe naam van het bestand is namelijk altijd anders en verwijst naar het Plantnummer in cel AI5 en wordt dan in dit geval "Inspectieplan E4261B.xls". Zoals je ziet kan je in cel AI5 uit meerdere plantnummer kiezen waarbij de cellen in de kolom"Inspectie Activiteit" veranderen. Zou je bv. in de code een formule opnemen die verwijst naar cel AI5.

Sub Worksheet_Open()
If ThisWorkbook.Name="(="AI5").xls" Then
Sheets("Inspectieplan").Range("AI3") = Date
End If
End Sub


MvG
Erik
 
zet in de datumcel (bijv. A13)

=Vandaag()

voordat je opslaat
[Blad1!A13].value=[Blad1!A13].value

Dan is de formule vervangen door de datum uit de formule en staat vast.
 
Dan zou het zo kunnen.

Code:
Sub Worksheet_Open()
If ThisWorkbook.Name= Sheets("Inspectieplan").Range("AI5")&".xls" Then 
       Sheets("Inspectieplan").Range("AI3") = Date
End If
End Sub
Als de naam van het bestand gelijk is aan wat er in cel AI5 staat, dan wordt de datum vandaag in cel AI3 geplaatst.
Is het Plantnummer een uniek nummer?

Met vriendelijke groet,


Roncancio
 
Ja, het plantnummer is een uniek nummer.
Bedankt voor jullie reacties ik ga e.e.a. aanpassen en zie naar morgen uit!

Erik
 
helaas helaas. Ik heb het bestand (zie bijlage) de naam gegeven van cel AI5 maar bij het openen en updaten versprong de datum naar die van vandaag. kan iemand er nog eens naar kijken?

mvg
Erik
 

Bijlagen

Bij het openen van het bestand krijg ik een foutmelding.
Kan je het zippen ?

Met vriendelijke groet,


Roncancio
 
Erik, de datum wordt nu enkel omgezet naar de huidige datum indien je het Plantnummer wijzigt. Bij het opslaan onder een andere naam wordt de datum vastgezet en blijft deze onveranderd zolang je het Plantnummer niet wijzigt. Is dit de bedoeling ?

Mvg

Rudi
 

Bijlagen

Roncancio, hierbij nog een keer het bestand

Ruud, ik zou het graag zo willen hebben: In cel AI5 kies je het plantnummer waardoor de kolom onder "Inspectieactiviteiten" wordt gevuld. Daarna wordt het bestand opgeslagen onder de -logische- naam gelijk aan "cel AI5", dus E4261-B.xls. Hierna wordt het bestand handmatig verder ingevuld, o.a. kolom W, AJ en AM. Hierbij mag dus de datum in AI3 niet meer veranderen


Snb: gaarne uitleg bij "voordat je opslaat [Blad1!A13].value=[Blad1!A13].value. Waar moet dit ingevuld worden? Als dit telkens moet gebeuren voor het opslaan van elk inspectieplan is het meer werk dan bv. de datum in cel AI3 handmatig in te vullen


MvG

Erik
 

Bijlagen

In de gebeurtenisprocedure van de module ThisWorkbook

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  [Blad1!A13].value=[Blad1!A13].value
End Sub

En als je ervoor zorgt dat cel A13 leeg is, voordat het bestand voor de eerste keer wordt opgeslagen is dit een alternatief:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  if [Blad1!A13].value="" then [Blad1!A13].value=format(date,"dd-mm-yyyy")
End Sub
 
Laatst bewerkt:
beste snb en anderen

ik heb beide methoden geprobeerd maar zonder succes. Ik heb 2 bijlagen bijgevoegd met jouw beschreven methodes: methode 1 snb en methode 2 snb (met het lege datumveld). Als je in bijlage methode 1 een tagnr kiest in cel AI5 en het vervolgens opslaat als "tagnr".xls dan verandert de datum de volgende dag na het updaten weer. Je ziet na "enable macros" en "update" de datum veranderen. Bij methode 2 heb ik cel AI3 leeg gemaakt (wel cel format datum gekozen) maar deze cel blijft ook leeg als je het bestand opslaat onder het gekozen Tagnr. in cel AI5 en het vervolgens opent (dan zou toch de datum moeten verschijnen?) Wat doe ik verkeerd?

MvG
Erik
 

Bijlagen

Erik, in bijgevoegd bestand wijzigt de datum nog enkel als je een ander plantnummer kiest en dan opslaat onder de nieuwe naam, maw als je een nieuw inspectieplan aanmaakt. Anders blijft bij het openen van het bestand de datum bij andere aanpassingen ongewijzigd. Open bijgevoegd bestand en kijk naar de datum.

Mvg

Rudi
 

Bijlagen

Het is wel handig als je de gebeurtenisprocedure van een werkboek ook in de module van dat werkboek zet.
Je hebt nu de werkboek gebeurtenisprocedure in de module van het werkblad staan.
Ergo:

Zet
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  [Inspectieplan!AI3].Value = [Inspectieplan!AI3].Value
End Sub
In de module ThisWorkbook
Dan loopt het als een zonnetje.
Bij de ander methode heb je waarschijnlijk dezelfde vergissing gemaakt.
 
@snb Dan heb je waarschijnlijk mijn bestand niet geopend :p:p

Mvg

Rudi
 
In mijn reaktie reageerde ik op het signaal van rikkie52.
Natuurlijk heb ik niets aan te merken op de fraaie oplossing van Rudi.
 
Inderdaad snb hier heb ik niet aan gedacht (heeft te maken met mijn beperkte kennis van excel ;). Heb nu 3 goede oplossingen waarvoor dank aan jullie. Vraag wordt gesloten

Erik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan