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

Voorraad automatisch verminderen

Status
Niet open voor verdere reacties.

julieb

Nieuwe gebruiker
Lid geworden
17 nov 2010
Berichten
4
Beste

Ik zou graag mijn voorraad automatisch laten aanpassen.
Als ik het product nr in geef zou de huidige voorraad van dat product automatisch met 1 moeten verminderen. Ik zou dit liefst met VBA maken zodat ik er een herhaling kan insteken, zodat ik een aantal productnr's na elkaar kan ingeven.
Vermits mijn kennis van VBA ver wag zit, kom ik er zelf echt niet meer uit!

Dank bij voorbaat

Julie
 
Hey Robert,

Bedankt voor je hulp!
Het is mij behoorlijk gelukt. In Kolom A staan mijn "fictieve" producten,in C de voorraad.
Nu lukt het om het juiste product te vinden en voorraad -1 te doen.
Alleen krijg ik mijn foutmelding niet bij ingeven van een foute produktnr.

Hier is de code:

[JS]Sub Stock()
Dim stringToFind As String
Dim Found As Range
Dim IntTeller As Integer
Dim IntAantal As Integer

IntAantal = InputBox(Prompt:="Aantal.", _
Title:="aantal bestellingen", Default:="aantal")

For IntTeller = 1 To IntAantal

stringToFind = InputBox(Prompt:="Produkt nummer.", _
Title:="ENTER Produktnummer", Default:="Produkt nummer")

If Trim(stringToFind) = "" Then Exit Sub

Set Found = Cells.Find(What:=stringToFind, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext _
, MatchCase:=False)

If Found Is Nothing Then
Else
With Found
.Activate
If Not Len(.Offset(RowOffset:=0, columnOffset:=0)) = 0 Then
.Offset(RowOffset:=0, columnOffset:=2) = .Offset(RowOffset:=0, columnOffset:=2) - 1
Else
MsgBox "Dit Produkt is er niet!"
End If
End With
End If

Next IntTeller

End Sub[/JS]
 
misschien moet je dit toevoegen rond je set Found ...
Code:
on error resume next
set found=nothing
Set Found = Cells.Find(What:=stringToFind, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext _
        , MatchCase:=False)
on error goto 0
 
zo iets?

Code:
Sub Stock()
    Dim stringToFind As String
    Dim Found As Range
    Dim IntTeller As Integer
    Dim IntAantal As Integer
    Dim ZoekGebied As Range
    Set ZoekGebied = Range("Blad1!A:A")
    IntAantal = InputBox(Prompt:="Aantal.", _
        Title:="aantal bestellingen", Default:=5) ' dit is het aantal producten dat je wilt verwerken.
    
    For IntTeller = 1 To IntAantal
        stringToFind = InputBox(Prompt:="Produkt nummer.", _
            Title:="ENTER Produktnummer", Default:="Produkt nummer")
   
        If Trim(stringToFind) = "" Then Exit Sub
        
        Set Found = ZoekGebied.Find(What:=stringToFind, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext _
            , MatchCase:=False)
        
        If Found Is Nothing Then
            MsgBox "Dit Produkt is er niet!"
        Else
           Found.Offset(RowOffset:=0, columnOffset:=2) = .Offset(RowOffset:=0, columnOffset:=2) - 1
        End If
    Next IntTeller
End Sub

groet sylvester
 
Hoi Julie,

zoals de manier zoals Sylverster voorstelt is de juiste manier om de melding weer te geven indien een productcode niet gevonden wordt.

Gr Robert
 
dit
Code:
Found.Offset(RowOffset:=0, columnOffset:=2) = .Offset(RowOffset:=0, columnOffset:=2) - 1
moet dit worden
Code:
Found.Offset(RowOffset:=0, columnOffset:=2) = Found.Offset(RowOffset:=0, columnOffset:=2) - 1

maar dat had je al ontdekt denk ik
groet sylvester
 
Laatst bewerkt:
Your the best, thanks!
waarom voeg je er trouwens deze code aan toe?

[JS] Dim ZoekGebied As Range
Set ZoekGebied = Range("Blad1!A:A")[/JS]

Groetjes
 
Your the best, thanks!
waarom voeg je er trouwens deze code aan toe?

[JS] Dim ZoekGebied As Range
Set ZoekGebied = Range("Blad1!A:A")[/JS]

Groetjes

Range("Blad1!A:A") is kolom A en daar staan je gegevens,
buiten deze kolom hoeft dus niet gezocht te worden.
als je dit niet doen,dus als je toevallig een zoekterm invult die buidten deze kolom ook bestaat gaat het fout.

groet
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan