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

Bestand doorlopend factuurnummer/aanpassen naam (Hans 123?)

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

emc

Gebruiker
Lid geworden
21 jan 2003
Berichten
450
Hallo Hans,

Enige tijd geleden heb je mij fantastisch geholpen met de excel factuur, waarbij het factuurnummer automatisch moet doortellen (Zie eerdere topic). Graag zou ik een wijziging willen aanbrengen in hoe het bestand wordt opgeslagen. Nu slaat hij op onder factuurnummer, maar ik zou daar de naam van de betreffende klant aan toe willen voegen. Deze wordt weergegeven in cel b2 (tenminse daar staat een verwijzing naar de adreslijst, waardoor de naam van de klant te zien is. Volgens mij moet ik het in onderstaande stukje aanpassen, maar hoe? Kun jij mij nogmaals helpen?

bestand = pad & Jaar & Maand & "-" & factuurnummer
bericht = "Bestand wordt opgeslagen als:" & Chr(10) & bestand & Chr(10) & "Is dit correct ?"
naam_ok = MsgBox(bericht, vbYesNo)


Groeten, emc
 
Als je nu met "Naam" -> "Definieren" aan cel B2 de naam geeft bijv. "Klant"

En dan in je macro de tekst "factuurnummer" vervangen door "klant", dan moet het mijns inziens goed gaan...
 
Nee, visiplan, dat zal zo niet werken...


Mijn idee. Probeer dit eens.

Je zal een variabele 'klant' moeten definiëren (op voorwaarde dat je die nog niet hebt natuurlijk). Dit plaats je gewoon bij de andere 'Dim's'.

Dim klant as String

Vervolgens moet je de waarde van cel B2 in die variabele 'klant' stoppen. Dit doe je met volgende code:

klant = cells(1,2).Value


Vervolgens pas je deze code aan:

bestand = pad & Jaar & Maand & "-" & factuurnummer & "-" & klant

natuurlijk zoals jij het wil.
 
Maglor,

Ik kom er niet helemaal uit. Ik weet niet wat dim's en strings zijn. Destijds heeft Hans de totale formule opgebouwd en die heb ik gekopieerd. Ik kan sommige dingen herleiden, maar de meeste niet. De Factuur heb ik bijgevoegd, dan kun je kijekn hoe hij is opgebouwd.
 
Maglor,

Ik kom er niet helemaal uit. Ik weet niet wat dim's en strings zijn. Destijds heeft Hans de totale formule opgebouwd en die heb ik gekopieerd. Ik kan sommige dingen herleiden, maar de meeste niet. De Factuur heb ik bijgevoegd, dan kun je kijken hoe hij is opgebouwd.
 
Probeer nog eens opnieuw om het eraan te hangen? Bedankt!
 
emc,

Het stuk van Maglor is volledig juist en zal zeker werken.
Waarschijnlijk programmeert Maglor netter dan ik en declareert hij alle variabelen netjes.
Aangezien ik de overige variabelen ook niet gedeclareerd heb kun je het deel over dim's en strings overslaan. Dus dan blijft uit Maglor's post het volgende over:



klant = cells(2,2).Value

Vervolgens pas je deze code aan:

bestand = pad & Jaar & Maand & "-" & factuurnummer & "-" & klant

natuurlijk zoals jij het wil.
 
Hoi Hans, het aanpassen is inderdaad gelukt, echter nog de volgende problemen:

Als ik de standaard factuur opstart en 30 facturen achter elkaar maak telt hij netjes door. Sluit ik vervolgens alles af en open daarna weer de standaard factuur dan staat hij weer op 00001 in plaats van 00031. In de eerdere topic gebeurde dat ook en hebben we het uiteindelijk opgelost, maar ik kom er, ook met de antwoorden uit de eerdere topic, wederom niet uit.

Daarnaast wil ik wat veranderen, ik zou graag het voorloopfactuurnummer willen aanpassen. Nu geeft dat het jaar weer, maar eigenlijk zou ik jaar en maand willen dan zou het dus zo worden:
Jaar 2005
Maand 04
Factuurnummer 0000

In het bestand heb ik al e.e.a. aangepast, maar ik loop tegen de volgende dingen aan:
Bij maand wil ik verwijzen naar de datum in cel a7, Weet jij of ik de maandverwijzing altijd met 2 decimalen kan laten weergeven, dus 04 voor april? Ik kan wel ("0" & =maand) als formule aangeven, maar dan moet ik dat in oktober weer aanpassen.

Het factuurnummer zou uit 4 decimalen mogen bestaan in plaats van 5, ik heb dit proberen aan te passen;
Factuurnummer
factuurnummer = CInt(factuurnummer) + 1
If factuurnummer < 10 Then
factuurnummer = "000" & factuurnummer
ElseIf factuurnummer < 100 Then
factuurnummer = "00" & factuurnummer
ElseIf factuurnummer < 1000 Then
factuurnummer = "0" & factuurnummer
End If

Teller
For teller = 1 To 9000
If teller < 10 Then
t = "0000" & teller
ElseIf teller < 100 Then
t = "000" & teller
ElseIf teller < 1000 Then
t = "00" & teller
ElseIf teller < 10000 Then
t = "0" & teller
Else
t = teller
End If

Nu is dat gelukt met de nummers vanaf 0002, maar als ik het bestand open staat het factuurnummer weer op 5 decimalen. Dit kan te maken hebben met het eerder genoemd probleem dat wanneer ik de standaard factuur open hij weer terug gaat naar 00001, en daarmee automatisch ook naar 5 decimalen (want bij het doortellen gaat hij weer terug naar 4 decimalen). Of moet ik de regels "ElseIf factuurnummer < 1000 Then factuurnum-mer = "0" & factuurnummer" en "ElseIf teller < 10000 Then t = "0" & teller" soms ook weghalen?

Ik voeg de nieuwe factuur bij, en ben je wederom zeer erkentelijk!

Alvast bedankt, emc.
 
emc,

Door de naam op te nemen in je bestandsnaam wordt het wat lastiger om te bepalen wat de laatste factuur is, hier kom ik wel uit.

Momenteel ben ik een beetje druk waardoor het even kan duren voordat ik het af heb, maar ik heb er vertrouwen in dat het gaat lukken !!
 
Hans,
overigens was het probleem met het doortellen van het factuurnummer al voor ik de naam aanpaste.
groetjes, emc
 
Kan kloppen, heeft te maken met het aantal cijfers van je factuurnummer, deze had je waarschijnlijk al aangepast.

nog 1 vraagje, wil je elke maand opnieuw beginnen met nummeren van je factuur of doornummeren?
 
Hoi Hans,

Het is de bedoeling dat het factuurnummer gewoon doorloopt, dus niet elke maand opnieuw begint.

Groetjes, emc
 
emc,

ging sneller dan verwacht, hopelijk werkt het ook.

Om makkelijk te zien wat het laatst gebruikte factuurnummer is, wordt er een tekstbestand aangemaakt waarin dit nummer staat.Dit tekstbestand zal zeer klein zijn en staat in dezelfde directory als je facturen. Als je hier niet mee kan leven hoor ik het wel, dan maak ik hier wat anders van, wordt dan wel minder eenvoudig. Kijk maar eens of het bestand werkt.
 

Bijlagen

Hoi Hans,

Het werkt allemaal, ik zag dat je ook de datum hebt aangepast en dat dat in de facturen zelf dan niet verandert. Ik ben helemaal gelukkig, dank je wel!!

Groetjes, emc.
 
Nog een kleine toevoeging, als je het scherm niet wil laten bewegen tijdens het opslaan voeg dan dit toe aan de macro :

Application.ScreenUpdating = False

dus zo :
Sub opslaan()
Application.ScreenUpdating = False
dit_werkblad = ActiveWorkbook.Name ...

Deze zorgt er voor dat uw computerscherm ververst wordt op het eind van de macro.

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