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

Celwaarden aanpassen (voorraad) na meerdere lijstselecties in eerdere velden

Status
Niet open voor verdere reacties.

Framan

Gebruiker
Lid geworden
2 okt 2012
Berichten
15
Een nieuwe vraag voor dit geweldige forum.

In de bijlage staat precies wat ik wil maar in het kort wil ik dat na keuzeselectie van een artikel en daarna een artikelgroep (die voorkomt uit keuze 1) en daarna invoer van een cijfer (aantal), het huidige voorraadniveau van dit artikel verschijnt en in de volgende cel het ingevulde cijfer bij "aantal" hiervan af wordt gehaald en zichtbaar wordt. Zodanig dat bij een volgende keuze voor dit zelfde artikel het nieuwe voorraadniveau verschijnt na de vorige bestelling.

Wie o wie.

In ieder geval alvast hartelijk dank voor het meedenken en doen

Groet Frank
 

Bijlagen

geef ieder artikel ook een uniek nummer, dit kan het bestelnummer van de leverancier zijn of eigen nummer of beide samengevoegd, dit zal makkelijker zijn om je voorraad aan te passen zijn.
Denk ook na over de opbouw van je databank, wat wil je in de toekomst er allemaal meedoen, zodat je kan verder bouwen aan je progje en niet steeds opnieuw moet beginnen.
 
Dank voor je reactie maar helaas helpt me dat niet verder. Ik begrijp nog altijd niet met welke formules ik dit voor elkaar kan krijgen als ik unieke nummers aan artikelen ga toevoegen ??
 
Nogmaals dank maar de file is niet zozeer bedoeld voor voorraadbeheer waardoor dit voorstel niet echt bruikbaar is. De file wordt gebruikt om orders in te registreren. Bij plaatsen van zo'n order in de eerste cellen wil ik graag automatisch zien welke voorraad er is (die staat elders geregistreerd) maar vervolgens wil ik wel dat het aantal van de bestelling wordt afgetrokken van het huidige voorraad niveau (dat elders op het tabblad staat weergegeven). Op zich is kolom E "voorraad na bestelling" niet echt nodig, omdat het niet om grote aantallen zal gaan en het dus handmatig is uit te rekenen.
 
Framan maar met het voorbeeld wat jij geeft kan ik niet verder, de macro die je je toegezonden heb is van toepassing op dat bestand, om het toe toepassen op jou bestand zal je het moeten aanpassen of stuur een bestand op dat met het werkelijk bestand overeen komt.
 
Als het niet gaat om een voorraadbeheer dan kan je deze eens proberen. Zonder VBA is dit niet te doen omdat je anders in een kringverwijzing komt.

De knop bestellen gaat alleen wat doen als er een 'Artikel beschrijving' en een 'Bestelling aantal' is ingevoerd. De bestelde gegevens worden in de tab 'Besteld' gezet.

Code:
Sub VenA()
With Sheets("Invoer")
    If .[B2] <> "" And .[C2] <> "" Then
        Sheets("Besteld").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(1, 5) = Array(.[A2], .[B2], .[C2], Date, Time)
        .[B14:B22].Find(.[B2]).Offset(, 1) = .[E2].Value
        .[A2:C2].ClearContents
    End If
End With
End Sub
 

Bijlagen

Ik was me ook al bewust van het gevaar van kringverwijzingen. De oplossing van VenA komt dicht in de buurt omdat de macro "bestellen" de voorraadniveau's aanpast naar de situatie na de bestelling. Echter, als ik op "bestellen" klik dan verdwijnt de info in de cellen die ik daarvoor in die rij heb ingevuld, die info moet natuurlijk zichtbaar blijven omdat het de verkoop situatie aangeeft. Daarnaast werkt "bestellen" alleen voor de eerste lijn met data en niet voor volgende, moet dus werken voor alle rijen die er nog onder worden gezet.

Ik heb de Excel met de basis van VenA iets uitgebreid zodat het lijkt op hetgeen ik nodig heb. Dus als de punten hiervoor vermeld met die macro "bestellen" worden opgelost dan is het OK. iedere andere optie is natuurlijk ook welkom want ik heb al wel begrepen dat er vele wegen naar Rome leiden in Exel land.

Bekijk bijlage Voorbeeld invoerlijst 3.xlsx.xlsb
 
Maak in je voorbeeldje eens duidelijk hoe het werkelijk in elkaar steekt en wat de uitkomsten moeten zijn.
 
Kijk eens of dit in de buurt komt.
Je kiest in kolom A het Artnr en je vult of de inkoop- of de verkoopsaantallen in daarna druk je de button.

De nieuwe voorraad wordt dan aangepast in kolom D van je tabelletje.
 

Bijlagen

De aanpassing van JeanPaul28 werkt in zoverre dat het voorraadniveau keurig wordt bijgehouden. Echter, bij klik op bestelling verdwijnt mijn hele historie van de verkoop. Dit bestand is voornamelijk te gebruiken om de verkoopprogressie bij te houden, die historie moet dan ook blijven bestaan. Het eraan gekoppelde voorraad beheer dient vooral voor het gemak om zicht te houden of erin geplaatste verkopen kunnen worden uitgeleverd. Wie o wie heeft nog suggesties ?
 
In het tabblad besteld heb je toch een databank die de history bijhoud, met minimum gegevens( alleen artikelnummer met aantal datum en tijd)
 
Wellicht dat de excel bijlage meer duidelijkheid verschaft in wat precies de bedoeling is. Hopelijk helpt dit bij het creëren van de oplossing. Nogmaals allen dank voor de inspanning tot op heden.
 

Bijlagen

JeanPaul28, dit is prachtig. Uiteraard was dit een fictief bestand en met het overzetten naar het daadwerkelijke bestand heb ik toch nog wel wat moeilijkheden waar ik niet uitkom. Zou je een laatste blik op de bijlage willen werpen en de vragen die ik daarin stel nog kunnen beantwoorden/fixen. Zou helemaal geweldig zijn. BVD
 

Bijlagen

Je zal er eerst voor moeten zorgen dat jouw artikel beschrijving uniek is. Anders kan de juiste prijs niet gevonden worden. De berekening van de 'winst' ,wat geen winst is maar het verschil tussen inkoop en verkoop, was niet correct.

De sortering van de artikelen heb ik aangepast
Code:
Sub VenA()
[E1].CurrentRegion.Sort [E1], , [F1], , , , True
End Sub

En voor de update van de invoer
Code:
Sub VenA1()
With Sheets("Invoer")
    For Each cl In .Columns(9).SpecialCells(-4123).Offset(, -2).SpecialCells(2)
        .Cells(cl.Row, 1).Resize(1, 14) = .Cells(cl.Row, 1).Resize(1, 14).Value
        With Sheets("Producten")
            Set f = .Columns(6).Find(cl.Value)
            If Right(cl.Value, 10) <> "Rental fee" Then .Cells(f.Row, 8) = .Cells(f.Row, 8) - cl.Offset(, 1).Value
        End With
    Next cl
End With
End Sub

Mogelijk dat dit weer wat dichter in de buurt komt.
 

Bijlagen

We zijn er denk ik.......
|Het bestand van JeanPaul28 werkt helaas niet omdat de voorraad niveau's niet worden aangepast bij het invoeren van gegevens. Verder is de file wel helemaal goed maar dit zal nog wel een foutje in het bestand zijn.
Het bestand van VenA werkt echter prima, doet exact wat ik wil dus dat is perfect.

Nogmaals allen hartelijk dank. Als ik zelf nog eens veel tijd heb ga ik het zelf leren om dit te kunnen maar voor nu vertrouw ik graag op de sublieme expertise van anderen, jullie dus.

THX
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan