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

Voorraadadministratie met Excel

Status
Niet open voor verdere reacties.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 5 Or Target.Column = 6 Then
If Cells(Target.Row, "G").Value = "Ophoogzand" and Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "B").Value
End If
End If

End Sub

Niks is rood meer, maa hij werkt nog nie:p Als ik 200 invoer in de hoeveelheid veranderd er niks in blad 1....
 

Bijlagen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 5 Or Target.Column = 6 Then
If Cells(Target.Row, "G").Value = "Ophoogzand" and Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "B").Value
End If
End If

End Sub

Niks is rood meer, maa hij werkt nog nie Als ik 200 invoer in de hoeveelheid veranderd er niks in blad 1....
 

Bijlagen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 5 Or Target.Column = 6 Then
If Cells(Target.Row, "G").Value = "Ophoogzand" and Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "B").Value
End If
End If

End Sub

Niks is rood meer, maa hij werkt nog nie Als ik 200 invoer in de hoeveelheid veranderd er niks in blad 1....

Dat klopt!
Omdat je vergeten bent om de verwijzing naar de hoeveelheid aan te passen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Or Target.Column = 5 Or Target.Column = 6 Then
    If Cells(Target.Row, "G").Value = "Ophoogzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "[B][COLOR="Red"]F[/COLOR][/B]").Value
    End If
End If

End Sub

Met vriendelijke groet,


Roncancio
 
Super!! :thumb: Hij doet het bijna zoals ik wil ;)

Ik heb nog een klein probleempje..

Stel ik typ bij hoeveelheid 50 in, in blad 2. Dan springt hij in blad 1 op 50. Das helemaal goed:D

Maar heb ik nu een fout gemaakt en ik maak van 50 bijvoorbeeld 10 in blad 2, dan telt hij deze 10 weer bij blad 1 op. Daar komt dus 60 te staan in plaats van 10.

Is hier ook nog een oplossing voor?:o

Alvast bedankt:thumb:
 
Tel dan -10 op? bedoel je aanpassen in het voorblad?

Als ik 50 intyp, en dat is fout, ik maak er 10 van. Dan maakt de computer er 60 van. De kans dat een medewerker dus een fout overzicht heeft wordt heel groot als hij veel orders achter elkaar intypt.

Kan dat niet dat hij eerst het foute bedrag eraf haalt en dan het goede weer optelt?
 
Als je 50 ingeeft en dat is fout, tel dan -50 nog eens op en de 50 is eigenlijk ongedaan gemaakt. Toch?
 
Klopt, dan zet ik dat erbij als instructietekst:thumb:

Mensen hardstikke bedankt voor de hulp:thumb::thumb::thumb::thumb:
 
Beste mensen,

Ik krijg het nog niet helemaal voor elkaar met mijn Excel model.

Als ik namelijk eerst mijn hoeveelheid invul in blad 2, en dan selecteer dat de order is geaccepteerd voor het goede soort zand, dan veranderd met getal in het voorblad niet.

Dit getal veranderd alleen als ik eerst de goede soort zand selecteer en dan de order accepteer, en dan pas de hoeveelheid. Dan gaat het wel goed. Maar normaal voeren de medewerkers eerst de hoeveelheid in, en later wordt de order door de verkoper geaccepteerd. Maar dan veranderd het dus niet.

Is het verder ook mogelijk dat ik later de order weer op niet geaccepteerd zet, of op een ander soort zand, dat de computer het dan automatisch van bijvoorbeeld ophoogzand afhaald en weer bij een ander soort zand opzet? Als ik een ander soort zand kies?

Ik hoop dat jullie dit makkelijk kunnen toepassen, want dan ben ik er helemaal uit:D:thumb:

Alvast bedankt!

groeten,

Erik
 

Bijlagen

Laatst bewerkt:
Waarom niet op deze manier? Selecteer hoeveelheid, soort zand en status v/h order en alles wordt automatisch op de juiste plaats gezet.
Zowel bij orders al bij reserveringen.

Mvg

Rudi
 

Bijlagen

Ik heb de macro aangepast omdat de macro uitsluitend werkte indien in de kolommen 4 t/m 6 ipv 6 t/m 8 een wijziging wordt aangebracht.
Bovendien zit op het werkblad "Nog uit te voeren orders" op de 4e regel een dropdownlijst en formules om de klanten en de bijgehorende gegevens weer te geven. Deze cellen kan je naar beneden slepen.
Je vraag omtrent het herstellen is een beetje tricky omdat er geen referentie is. Je kunt als gebruiker niet goed zien of de wijziging is aangebracht of niet. Deze methode werkt in mijn ogen fouten in de hand.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Dank je Roncancio!! Dit bedoel ik!

Ik snap alleen geloof ik nog veel te weinig van die VBA codes. Want als ik nu de volgende soort zand eronder wil zetten, zegt de computer dat ik geen einde heb in mijn instructie. Dit heb ik nu:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "G").Value = "Ophoogzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "F").Value
    
[COLOR="Red"]And If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 [/COLOR]Then
    If Cells(Target.Row, "G").Value = "Metsel- en betonzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("C10").Value = Worksheets(1).Range("C10").Value + Cells(Target.Row, "F").Value

End Sub

Wat is hiervoor de code? Om nog een instructie in te voegen?
 
Dank je Roncancio!! Dit bedoel ik!

Ik snap alleen geloof ik nog veel te weinig van die VBA codes. Want als ik nu de volgende soort zand eronder wil zetten, zegt de computer dat ik geen einde heb in mijn instructie. Dit heb ik nu:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "G").Value = "Ophoogzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "F").Value
    
[COLOR="Red"]And If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 [/COLOR]Then
    If Cells(Target.Row, "G").Value = "Metsel- en betonzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("C10").Value = Worksheets(1).Range("C10").Value + Cells(Target.Row, "F").Value

End Sub

Wat is hiervoor de code? Om nog een instructie in te voegen?

Die rode regel heb je niet nodig.
Er zijn verschillende manieren om het te doen.

1.
Code:
If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "G").Value = "Ophoogzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "F").Value
    ElseIf Cells(Target.Row, "G").Value = "Metsel- en betonzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("C10").Value = Worksheets(1).Range("C10").Value + Cells(Target.Row, "F").Value
    End If
End If
Dus steeds een ElseIf toevoegen. Liever niet onderstaande:
Code:
If

End If
If

End If
Eventueel kan je nog een Else toevoegen als aan geen van de voorwaardes is voldaan en er moet iets worden neergezet.

Bijv.;

Code:
If

ElseIf

ElseIf

ElseIf

Else

End If

Een alternatief op If...End If is het gebruik van Cases wat veel gedaan wordt.
2.

Code:
If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Select Case Cells(Target.Row, "G").Value
            Case "Ophoogzand"
                Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "F").Value
            Case "Metsel- en betonzand"
                Worksheets(1).Range("C10").Value = Worksheets(1).Range("C10").Value + Cells(Target.Row, "F").Value
        End Select
    End If
End If
Ook hier kan je een Case Else toevoegen.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Oke, en als ik dan deze manier van je kies:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "G").Value = "Ophoogzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then
        Worksheets(1).Range("B10").Value = Worksheets(1).Range("B10").Value + Cells(Target.Row, "F").Value
    [COLOR="Red"]Elself Cells(Target.Row, "G").Value = "Metsel- en betonzand" And Cells(Target.Row, "H").Value = "Order geaccepteerd" Then[/COLOR]
        Worksheets(1).Range("C10").Value = Worksheets(1).Range("C10").Value + Cells(Target.Row, "F").Value
    
    End If
End If

End Sub

Geen instructieeinde geeft hij aan??

Met vriendelijke groet,

Erik
 
Als ik je code kopieer naar mijn omgeving blijkt dat er een l in de if van ElselF staat in plaats van een i.
Dus in hoofdletters heb je geschreven:
ELSELF ipv ELSEIF.

Met vriendelijke groet,


Roncancio
 
haha oeps, ik had het voor een L aangezien haha:p

Nu werkt hij mooi per soort zand. Supperzz:thumb::thumb:

Nu had ik nog een vraagje:o

Onder het kopje "Nog uit te voeren orders" staan de orders die vandaag moeten worden uitgevoerd.

Onder het kopje "Reserveringen van klanten" staan de orders die morgen of later moeten worden uitgevoerd.

De volgende dag maak ik dan een kopie van dit excel model en voer de nieuw beginvoorraad handmatig in aan de hand van de eindvoorraad. van de dag van gister.

De orders die gisteren zijn uitgevoerd print ik uit, en het scherm wis ik. De orders die vandaag moeten worden uitgevoerd, maar die nog bij de reserveringen staan, kopieëer ik, en plak ik in de "Nog uit te voeren orders" van vandaag.

Is het dan mogelijk dat het Excel model automatisch het goede getal per soort zand in het eerste werkblad zet? En als ik de getallen voor vandaag bij de reserveringen weghaal, dat hij dan automatisch het bedrag bij de reserveringen in mindering brengt?

Of hebben jullie een betere oplossing?

Alvast bedankt!!

groeten,

Erik
 
Laatst bewerkt:
Is het dan mogelijk dat het Excel model automatisch het goede getal per soort zand in het eerste werkblad zet? En als ik de getallen voor vandaag bij de reserveringen weghaal, dat hij dan automatisch het bedrag bij de reserveringen in mindering brengt?
Volgens mij worden de nieuwe waardes toch automatisch bij de juiste zandsoort geplaatst. Of zit ik er nu naast?

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan