[Excel/VBA] Afboeken komt op negatieve waarden

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Joeyvld
  • Registratie: Februari 2019
  • Laatst online: 27-09-2019
Beste mensen. Ik heb een voorraadbeheersysteem in Excel waarvan de voorraad in negatieve waarden uitkomt met afboeken. Is dit op te lossen zodat er geen negatieve voorraad kan ontstaan? Onderstaand de betreffende macro die ik gebruik:

Sub Afboeken()

For Each cl In [C9:C999]
If cl <> "" Then
sq2 = cl.Offset(, -1).Value
With Sheets("Voorraad")
Set FoundCell = .Range("A:A").Find(cl)
sq1 = .Range(FoundCell.Address).Offset(, 3).Value
.Range(FoundCell.Address).Offset(, 3).Value = sq1 - sq2

End With
End If
Next

End Sub

Alvast bedankt!

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Welkom @Joeyvld :)

Ik begrijp niet wat de vraag is. De code hangt af van wat je precies wilt bereiken. Bijvoorbeeld een alert geven als waarden negatief dreigen te worden. Dat is dan simpelweg een if() of twee toevoegen. Als kleiner dan nul, dan bijv de betreffende cl rood maken.

De code die je laat zien, kan trouwens denk ik ook best zonder VBA. Maar misschien zijn er andere functies waar dat anders voor is.

offtopic:
Ik pas de topictitel iets aan, de belangrijke duiding dat het om een Excel macro gaat ontbreekt.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Joeyvld
  • Registratie: Februari 2019
  • Laatst online: 27-09-2019
Dankje voor de reactie. Via deze code word via een afboekknop de voorraad afgeboekt. De voorraad word op een andere sheet bijgehouden en op deze sheet gaat de voorraad de min in als het af te boeken aantal hoger is dan de voorraad. Het zou de bedoeling moeten zijn dat er geen negatieve voorraad mogelijk is. Thanx

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Vraag blijft: wat moet er dan wel gebeuren. Bijvoorbeeld dat de gebruiker er op wordt gewezen (er is een telfout gemaakt als negatieve voorraad niet bestaat), dat er moet worden bijbesteld, dat het op nul wordt gezet (maar dat lijkt me heel erg faudt), of iets anders. Maar hoe en wat, dat is aan jou / de opdrachtgever. Het programmeren lijkt me dan in alle gevallen die ik kan bedenken triviaal. if sq1-sq2 < 0 then {doe iets}

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 20:45
Moet ik me voorstellen dat op sheet1 de voorraad voor een bepaalde opdracht is, en sheet2 het totaal?

Op sheet1 zou dan in kolom 1 de id staan, kolom2 de voorraad en kolom3 het verschil tussen kolom2 en de voorraad op sheet2. Dus iets als
Visual Basic:
1
=als(b2-index(sheet2!b:b; vergelijken(A2; sheet2!a:a;0))<0;"Negatief";"")