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

automatisch nummer (ophogen) facturen

Status
Niet open voor verdere reacties.

tvkijker

Gebruiker
Lid geworden
3 mrt 2006
Berichten
125
Hallo ,

Ik heb eerlijk gezegd even voor 6 uur dit bericht al in een oude thread geplaatst die afgesloten was. Om mijn vraag toch wat meer onder de aandacht te brengen heb ik hem hier nu als nieuwe vraag gepost. Hopelijk vindt de moderator het goed.

Ik zou verder willen gaan met een draad uit januari. Het was voor mij de aanzet tot automatisch nummerenvan facturen, maar ik heb een paar problemen vooral met plaatsing. Ik krijg namelijk de foutcode dat er een vervolg verwacht wordt , maar ik weet met die opmerking niet goed raad. Ik wil door met de codes en txt fils van SNB , maar waar plaats ik deze codes? Ik heb ze nu eenvoudig als macro onder een opslag plaats gehangen, maar dan kreeg ik eerder genoemde error. M.a.w. Hoe initieer ik deze codes in mijn sheet (met een knop ?) of moet het anders ? En wat is dan tst (4) ook een knop ?

Groeten,
Dirk


Code:
Sub tst4()
Open "C:\20100001" For Output As #1
Close #1
End Sub
de opslaan-macro wordt dan:
Code:
Sub opslaan()
c0=dir("C:\" & year(date) & "*")
name "C:\" & c0 as "C:\" & c0 +1

With Thisworkbook
.sheets("Blad1").range("J5")=c0+1
.SaveAs "E:\fakturen\faktuur_" & c0+1 & ".xls" 
End With
Sub
 
Laatst bewerkt door een moderator:
Tst4 is de macro die je basisbestand aanmaakt in je C:\ directory. Deze gebruik je dus in het begin v/h jaar om je nummering te starten. Je Opslaan-macro heb ik getest en deze werkt perfect. Welke foutmelding krijg je, en op welke regel ?
Plaats de codes eerst eens in een gewone standaardmodule (ALT+F11 >> Invoegen >> Module)
 
Laatst bewerkt:
In aanvulling op wat Warm Bakkertje schreef:

Code:
Sub tst4()
Open "C:\20100001" For Output As #1
Close #1
End Sub
[COLOR="Red"][B]de opslaan-macro wordt dan:[/B][/COLOR]
Code:
Sub opslaan()
c0=dir("C:\" & year(date) & "*")
name "C:\" & c0 as "C:\" & c0 +1

With Thisworkbook
.sheets("Blad1").range("J5")=c0+1
.SaveAs "E:\fakturen\faktuur_" & c0+1 & ".xls" 
End With
[B][COLOR="Blue"]End[/COLOR][/B] Sub

De rode regel is een tekstregel. Hier kan VBA niets mee.
Je kunt 2 dingen doen:
1. regel verwijderen.
2. een apostrofe (') voor de regel zetten zodat de regel door VBA als tekst wordt gezien.

Verder dient een Sub afgesloten te worden door een End...Sub.

Je kunt de macro op verschillende manieren aansturen. Bijvoorbeeld dmv een knop maar zorg dan dat de code van de knop verwijst naar de macronaam.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
verder met ophogen

Hallo Rocancio,

Na enige tijd wat andere zaken gedaan te hebben, heb ik dit weer opgepakt, maar ik heb toch nog wel wat vragen. In ieder geval loopt het niet bij mij.

Sub tst4() - mag ook andere naam bijv ophogen gebruiken ?
Open "C:\20100001" For Output As #1 Heb deze file, maar het wordt geen txt file en windows vraagt waar mee te openen. Verder wil ik graag vragen waar dit terugkomt . Wordt de inhoud van het ebstand ook gebruikt , of is het alleen ene start betsand ? M.a.w. ik kan VBA hier niet zo goed vertalen/begrijoen. ik heb wel ook file 20100002 gekregen maar dan zegt hij als ik via F5 VB uitvoer dat het bestand al bestaat en het script stopt dan.
Close #1
End Sub
de opslaan-macro wordt dan:
Code: Hier krijg ik een error dat opmerkingen alleen na sub en endsub gemaakt mogen worden
Sub opslaan()
c0=dir("C:\" & year(date) & "*") wat betekent dit tekentje ? wat doet het ?
name "C:\" & c0 as "C:\" & c0 +1 hier krijg ik bij een F5 aktie de foutcode dat het type niet overeenstemt

With Thisworkbook
.sheets("Blad1").range("J5")=c0+1 dit heb ik aangepast naar het werkblad .
.SaveAs "E:\fakturen\faktuur_" & c0+1 & ".xls" hier heb ik c: van gemaakt.
End With ik dacht dit weg te kunnen halen, maar dat mag niet. Waarom niet ? Dit zie je toch niet altijd bij End Sub /
End Sub

Dit heb ik nu en waar gaat het niet goed ?

Sub ophoog()
Open "C:\20100001" For Output As #1
Close #1

'de opslaan-macro wordt dan:

c0 = Dir("C:\" & Year(Date) & "*")
Name "C:\" & c0 As "C:\" & c0 + 1

With ThisWorkbook
.Sheets("factuur").Range("k10") = c0 + 1
.SaveAs "c:\fakturen\faktuur_" & c0 + 1 & ".xls"
End With
End Sub

Groeten,
Dirk
 
Dirk, het bestand dat je maakt met ophoog hoef je niet te openen, enkel het nummer is belangrijk. Zoals ik al eerder zei gebruik je dit enkel om het basisbestand neer te zetten aan het begin v/h jaar. Voor 2011 wordt dit dan
Code:
 Open "C:\20110000" For Output As #1
Code:
Sub ophoog()
Open "C:\20100000" For Output As #1
Close #1
[COLOR="red"]End Sub[/COLOR]
'de opslaan-macro wordt dan:
Het "*" vervangt alles wat na 2010 komt in de bestandsnaam

Code:
[COLOR="red"]Sub Opslaan()[/COLOR]
c0 = Dir("C:\" & Year(Date) & "*")
Name "C:\" & c0 As "C:\" & c0 + 1

With ThisWorkbook
.Sheets("factuur").Range("k10") = c0 + 1
.SaveAs "c:\fakturen\faktuur_" & c0 + 1 & ".xls"
End With
End Sub
De End With maakt deel uit van een With....End With structuur (zoals de End If bij een If.....End If structuur)
 
Laatst bewerkt:
ophogen factuurnummer

Hallo Rudi,

Bedankt weer voor je antwoord en je blijkbaar onuitputtelijke geduld met beginners. Ik ben er echter nog niet helemaal. De losse onderdelen lopen tenminste eenmaal goed maar bij herhaling , dus ophogen gaat het niet goed/ In K10 verandert er ook niets.Terwijl K10 voor de factuur en de naamgeving van de file essentieel lijkt. Op de eenof andere manier krijg ik verstandsmatig geen vat op deze code en wat er gebeurd. Ik heb hem al in allerlei combinaties opgzet, maar het wordt niet beter. Daarom heb ik mijn vragen ingebouwd in jouw code voorstellen. Tot slot zul je zien dat ik vraag hoe ik meerdere sub routines onder 1 knop kan krijgen (met with -end with nestingen ?- maar dan moet ik blijkbaar wel een variabele aan het begin benoemen zoals jij doet met ThisWorkbook. Wat ook minder fijn is dat hij mijn totale Workbook saved, terwijl ik dat graag als moederbestand met lege data voor werkorder en factuur bewaar, maar met compleet klantenbestand. Daarom zou ik graag voor de factuur alleen de sheet opslaan.

Miet mijn vooruitsnellende dank
groeten,
Dirk



Sub jaarbegin()
Open "C:\20100000" For Output As #1
Close #1

'Hier zou ik analoog aan factuurnummer per 1 januari een ophoging in willen maken. Of kan ik via de naamwijziging van deze file gewoon
'verder gaan per 1 januari 2011 (zoals je zegt) , maar waar plaats ik deze code ? Of nog anders gevraagd:
'Hoe wordt deze file door excel herkend als aanwezig ? Hij wordt toch door niets geactiveerd ? Ik heb hem in een sub-end sub gezet
'(maar weet niet hoe ik dit moet activeren) of is dat toch niet de bedoeling ? Zie ook verder
'
End Sub


Sub ophoog()

Open "C:\20100000" For Output As #1
Close #1
'Hier komt het weer terug. Maar dit wordt toch telkens opgehoogd met 1 en moet daarom hier dan niet naar de opgehoogde geken worden ?
'ik krijg bij de regel Name na 1 keer een foutmelding dat het bestand al bestaat.

'de opslaan-macro wordt dan:
'Het "*" vervangt alles wat na 2010 komt in de bestandsnaam

With thisfile
c0 = Dir("C:\" & Year(Date) & "*")
Name "C:\" & c0 As "C:\" & c0 + 1 - hier krijg ik foutmelding : bestand bestaat al

With ThisWorkbook
.Sheets("factuur").Range("k10") = c0 + 1
.SaveAs "c:\facturen\factuur_" & c0 + 1 & ".xls"

'Hier zag ik graag dat alleen de sheet gesaved werd. Mag ik ThisWorkbook gewoon vervangen door Thissheet ?
'Verder wil ik graag dat deze sheet automatisch geprint wordt. Hoe kan ik ophogen,saven en printen onder 1 knop brengen ?

End With
End Sub
 
Dirk, ik heb je een voorbeeldbestandje gemaakt waar alles op zijn plaats staat en werkzaam is.
Vooraleer je hiermee aan de slag gaat, wis je elk bestand in je c-directory met 2010... als naam. Draai nu de macro in module2 en wis deze module daarna. Draai daarna de macro in module1 en bekijk het resultaat in je fakturen-directory.
Stuur me daarna een PB met je bevindingen zodat we deze discussie via mail kunnen voortzetten, zodat we geen tijd verspillen van andere helpers aangezien er geen nieuwe elementen meer moeten toegevoegd worden maar slechts de bestaande correct toegepast moeten worden.
 
ophogen factuurno

ik ga er mee aan de slag en bericht je zo snel mogelijk via e-mail. Zet het hier op slot met veel dank aan Rudi.

Groeten,
Dirk
 
ophogen - resultaat

Hallo Rudi,

Ik reageer toch maar evne via helpmij, want ik krijg een generiek probleem terug. Het loopt allemaal fantastisch, maar als ik de weggeschreven facturen (die mooi een ophoging krijgen) weer wil inladen, dan krijg ik een error over de bestandsindex. Windoes geeft aan dat de opgeslagen bestandsindex niet overeenkomt met de bestandsindeling en vraagt of ik toch wil laden. Met Ja beantwoorden geeft een gewoon bruikbare file om verder te werken. Is de "XLS"extensie wellicht niet goed ?


Maar verder loopt het gladjes.
Groeten,
Dirk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan