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

nummers

Status
Niet open voor verdere reacties.

Justes

Gebruiker
Lid geworden
7 sep 2004
Berichten
692
Hallo,

Er moet een stukje code bijgevoegd worden, wie kan mij helpen.

Gr, Justes
 

Bijlagen

Hoi Justus,

Private Sub CommandButton1_Click()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("D6") = Range("D6") + 1
Blad2.Range("D4") = Range("D4") + 1
Blad3.Range("D4") = Range("D4") + 1
Blad4.Range("D4") = Range("D4") + 1
Sheets("Blad1").Activate
End Sub

ps. Uw code is bijzonder foutgevoelig.

Luc
 
hallo Luc,

Dank voor de reactie, het is maar een klein onderdeel van een formule, het zijn totaal 80 bladzijden, dus kan het niet b.v. Blad2:Blad80.Range("D4") = Range("D4") + 1

Private Sub CommandButton1_Click()
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Range("C8:D24").Select
Selection.Font.ColorIndex = 2
Range("A2:D22").Select
ActiveSheet.PageSetup.PrintArea = "$A$2:$D$22"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("C8:D22").Select
Range("A8:A21").ClearContents
Selection.Font.ColorIndex = 0
Range("A8").Select
Range("D6") = Range("D6") + 1
Sheets("Actie").Activate
End Sub

Dit is de hele code

Gr, Justes
 
Zoals ik eerder reeds zei: Uw code is zeer foutgevoelig. Komt daar nog bij dat het om 80 Sheets gaat... dat maakt het alleen maar erger.
Bovendien is het bijzonder twijfelachtig of jij wel 80 Sheets nodig hebt.

Maar goed: Hier alvast enkele tips:

Vermijd Select; Selection en Activate.
Vermijd programmacode rechtstreeks in de programmacode van je werkblad.
Indien op elk werkblad in dezelfde cel hetzelfde getal moet komen te staan, verander dan niet in elk werkblad hetzelfde getal, maar verander één getal, en zet in de rest van de werkbladen formules die naar die éne cel verwijzen.
Vermits het om 80 werkbladen gaat... benoem de werkbladen in je programmacode dan niet bij naam, maar maak ze variabel:

Dim i As Integer

For i = 2 To Worksheets.Count
Sheets(i).Range("D4").Value = .... enz.
Next

Enne... hoe ga je het bonnummer controleren?
Bonnetje afgedrukt... niet opgeslagen... maar wel nummer opgehoogd. Wat ga je doen indien iemand afdrukt... merkt dat het papier op is, en het nogmaals wil afdrukken?

Luc

ps. Daar denk ik nog aan: Vermijd ook besturingselementen op elk werkblad, die identiek hetzelfde moeten doen. Maak hiervoor ofwel een extra werkbalk, ofwel buttons op je werkbalken.
 
Justes,

Nog onwetend van Luc Heyndrickx'advies had ik onderstaand progammaatje gemaakt.

Ik denk aardig in de buurt te komen.
 

Bijlagen

Dat is al iets beter... en zeker stukken mooier (Je hebt er je werk van gemaakt).

Ik ga er nog maar 's een tip bijgeven:
In plaats van voor elk werkblad een button te plaatsen op het userform, moet je gebruik maken van een keuzelijst. Deze kan je mooi opmaken met optionbuttons, zodat het zelfs geen keuzelijst meer lijkt. En achter die keuzelijst hoeft slechts één code te komen.

Voordeel:
Ontwikkelingstijd op 1/4 teruggebracht.
Onderhoud: Idem (in sommige gevallen zelfs 1/80 van de tijd).
Risico op fouten, door kleine stukjes code die je vergeet:
Nihil.
Grootte van uw bestand: Ook al kleiner.

Luc
 
Justes en Luc,

Morpheus roept.

Deze nog net even...
 

Bijlagen

Programmacode voor UserForm Initialize:

Private Sub UserForm_Initialize()
Dim i As Integer
UserForm1.Move 300, 100
Label1.Caption = "Aanwezige bladen " & Application.Worksheets.Count
For i = 2 To Worksheets.Count
ListBox1.AddItem Worksheets(i).Name
Next
End Sub

En laat die gedefinieerde naam maar vallen.

Luc
 
Hallo Luc en Lucb,

Dank voor de hulp, ik heb dus gekozen voor een combinatie van beide, het werkt perfect.
Het is dus zo dat diverse klanten een ander bedrag betalen vandaar dat ieder zijn eigenblad heeft, nu wordt twee keer en blad met prijzen en een keer een blad zonder afgedrukt.
Nu gaan de tellers aan het werk als er afgedrukt wordt.

Gr, Justes
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan