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

vraage ivm tellen

Status
Niet open voor verdere reacties.

nobeleyes

Gebruiker
Lid geworden
22 okt 2013
Berichten
47
In cel A6 staat een artikelnummer
In Cel B6 wordt het aantal genoteerd dat uit de voorraad wordt gehaald
In cel C6 staat de resterende stock

1) graag wil ik in cel C6 met een bepaald aantal beginnen
2) Als de orderpikker van het artikel uit A6 er een aantal wegneemt vult hij dit in in cel B6
3) in cel C6 moet de rest blijven staan
4) telkens er van het zelfde artikel een aantal worden weggehaald wordt dit in B6 ingevuld
5) in C6 moet het aantal telkens aangepast worden.

Hoe pak ik dit het best aan? met een formule lukt dit me precies niet echt...

wie weet er raad?
 
Dat zal niet lukken met enkel formules.
 

Bijlagen

  • probleem met tellen.xls
    32,5 KB · Weergaven: 27
bedankt....
lijkt me meer dan bruikbaar...

had het zo nog niet bekeken... dacht het met een formule opgelost te krijgen maar zat steeds met een kringverwijzing

In deze lijst staan een 100 tal artikels
kan deze VBA daar zo voor gebruikt worden of moet ik dan nog iets aanpassen?
 
Laatst bewerkt:
Ja dan moet natuurlijk het bereike(en) aangepast worden:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error GoTo oeps
  If Not Intersect(Target, Range("B:B")) Is Nothing Then
   Target.Offset(, 2) = Target.Offset(, 2) - Target
  End If
  
  If Not Intersect(Target, Range("C:C")) Is Nothing Then
   Target.Offset(, 1) = Target.Offset(, 1) + Target
  End If
oeps:
End Sub

Deze code geldt voor:
IN in kolom B
Uit in kolom C
saldo in kolom D
 
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo oeps
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Target.Offset(, 2) = Target.Offset(, 2) - Target
End If

If Not Intersect(Target, Range("C:C")) Is Nothing Then
Target.Offset(, 1) = Target.Offset(, 1) + Target
End If
oeps:
End Sub
If Not Intersect(Target, Range("B:B")) -> vul ik hier de range in? bv. ("B9:B109")

doe ik hetzelfde voor de range van C?

waar in de VBA zie ik dat hij de berekening in D maakt?

bedankt alvast
 
Nu inclusief de nodige uitleg:

Code:
' laat de code lpen bij elke wijziging in het actieve werkblad
Private Sub Worksheet_Change(ByVal Target As Range)
' Bij een onverhoopt foutje springt de code naar het einde
 On Error GoTo oeps
' Als die wijziging gebeurt in kolom B -dit kan je beperken tot Range("B9:B109") - dan volgende berekening
  If Not Intersect(Target, Range("B:B")) Is Nothing Then
' De waarde die ingegeven is in kolom B wordt van het totaal - 2 cellen naar rechts - afgetrokken  
   Target.Offset(, 2) = Target.Offset(, 2) - Target
  End If
'  Als die wijziging gebeurt in kolom C -dit kan je beperken tot Range("C9:C109") - dan volgende berekening
  If Not Intersect(Target, Range("C:C")) Is Nothing Then
' De waarde die ingegeven is in kolom C wordt bij het totaal - 1 cel naar rechts - bijgeteld   Target.Offset(, 1) = Target.Offset(, 1) + Target
  End If
'foutafhandeling
oeps:
' einde
End Sub
 
Beste Cobbe

Hij werkt super! heb er nog een uitbreiding aan vastgehangen
deze berekening moest hij een aantal cellen verder nogmaals doen...

en ja hoor, als weinig onderlegde VBA'r is het gelukt...
en dat dankzij jou!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan