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

werkbon automatiseren

Status
Niet open voor verdere reacties.

plainme

Gebruiker
Lid geworden
10 okt 2009
Berichten
309
Amici

In bijlage een werkbon die ik zou willen automatiseren.
Even verduidelijken .....

Wat moet er gebeuren

A: op blad 1 cel E14 zou er een werkbon-nummer moeten in komen te staan die gelinkt is aan de klant. ( en ja ik weet dat dergelijke zaken eenvoudiger zijn in access maar daar heb ik al helemaal geen kaas van gegeten. VB: K001 001 2019 (waarbij K001 staat voor klant 001 001 is het werkbon nummer en 2019 voor ...... ajaaaa het jaartal ;) )
klant dient manueel te worden geselecteerd. voor opslaan dient dus zeker te worden gekeken of er al een order bestaat voor deze klant. Zoja dan is het vorige bonnummer +1 zoniet dan is het 001.


B: Bij klikken op knop werkbon opslaan kan eventueel het klantnummer worden gebruikt + bonnummer. dit wordt dan K001 001 2019

C: Wanneer er een nieuwe werkbon wordt aangemaakt bvb voor klant 001 zou dit dan in CEL E14 K001 002 2019 moeten zijn.
Bij wegschrijven van deze werkbon zou dit dan K001 002 2019 enz.....

D:Knop die nu gebruikt wordt om de cellen te wissen kan eventueel worden gebruikt om een nieuwe werkbon aan te maken

Graag jullie advies en bijstand aub. en voor zij die meedenken en hulp aanbieden al een ferme bedankt.

mvg,

Marc
 

Bijlagen

  • Werkbon V1 met macro.xlsm
    35,6 KB · Weergaven: 66
is precies een moeilijke vraag....

Echt geen hulp meer voorhanden?

toch al bedankt voor het meedenken.

mvg
Marc
 
Je zal het data model wat meer moeten verduidelijken.
Waar staan de gegevens van de werkbonnen met de gekoppelde klantnummers ?
Of is dat jouw vraag: Hoe moet de data model er uit zien.
Op deze site zitten vrijwilligers die graag helpen als je tegen een Excel probleem oploopt.
Een tool ontwerpen is iets anders dan een Excel probleem.
Of snap ik je vraag niet ?
 
Probeer dit stukje code onder de knop opslaan om je werkbon nummer te verhogen
zoals in je vraag en ga hier vast mee aan de slag.

Code:
Range("E14").Value = Range("E14").Value + 1
Range("E14").numberformat = Range("D8") & format(date, " yyyy ") & "0000"
 
Waar en hoe moet de werkbon worden opgeslagen. Het ophogen van een nummer is het probleem niet. Je hebt van alles door elkaar gehaald. In het voorbeeldje een iets gestructureerde opzet zonder gebruik te maken van formules. Of al die samengevoegde cellen nu zo'n goed idee is laat ik maar in het midden.
 

Bijlagen

  • Werkbon V1 met macro.xlsm
    37,9 KB · Weergaven: 45
beste Amici,

Laat ik beginnen met mij te verontschuldigen voor de inderdaad wat overhaast geplaatste vraag met een crapy voorbeeld. :eek::eek::eek:

In bijlage een al wat bijgewerkte versie. ( dit is gemaakt met codes die ik gevonden heb hier op dit prachtige forum.) ik heb de codes al zo aangepast dat deze werken in mijn werkbon.

Nu het overige deel.
Wat is nu eigenlijk nog de bedoeling.....

Wanneer er geklikt wordt op de knop " Nieuwe werkbon aanmaken" , en dan komt nu de clou .... ( hoe dit kan verholpen worden weet ik dus echt niet en vind hierover geen antwoorden op dit forum) een nieuwe werkbon dient te worden aangemaakt maar deze dient dan ook nog een te volgen op een eventuele laatste werkbon die is aangemaakt voor deze klant.
De vraag is nu ....
Hoe kan dit programma weten welke bonnummer er reeds bestaat als er een nieuwe werkbon dient te worden aangemaakt.
( knop " nieuwe werkbon aanmaken " verkrijg je een blanco werkbon en dan pas kan je de klantnr gaan invoeren. hoe kan dit anders????)

@VenA

Ja de samengevoegde cellen zijn er nu eenmaal al van in het begin en om nu de bon nog te gaan aanpassen is wat te veel van het goede.

Kan ik jou code die nu gebruikt wordt aanpassen om deze ook te gebruiken binnen de uitgevoerde werken???
Maw vanaf cel C16 tem C40 bij keuze in de cel B16 tem B40?


In ieder geval wil ik iedereen al bedanken voor de hulp, informatie en advies.



Mvg

Marc
 

Bijlagen

  • Werkbon V3.xlsm
    55,3 KB · Weergaven: 40
Je zal toch eerst moeten kiezen voor een logisch proces.
Bij voorbeeld:
Bij het maken van een nieuwe bon, haal je het Laatst verzonden werkbonnummer op uit het Klantenbestand.
Daar haal je het volgnummer uit en tel er 1 bij op.
Zodra de nieuwe werkbon gereed is en definitief is geworden (na verzenden naar klant), dan schrijf je het nieuwe bonnummer bij de klant in het klantenbestand.
en zo verder.....
 
Lijkt mij een kwestie van kopieren plakken en een beetje aanpassen.
Code:
If Intersect(Target, Columns(2).SpecialCells(-4174)) Is Nothing Then Exit Sub
  ar = Sheets("Gegevenslijst").ListObjects(2).DataBodyRange
  Target.Offset(, 1) = Application.Index(ar, Application.Match(Target, Application.Index(ar, 0, 1), 0), 2)

Bij het wissen van de bon wordt er een nieuw bonnummer aangemaakt.
Code:
Sub Werkbon_Wissen()
  With Sheets("Gegevenslijst").ListObjects(1).Range
    x = Application.Match(Range("D8").Value, .Columns(1), 0)
    If IsNumeric(x) Then
      ar = Split(.Cells(x, 10), "_")
      If Year(Date) = Val(ar(1)) Then .Cells(x, 10) = Format(ar(0) + 1, "000") & "_" & ar(1) Else .Cells(x, 10) = "001_" & Year(Date)
    End If
  End With
  Application.EnableEvents = False
  Range("D8,J8,E8,E9,E10:E14,C16,B16:J40,C42").Value = ""
  Application.EnableEvents = True
End Sub
 

Bijlagen

  • Werkbon V3.xlsm
    52,3 KB · Weergaven: 38
@plainme
beste Amici,

Hierbij mijn idee voor opslaan en mailen van je Werkbon
en zoals eerder al opgemerkt door VenA en Piet Bom, van die samengevoegde cellen dat levert problemen op
die heb ik er uit gehaald in het voorbeeld, Dat nummer ophogen met de code van VenA begrijp ik niet helemaal
en zie ook het nummer niet verhogen dat moet VenA maar uitleggen :d
 

Bijlagen

  • Werkbon V3.xlsm
    55,4 KB · Weergaven: 64
Ik ga niets uitleggen. Een beetje beter kijken kan geen kwaad.:d Selecteer bv K001 en kijk in E14. Klik vervolgens op de knop 'Gegevens werkbon wissen' en selecteer K001 opnieuw en kijk weer in E14.
 
@Beste VenA

Die code stond niet in je vorige voorbeeld in post#5
in je laatste voorbeeld post #8 staat de code er wel in en begrijp ik het wel, en mijn opmerking heeft mekaar gekruist (2 minuten) bij het plaatsen van mijn voorbeeld.
Jammer dat je dat verkeerd opvat :(
 
Code:
Target.Offset(, 1) = ar(Application.Match(Target, Application.Index(ar, 0, 1), 0), 2)
 
@loek010, In het bestand in #5 staat helemaal geen code die iets met de nummering doet. Vandaar dat ik dacht dat je reageerde op de code en het bestand in #8:)

[Edit]

Het hele Change Event kan wel eenvoudiger
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "D8" Then
    ar = Sheets("Gegevenslijst").ListObjects(1).DataBodyRange
    x = Application.Index(ar, Application.Match(Target, Application.Index(ar, 0, 1), 0), 0)
    Range("E8:E14") = Application.Transpose(Array(x(2), x(3), x(5), x(7), x(8), x(9), Target & "_" & x(10)))
    Range("K9") = x(4)
    Range("H10") = x(6)
  End If
  If Intersect(Target, Columns(2).SpecialCells(-4174)) Is Nothing Then Exit Sub
  ar = Sheets("Gegevenslijst").ListObjects(2).DataBodyRange
  Target.Offset(, 1) = ar(Application.Match(Target, Application.Index(ar, 0, 1), 0), 2)
End Sub
 
Laatst bewerkt:
Amici,

Ok, een ferme boterham hier nu ....

Ik ga hiermee aan de slag en laat jullie zeker iets weten of mijn Laptop is beginnen roken of er precies een aureooltje boven komt te hangen.:p:p

Ik houd jullie op de hoogte.


Mvg,

Marc
 
Amici

Heb ondertussen al wat zitten vloeken ketteren zweten ( maar ja het is dan ook zomerswarm he :D ) maar ben er ondertussen toch al een beetje uit.

Even samenvatten.

Voor de logische opstelling.
a:) heb een combobox aangemaakt die de keuze maakt als er al een bestaande klant is. alleen krijg ik deze niet aan de praat.
alsook niet dat wanneer de keuze is gemaakt deze automatisch naar de werkbon overgaat.

b:) Wanneer nieuwe klant heb ik een userform aangemaakt waar de gegevens ingegeven worden en deze worden weggeschreven naar de eerste vrij plaats.
Ook hier , ofwat dachten jullie dan, enkele schoonheidsfoutjes,
- Hoe kan ik in de bovenste textbox het eerst volgende volgnummer automatisch wordt ingegeven?
- Als ik nu klik op de button word alles netje weg geschreven naar het tabblad "gegevenslijst" alleen krijg ik het niet voor mekaar om het volgnummer er ook in te zetten.

Enig hulp zou reuze welkom zijn.


Alvast mijn dan aan iedereen die meedenkt en een code toesteekt :) .

Mvg $

Marc
 

Bijlagen

  • blanco werkbon V4 27 08 2019.xlsm
    60 KB · Weergaven: 68
amici,

Nog dit mocht dit beter of anders kunnen..... graag hoor. is fun to learn with a example :)

En als er zaken zijn die er uit mogen .... graag . zie ik ook waar ik nog zwaar in de fout ga.


:thumb::thumb::thumb:

Mvg

Marc
 
Marc

Kijk eens naar dit programma dat doet eigenlijk alles wat jij nu ook probeert te maken als ZZP'er kan je hiermee
gewoon je factuurtjes opmaken, uren bijhouden, en opslaan en per email verzenden
En probeer dit bestand eventueel verder aan te passen aan je voorkeur
 

Bijlagen

  • Facturatie.xlsb
    854,9 KB · Weergaven: 136
Hey Willem,

Lijkt me inderdaad heel fijn om dit even te ontleden en te zien wat / welk er voor van mij te gebruiken valt.

Bedankt voor de steun in de rug :)

Mvg,

Marc
 
Geen dank we zijn er om mekaar te helpen kom je er niet uit vraag het dan maar
ik heb het programma voor mezelf gemaakt dus weet hoe het in mekaar steekt :thumb:
 
Amici

Hierbij ga ik deze topic afsluiten maar wil ik zeker een hartelijke dank uitspreken voor Willem (Loek10) die en tot enerverend toe van mijn zijde deze topic tot een schitterend resultaat geeft gebracht.

Ik laat het aan Willem om te beslissen of hij zijn versie van deze werkbon plaatst of niet. Voor mij is het in ieder geval suuuuuuuupppppppeeeeeeeeeeerrrrrrrrrrr gelukt!

Nogmaals dank u Willem, een persoon die ik ben beginnen waarderen.

Mvg,

Marc


Natuurlijk ook dank aan alle andere die zich achter deze topic hebben geschaard.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan