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

Opgelost Timestamp + aantal afdrukken

Dit topic is als opgelost gemarkeerd

TOhulk

Gebruiker
Lid geworden
26 mrt 2013
Berichten
20
Goedemorgen,

Ik heb graag jullie hulp nodig met het onderstaande. Ik ben bezig een bestand te maken om te kunnen inzien wat er geleverd is, of het gereed is en een label te draaien die op de pakketten geplakt kunnen worden. Nu ben ik geen kenner in VBA, maar heb sommige codes op internet opgezocht en (soms met kleine aanpassingen) gebruikt in mijn sheet. Nu lukt het me niet om de laatste punten gedaan te krijgen. Wat zijn mijn wensen;

1. Timestamp waarde kopieren
Momenteel heb ik een timestamp in kolom A, wanneer ik iets in kolom B invul dat hij de datum en tijd van het ingave invult. Dit werkt prima, maar zodra ik de regel gereedmeld (kolom D -> Dropdown "Gereed") verplaatst deze regel naar een nieuw tabblad "Gereed". Hij kopiert echter de formule, hierdoor veranderd na het gereedmelden bij elke regel de datum+tijd. Dit is niet gewenst. Ik zou graag wel de regel willen verplaatsen + verwijderen op tabblad " binnengekomen goederen" naar tabblad "Gereed" maar ik wil niet de formule verplaatsen, maar de waarde. Dit zodat niet bij het gereedmelden mijn timestamp bij elke regel veranderd.

2. Aantal afdrukken regelen door invulling cel
Ik heb een button met afdrukken gemaakt. Het label dat afgedrukt wordt staat op tabblad "blad2". De info wordt automatisch gevuld met de laatste ingave in tabblad "Binnengekomen goederen". Het lukt me echter niet om te zorgen voor meerdere afdrukken. Mijn wens is om de waarde dat ingevuld staat in tabblad "blad 2" in cel B9 het aantal afdrukken bepaald. Dus zelfde label alleen meerdere afdrukken. Het enige verschil is dat ik graag bij ingave van meerdere pallets graag een soort counter heb, zodat het bijvoorbeeld bij 5 pallets wordt; 5 labels, label 1 pallet 1 van 5, label 2 pallet 2 van 5 enz.

3. Gereedmelden tabblad
Vanuit tabblad "Binnengekomen goederen" is het mogelijk een levering gereed te melden. Deze regel wordt dan verwijderd uit tabblad "binnengekomen goederen" en verplaatst naar het tabblad gereed. Nu heb ik al aangegeven bij punt 1 dat de timestamp niet correct werkt, maar ik zou ook graag een datum en tijd (timestamp) willen toevoegen NAAST de ontvanstdatum van de datum + tijd van gereedmelden, gesorteerd van oud naar nieuw. Dus de laatste gereedmelding bovenaan.

In de bijlage vindt je het bestand, ik hoop dat het voor jullie duidelijk is wat ik graag zou willen en ben benieuwd of iemand mij kan helpen :)

Groetjes Jelle
 

Bijlagen

Punten 1 en 2.
Zo?
P.S.
Leer inspringpunten te gebruiken.
 

Bijlagen

Bedankt toppers! Ik kijk maandag even, heb nu niet de mogelijkheid om de bestanden in te zien!
 
Punten 1 en 2.
Zo?
P.S.
Leer inspringpunten te gebruiken.
Dag!

Allereerst bedankt voor je voorzet!

Punt 1 zie ik nog steeds dat de timestamp veranderd wanneer ik een zending gereedmeld. De timestamp wordt wel gekopieerd en geplakt als waarde naar tabblad "gereed" zie ik, maar in tabblad "binnengekomen goederen" wijzigt bij alle regels de timestamp naar de tijd van het moment van gereedmelden (dropdown "gereed"). Is daar nog iets aan te doen?

Punt 2; Ik krijg een foutmelding bij het drukken op de button afdrukken. Dit heeft, zover ik zou mogen zeggen, te maken met dat in cel B9 op sheet Blad2 een formule staat en niet een waarde. Is dit anders op te lossen?

Alvast bedankt.
 
In mijn oplossing staat er zelfs geen knop(button) "Afdrukken"
 

Hai EmielDS,

Bedankt voor je voorzet.

Punt 1. De timestamp van de ontvangst veranderd bij het gereedmelden naar de timestamp van het gereedmelden. Dit gaat in veel gevallen 2 verschillende data zijn. Het is dus de bedoeling dat er een timestamp is van moment van ontvangst en een timestamp van het moment van gereedmelden, die elkaar dus niet overschrijft.

Punt 2. Ik zie dat de button "afdrukken" is verdwenen en dat je deze functie bij het gereedmelden hebt in verwerkt. Het gereedmelden is bij ons een ander moment dan het moment dat we de labels graag geprint zouden willen hebben. Het gereedmelden + het afdrukken zouden dus, m.i., 2 verschillende handelingen moeten zijn. Betreft het afdrukken; Het lijkt erop dat bij het veld "leverancier (blad2)" & datum (blad2) niet de juiste gegevens pakt. Het lijkt erop dat het van de regel erboven neemt. Verder werkt het wel met het afdrukken van meerdere labels, voor nu dus nog met de verkeerde info. Daarnaast krijg ik een afdrukvoorbeeld. Ik weet niet of het anders niet werkt, maar het mag direct geprint worden, zonder afdrukvoorbeeld dus.

Punt 3. Er wordt inderdaad een timestamp "meegenomen" bij het gereedmelden van een regel op tabblad "binnenkomende goederen". Deze timestamp is ook correct, echter veranderd dit ook de timestamp van de ontvangst. ZOals bij punt 1 benoemd is dit niet gewenst, dit zouden 2 verschillende tijden moeten/mogen zijn.

Gr. Jelle
 
Voor de afdrukken knop
Code:
Sub PrintLabel()
    Range("Blad2!A1:C17").PrintOut , , Sheets("Blad2"), Range("B9").Value
End Sub
 
Lees de formule op blad2.B9 en je weet de oplossing.
 
@emields
Dit heeft waarshijnlijk te maken met de manier waarop ze werken.
Vul de naam in, Timestamp wordt geplaatst, vul het aantal paletten in en druk op Afdrukken, verplaats regel naar Gereed. Wie zijn wij om deze werkwijze in vraag te stellen ?

Gebruik geen functie om de Timestamp te zetten maar verwerk dit in de code. Dan staat deze ineens als waarde en wordt niet meer herberekend.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lr  As Integer
    If Target.Column = 2 And Target.Value <> vbNullString Then
        Target.Offset(, -1) = Format(Now, "dd/mm/yyyy hh:mm")
    End If
    If Target.Column = 4 And Target.Row > 1 Then
        If Target.Value = "Gereed" Then
            With Sheets("Gereed")
                lr = .Range("A" & .Rows.Count).End(xlUp).Row + 1
                .Cells(lr, 1).Resize(, 4).Value = Cells(Target.Row, 1).Resize(, 4).Value
            End With
            Application.EnableEvents = False
            Rows(Target.Row).Delete
            Application.EnableEvents = True
        End If
    End If
End Sub
 
Misschien kan dit aan uw verwachtingen voldoen?
Dag Emields,

Ziet er mooi uit! ook met het formulier. Een aantal dingen vallen op;

1. De te printen data update niet in het formulier, dus als ik een regel toevoeg kan ik deze niet afdrukken. Daarnaast blijven de "gereedgemelde" regels wel/ook zichtbaar in het formulier. Het lijkt je eerst gereed moet melden om te kunnen printen, dit zou andersom moeten. Eerst afdrukken dan gereedmelden.
2. Zover ik de code begrijp kan ik printen tot 5 pallets, is dit zo? We zouden graag tot 50 stuks (pallet of colli) labels kunnen printen.
3. In het tabblad "gereed" zou ik graag de nieuwste gereedmeldingen bovenaan willen hebben staan. Is het mogelijk een filter toe te voegen in de code?
4. De tekst bij blad2 cel b9 staat tekstueel nu "pallet" dit mag pallet/colli worden.

Verder werkt alles, zover ik tot nu toe getest heb, goed!

Gr. Jelle
 
@emields
Dit heeft waarshijnlijk te maken met de manier waarop ze werken.
Vul de naam in, Timestamp wordt geplaatst, vul het aantal paletten in en druk op Afdrukken, verplaats regel naar Gereed. Wie zijn wij om deze werkwijze in vraag te stellen ?

Gebruik geen functie om de Timestamp te zetten maar verwerk dit in de code. Dan staat deze ineens als waarde en wordt niet meer herberekend.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lr  As Integer
    If Target.Column = 2 And Target.Value <> vbNullString Then
        Target.Offset(, -1) = Format(Now, "dd/mm/yyyy hh:mm")
    End If
    If Target.Column = 4 And Target.Row > 1 Then
        If Target.Value = "Gereed" Then
            With Sheets("Gereed")
                lr = .Range("A" & .Rows.Count).End(xlUp).Row + 1
                .Cells(lr, 1).Resize(, 4).Value = Cells(Target.Row, 1).Resize(, 4).Value
            End With
            Application.EnableEvents = False
            Rows(Target.Row).Delete
            Application.EnableEvents = True
        End If
    End If
End Sub
Hoi Warme bakketje,

Bedankt voor de code. Ik ben voor nu even verdergegaan op het bestand van EmielDS. Ik kreeg namelijk bij het afdrukken (code printlabel()) een foutmelding tot zover ik nu zag. Waarschijnlijk om dat in cel B9 (blad2) een code staat ipv een waarde (?). Bovenstaande code deed wel wat ik zocht. Het afdrukken was dus nog niet gelukt, dit werkt wel in het bestand van EmielDS, vandaar. Maar in ieder geval bedankt voor je hulp!
 
Zonder userform.
Om de labels automatisch af te drukken vul je in kolom E ja in. Het aantal labels vermeld in kolom C worden 1 per 1 afgedrukt.
Nieuwste gereedmelding komt nu bovenaan bij in blad Gereed.
Melding in blad2 b9 aangepast.
 

Bijlagen

Ooit zal het wel eens in orde komen.
Zeker! Dit is wat ik zoek. Alleen het aantal colli's/pallets klopt niet meer. Dit klopte in je vorige versie wel. Nu krijg ik, bijvoorbeeld bij het afdrukken van 3 labels, 1 van 3 op elk label ipv 1 van 3, 2 van 3 en 3 van 3.

Zou je dit nog voor mij kunnen aanpassen?

Gr. Jelle
 
Zonder userform.
Om de labels automatisch af te drukken vul je in kolom E ja in. Het aantal labels vermeld in kolom C worden 1 per 1 afgedrukt.
Nieuwste gereedmelding komt nu bovenaan bij in blad Gereed.
Melding in blad2 b9 aangepast.
Thanks. Ik ga jouw sheet gebruiken om zelf wat meer van code te snappen! Thanks!
 
Terug
Bovenaan Onderaan