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

automatische nummering bij uitprinten sheet

Status
Niet open voor verdere reacties.

limbourgois

Gebruiker
Lid geworden
20 mei 2011
Berichten
22
Hallo,

Kan iemand mij helpen bij het volgende vraagstuk?
Ik moet verschillende sheets uitprinten waarin enkele vaste, als ook variabelen gegevens inzitten.

In het voorbeeld (bijlage) zijn de niet gekleurde cellen vaste gegevens.
De geel gekleurde zijn variabelen.

Mijn eerste vraag betreft de blauw gekleurde cel.
Dit moet een palletnummering voorstellen. Nu moet ik telkens weer de cel aanklikken en veranderen in een hoger nummer om daarna uit te printen.
Grag wil dat dit meer geautomatiseerd kan gebeuren
Bijvoorbeeld door het aantal gewenste aantallen sheets ergens in te vullen en dat deze automatisch in de blauwe cel met +1 worden verhoogd.
Tevens zou ik graag een sheet kunnen uitdraaien waar ik een van de variabelen (geel) kan veranderen en dan een aangepaste sheet kan uitprinten, maar wel een opvolgende nummering behoud, of zelf kan invullen

Bij voorbaat dank
 

Bijlagen

Het blauwe gedeelte is niet zo moeilijk
Code:
Sub prt_test()
For i = 1 To InputBox("Hoeveel pallets", Aantal)
    With Sheets("Blad1")
        .PrintPreview
        .Range("A37") = .Range("A37") + 1
    End With
Next i
End Sub

Het gele gedeelte heb je, voor mij, te onduidelijk beschreven om daar iets mee te doen.
 
Alvast bedankt dat je even meedenkt.
Alleen...? wat moet ik nu doen?
Waar moet ik de formule inzetten?
Ik ben nu zo bekend met excel, ik weet alleen dat het mogelijk was.

Ik had ergens een soortgelijke formule gegvonden, maar weet deze niet toe te passen of waar ik deze moet plaatsen.
de formule zag er als volgt uit:

Code:
Sub Afdrukken()
    Dim i As Integer, iKopies As Integer, plnr As Integer
    Dim ws As Excel.Worksheet
    iKopies = Application.InputBox("hoeveel kopieën had je graag gehad ? " & vbLf & "stoppen=0", Type:=1)  'hoeveel ?
    plnr = Application.InputBox("Met welk palletnummer begint u ? " & vbLf & "stoppen=0", Type:=1)  'Startnummer pallets ?
    If iKopies > 0 Then
        Application.ScreenUpdating = False
        Cells(26, 4) = plnr
        Blad1.Copy ' maakt nieuwe map, is nu active
        Rows("15:15").Font.ThemeColor = xlThemeColorDark1
        With ActiveWorkbook
            For i = 1 To iKopies - 1
                .Sheets(1).Copy After:=.Sheets(i)
                Cells(26, 4) = plnr + i
            Next
             '.Sheets(1).Move After:=Sheets(i)
            .Sheets.Select ' select all
            .PrintPreview 'afdrukvoorbeeld
            '.PrintOut 'effectief afdtrukken (haal dat enkel aanhalingstekentje weg)
            .Close SaveChanges:=False
        End With
    End If
End Sub

Misschien dat iemand deze formule voor mij in de sheet kan plaatsen op een zodanige manier dat ik deze sheet als zodanig kan gebruiken.???

alvast bedankt.
 
Laatst bewerkt door een moderator:
Druk op ALT-F11, zo kom je in de VB-Editor.
Selecteer dan Invoegen - Module.
Plak hier dan de code van VenA in het linkse venster.
De macro kan je nu aan een opdrachtknop hangen of door op ALT-F8 het macrovenster te openen, macro selecteren en Uitvoeren.
 
Of om het nog eenvoudiger te maken koppel je de code direct aan een knop. Over het hoe? even zoeken.

Ik ga er altijd vanuit dat als iemand een VBA oplossing vraagt, hij/zij wel enigszins weet hoe dit te te passen is. Over het gele gedeelte heb ik weer niets gelezen dus daar hoeft blijkbaar niets mee te gebeuren? Zet het dan ook niet in de vraag!
 

Bijlagen

sorry als het gele gedeelte niet duidelijk was.
Hier een poging om dit alsnog te doen.

Ik heb een data blad toegevoegd vanwaar de gegevens vandaan moeten komen. (Wordt nog uitgebreid in aantal regels.)

Graag zou ik willen zoeken op DC Plaats in het palletsheet blad.
Belangrijk is dat de lotcode dan gekoppeld wordt aan die DC Plaats.
Dit zijn de meest belangrijke gegevens, hierna het aantal kartons op de restpallet.

Bij het uitprinten zou ik graag het volgende willen zien:
Als ik op de "print knop" klik, zou deze het aantal sheets moeten uitprinten dat op datasheet onder kolom "B" vermeld staat.
Startend met no. 1 en vervolgens hierbij steeds 1 nummer optellend tot vermeld aantal in de "B " kolom. Daarna een sheet met als palletnummer het onder kolom "B" vermelde aantal, verhoogd met 1, waarbij het aantal 'Kartons' wordt veranderd
in het aantal zoals vermeld in kolom "C"

Ik hoop dat dit duidelijkheid verschaft wt ik met de gele cellen bedoel.
 

Bijlagen

ps.

Ik ben voor wat VBA's betreft echt een leek, wil deze sheet vorm alleen wat gemakkelijker maken voor mij en mijn collega's.
 
Ik heb al wel iets in gedachten, maar voor eerst enige duidelijkheid.
Je wil zoeken op DC plaats, is deze steeds uniek in kolom A of kan deze meerdere keren voorkomen ?
Komt de DC plaats meerdere keren voor, is dan de lotcode in kolom F uniek zodat daar op gezocht kan worden ?
Of is het een combinatie van beiden waarop gezocht moet worden ?
 
De DC plaats is uniek, lotcode kan dezelfde zijn.
Verser het aantal kartons op een volle pallet is constant nl: 56 stuks
Het totaal aantal kartons is variabel, wel op voorhand bekend bv 360 stuks=6x56 + 24 stuks.
 
limb...,

Laat ons hier al eens mee beginnen.
Ik ga ervan uit dat je eerst de gegevens in blad Data invult. Vul de DC plaats, totaal aantal dozen, lotcode en MHD in. De formules in kolom B, C en D rekenen voor jou uit hoeveel paletten, hoeveel restkartons en totaal aantal paletten.
Ga dan naar palletsheet en selecteer uit de lijst in A14 de gewenste DC plaats.
Lotcode wordt automatisch opgezocht. Klik nu op Printen.
Het palletnummer wordt bij elke print automatisch verhoogd. Zijn er restkartons wordt kartons en palletnummer aangepast en geprint.
Bekijk het eens en dan kunnen we verder.
 

Bijlagen

Ik zit nu op mijn werk, ik heb helaas op het ogenblik niet de tijd om mij hierin te verdiepen, wel alvast bedankt voor je moeite.

Is het niet mogelijk om :
nadat je op de printknop drukt: er eerst gevraagd wordt hoeveel pallets ik wil hebben en vervolgens op een 2e popup het begin getal kan invullen?
Op die manier kan ik zelf het aantal pallets en de rest pallet invullen.
Hier wordt dan automatisch het aantal uitprinten gemaakt. Kijk eens of dat mogelijk is (zie eventueel de VBA code ergens in dit onderwerp lijst.)

Ik heb de volledige lijst van DC plaatsen en aantallen per DC toegevoegd aan deze lijst. ( de vet gedrukte zijn de officiële namen en aantallen. THT blijft overal hetzelfde, lotcode is nog niet bekend (afhankelijk van productie datum))
Andere suggesties zijn natuurlijk ook mogelijk
 

Bijlagen

Ik heb de ontwerp sheet even bekeken en aangevuld met gegevens en ben al erg tevreden met het resultaat.
Jammer is alleen dat ik nu een fout melding krijg in het printscript. kan wel verder als ik op "doorgaan" klik.

Helemaal in mijn nopjes zou ik zijn, als ik op de "printknop" klik en dan in een keer de bijbehorende sheets uitgeprint kreeg.
Trouwens niet alleen ik, maar ook een stuk of 3 collega's, die helemaal digibeet zijn.
Op deze manier is het wat gemakkelijker het hun aan te leren om gedurende mijn vakantie deze sheets uit te printen.
 

Bijlagen

je kan je eigen berichten wijzigen! Dus als er nog niemand gereageerd heeft wijzig je jouw laatste bericht en geef je even aan waarom. Het lijkt nu een beetje of je met jezelf aan het communiceren bent. En maakt de vraag totaal onleesbaar.
 
Laatst bewerkt:
En welke foutmelding krijg jij dan ?
Als ik jouw laatst geposte bestand test, werkt dit zonder problemen.
Om ineens uit te printen wijzig dan PrintPreview in PrintOut. Wijzig dit wanneer alles goed werkt, anders wordt er bij elke test ook daadwerkelijk uitgeprint en da's papierverspilling (denk aan't milieu :))
 
Rene alvast bedankt voor je inzet.

Ik krijg de foutmelding als ik bij de printer op afdrukken klik.
Verder krijg ik een popup van visual basic met de melding:" De uitvoering van de programmacode is onderbroken"

Als ik hier in "foutopsporing "kijk, zie ik een geel gearceerde regel next i (ongeveer in het midden van het protocol)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$14" Then
Range("C19").Value = Sheets("Data").ListObjects("Table1").ListColumns(1).DataBodyRange.Find(Target.Value, , xlValues, xlWhole).Offset(, 5).Value
Range("A27") = "56 Kartons": Range("A37") = 1
End If
End Sub

Private Sub print_tst_Click()
With Sheets("Data").ListObjects("Table1").ListColumns(1).DataBodyRange
AantalPal = .Find(Range("A14"), , xlValues, xlWhole).Offset(, 1).Value
AantalRest = .Find(Range("A14"), , xlValues, xlWhole).Offset(, 2).Value
AantalPalTot = .Find(Range("A14"), , xlValues, xlWhole).Offset(, 3).Value
End With
If AantalPal = 0 Then GoTo vervolg
With Sheets("palletsheet")
For i = 1 To AantalPal
.Range("A37") = i
.PrintPreview 'PrintOut voor het echt afdrukken
Next i
End With
vervolg:
If AantalRest = 0 Then Exit Sub
With Sheets("palletsheet")
.Range("A37") = AantalPalTot: .Range("A27") = AantalRest & " Kartons"
.PrintPreview 'PrintOut voor het echt afdrukken
.Range("A27") = "56 Kartons": .Range("A37") = 1
End With
End Sub
 
Ik krijg de fout niet gereproduceerd.
Krijg je deze fout onmiddellijk na klikken op de knop of na enkele prints, of ...
 
Hallo Rudi,
Sorry dat ik je eerst Rene heb genoemd.
Ik krijg de melding telkens als ik een blaadje uitprint, dus bij sheet No. 1, daarna bij sheet No.2, enz..
 
Kijk eens in het Naamvak of daar Table1 of Tabel1 staat.
Anders moet je dit aanpassen in alle macro's bij ListObjects("Table1")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan