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

Status
Niet open voor verdere reacties.

Paul-RT

Giga Honourable Senior Member †
Lid geworden
6 dec 2003
Berichten
10.886
In een facturering gemaakt in excel heb ik 1 cel met daarin de datum van de dag dat ik de factuur maak.
Dat doe ik middels =vandaag()
Gaat helemaal goed. Ik sla de factuur op en print deze uit.

Wanneer ik over een paar dagen dezelfde factuur wil inzien, wijzigd de datum dus weer mee.
Sluit ik de factuur, krijg ik dus een melding "Het document is gewijzigd, weet u zeker dat u wilt afsluiten zonder op te slaan?" Niet ok dus.
Ik kan dus achteraf lastig inzien hoe oud een factuur is, omdat de datum is gewijzigd zodra ik de factuur open.
(zelfde verhaal geldt voor auto-nummering van het factuur nummer)

Is er een macro knopje ofzo te maken, waarmee ik de factuur kan opslaan en vastleggen, zodat er geen formules worden her-berekend? Dus ook de datum niet?
Kan ik dat met een 2e knopje ernaast weer ongedaan krijgen? (als de factuur een fout bevat)

Tips zijn welkom.
 
Plaats je datum met "Ctrl + ;"

Om geen herberekeing te maken Extra > Opties > Berekenen > Handmatig aanvinken.

GiMe
 
De datum-cel staat al ingevuld, en die cel kom ik dus niet aan.
met Ctrl gaat dat dus niet werken.
Alle cellen waar ik niets te zoeken heb, staan geblokkeerd.
Datum, cel namen, lijnen, adres gegevens etc. De cellen kan ik niet aanklikken.

Als ik een lege factuur open, staat de datum reeds ingevoerd.
Dit is een dagelijkse handeling. Nieuwe factuur, klant selecteren uit een menu, aantal, omschrijving, prijs, manuren, save en print.
Seconden werk.
Moet dus niet iets handmatigs bijkomen.

Alle handmatige dingen kun je toch in een macro opnemen? Ik heb echter geen idee hoe.
 
Paul,

Kijk eens bij http://www.helpmij.nl/forum/showthread.php?t=280522. Hiermee haal ik alle formules uit een factuur voordat de factuur wordt opgeslagen, waardoor de datum gelijk blijft en eventuele latere prijswijzigingen in een artikelbestand geen invloed meer hebben op een gemaakte factuur. Wat er in feite gebeurt is: kopiëren en plakken speciaaal - waarden plakken.

Groet,
 
Ok, ik snap die bedoeling, en kan de code redelijk ontcijferen.
Echter, een wijziging maken in een factuur lukt dan niet meer, neem ik aan? Dan wordt het een nieuwe aanmaken?!
 
Paul,

Ik neem aan dat je factuur een template is.
Als je nu deze code achter je werkblad plaats:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Range("F4") = Range("F4").Value
End Sub
Waarin F4 de cel is waarin je =vadaag() functie staat.

Hier mee vervang je de functie door zijn eigen output in tekst formaat.
Zo kan je hem later geheel aanpassen alleen de datum blijft gelijk :).

Hou hierbij wel rekening mee dat je je template niet overschijft.
Deze zou je dan ook op niet scrijven moeten hebben staan.


Groet,
Ferenc
 
Paul,

Met die code haal ik alle links uit de factuur, die daarna gewoon als tekst bewerkbaar blijft. Met een artikelnummer worden namelijk de beschrijving en de prijs uit een artikelbestand gehaald. Zou ik die code niet uitvoeren dan leidt een prijswijziging in het artikelbestand tot een andere factuur dan de klant heeft ontvangen, dus hij kopieert en plakt speciaal de waarden. Uiterlijk en inhoudelijk wijzigt de factuur niet. Ik moet meer wijzigen, dus de code van Ferenc zou voor mijn toepassing te mager zijn.

Groet,
 
Laatst bewerkt:
Ok, in mijn factuur heb ik geen artikel nummers.
Wel een klantenbestand waaruit ik selecteer.
Die hoeven niet perse geblokkeerd, maar mag wel.

De factuur (orrigineel) is nog geen template.
Als ie helemaal op orde is, wordt ie dat wel.
Hij is wel "Alleen lezen".

Hoe en waar plaats ik jullie code?


Edit:
Cel B17: Offerte datum: Cel E17: =vandaag()
Cel B18: Offerte geldig t/m: Cel E18: =vandaag()+30

Voor beide cellen wil ik dezelfde beveiliging.
 
Laatst bewerkt:
Ok, ik snap die bedoeling, en kan de code redelijk ontcijferen.
Echter, een wijziging maken in een factuur lukt dan niet meer, neem ik aan? Dan wordt het een nieuwe aanmaken?!
paul,

bij ons in belgië is een factuur een factuur. als je deze wil wijzigen, moet je een creditnota maken voor de bestaande factuur en een nieuwe factuur maken.

steven
 
Arafy, bij ons in nederland ook hoor:p
Maar stel, ik maak een factuur, sla em op en print em uit.
En dan...... morgen ochtend.....Oei stommeling! Verkeerd bedrag en een regel vergeten!

Dan moet de bestaande factuur dus weer open, en die regel wijzigen.
Nogmaals printen en versturen, of afgeven als de klant weer langskomt.
Sanp je? Dus op de datum van gisteren.
De datum wordt neergezet als ik een nieuwe factuur (of offerte) aanmaak, en moet niet wijzigen als ik de factuur heropen of inzie.
 
paul, dan zou ik gewoon de suggestie van ferenc volgen: enkel de datum met plakken speciaal als waarde zetten.

steven
 
Code welke ik je heb gegeven kan je plaatsen op je werkblad.
Rechtermuisknop op je tabblad, kies voor: programma code weergeven en plakken maar.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Range("E17") = Range("E17").Value
    Range("E18") = Range("E18").Value
End Sub


Groet,
Ferenc
 
Demeter, Klopt het dat ik dan niets zie gebeuren?
In de betreffende cel blijft dezelfde formule staan.
Ik heb gedaan zoals je zegt.

Kan waarschijnlijk pas morgen zien of het werkt?
Of wanneer moet dit gaan werken?
 
Oeps mijn fout :o .

De code moet op het blad: this workbook.
Open de vbe (linker-alt + F11)
dubbel klik op de sheet this workbook
plak de code.

Deze code werkt alleen als je het blad opslaat.
Hierna zouden de formules vervangen moeten zijn.

Excuus voor het ongemak.


Groet,
Ferenc
 
Probeer dit eens voor de datum:

Code:
Private Sub Workbook_Open() 
If Sheets("Factuur").Range("B17") = "" Then 
    Sheets("Factuur").Range("B17") = Date 
End If 
End Sub

Bij het terug openen word er gezien naar cel B17 maar er staat al iets in nl de datum.
Moest er niets in de cel staan word er de huidige datum in gezet.


Pierre
 
Laatst bewerkt:
Bij het terug openen word er gezien naar cel B17 maar er staat al iets in nl de datum.
Bij het aanmaken van het kale lege blad, staat er al een datum, dus de cel is niet leeg bij een template opslaan.
Zal dus niet gaan werken ?!

Ik probeer straks de code van demeter nogmaals.
 
Paul,

Code van jpvs kijkt bij het OPENEN van je werkblad of er al een datum staat ingevuld.
Bestaat deze al dan gebeurt er niks.
Maar is deze lege leeg dan wordt de datum van vandaag ingevoerd.


Groet,
Ferenc
 
Precies, en bij het creeren van het werkblad, staat er al een datum.
Dus bij het openen van een lege factuur dus ook.....
Of zit ik nu mis?

@ Demeter, helaas kan ik het niet helemaal openen zoasl je verteld.
Als ik linker alt + F11 doe, krijg ik een leeg blad VB.
Even zoeken leverde een plek waar ik de code kan plakken. "Invoegen / Module".
Daar de code geplakt, opgeslagen.
Helaas, er wijzigd niets aan de formule "=vandaag()" in cel E17.
P.s., ik draai met Office Excel 2003 full prof NL.
 
Laatst bewerkt:
@ JPvs,

Waar en hoe pas ik jou code toe?
Ik ben 99,9% leek met vb.
 
@ JPvs,

Waar en hoe pas ik jou code toe?
Ik ben 99,9% leek met vb.

Open de VBA editor met Alt-F11. Localiseer je bestandsnaam in de project explorer. Dubbelklik erop. Dubbelklik op ThisWorkbook. Plak de code. Sluit af met nog eens Alt-F11.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan