Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Automatisch berekenen van kolommen.  (gelezen 2258 keer)

0 leden en 1 gast bekijken dit topic.

Offline Jamnesia

  • Volledig lid
  • **
  • Berichten: 136
  • Oplossing.be
Automatisch berekenen van kolommen.
« Gepost op: 27 januari 2021, 12:18:12 »
Ik ben een Exceldocument aan maken waar we onze stock wat in kunnen controleren.

Kolom 1 staat het type profiel
Kolom 2 staat het aantal dat we aangekocht hebben
Kolom 3 staat hetgeen we per dag verbruiken (dus elke dag is dit terug op 0, want we vullen dit keer op keer terug in)
Kolom 4 staat dan wat we momenteel nog in stock hebben.

Mijn vraag is, welke formule ik moet gebruiken om hetgeen we in kolom 3 invullen, steeds afgetrokken zou worden van kolom 1, om dan zo een overzicht te hebben in kolom 4.
Stel we hebben 6000 (kolom 2) stuks aangekocht. Maandag verbruiken we er 500 (invullen kolom 3) en dan staat er 5500 in kolom 4. Dat is makkelijk voor mij. Maar op dinsdag verbruiken we er 1200 stuks van. Dus ik vul in kolom 3, 1200 stuks. Normaal zal dan in kolom 4 als uitkomst moeten komen te staan (6000 bestelde stuks - 500st van maandag en nu dan - nog eens 1200st van dinsdag.

Hoe kan ik er voor zorgen dat wanneer we in Kolom 3 een getal invullen, dit steeds afgetrokken zal worden van het totaal - de vorige getallen in kolom 3.

Zo kunnen we bekijken hoeveel profielen we op die moment nog in stock hebben.

Alvast bedankt.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #1 Gepost op: 27 januari 2021, 14:07:38 »
Daar moet je dan óf aan de slag met VBA om de berekende waarde af te handelen, óf je opzet veranderen. Ik zou eerder werken met 2 tabellen. De ene is je af- en bijboeking. De andere de artikel-en-voorraadpositie.
Zo'n af- en bijboeking tabel zou uit de velden Artikelnr, ArtikelOmschrijving, Aantal mutatie, Mutatie soort [af, bij], Berekende mutatie aantal, Invoer Datum/Tijd. Als je dan via een formule het berekende aantal laat tonen adhv de mutatie soort, dan kan je bij Aantal Mutatie altijd met een positief getal werken en zorg je er met de formule voor dat die negatief is bij 'af' en positief bij 'bij'.
Bij de voorraadpositietabel kan je dan een sumif (som.als) zetten op die kolom Berekende Mutatie Aantal voor een actuele voorraad stand.

Het is maar een ideetje. Op deze manier kan je namelijk óók je mutaties op een artikel volgen. Da's handig als er een keer een voorraadverschil oid optreedt.
______________________________

Groet, Leo

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.164
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Automatisch berekenen van kolommen.
« Reactie #2 Gepost op: 27 januari 2021, 14:11:03 »
Hallo Jamnesia,

Maak een kolom bij vóór kolom E
In E1 zet je tekst Nieuwe aankoop
De volgende code zou ongeveer moeten werken:

Option ExplicitPrivate Sub Worksheet_Change(ByVal Target As Range)
   Application.DisplayAlerts = False
   If Target.Column = 5 Then
        Range("F" & Target.Row).Value = Range("F" & Target.Row).Value + Range("E" & Target.Row).Value
        Range("E" & Target.Row) = 0
    ElseIf Target.Column = 7 Then
        Range("H" & Target.Row).Value = Range("F" & Target.Row).Value - Range("G" & Target.Row).Value 'Fout
    End If
End Sub

Maar ik geraak niet af van die foutmelding in die laatste rij....  :-[

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Jamnesia

  • Volledig lid
  • **
  • Berichten: 136
  • Oplossing.be
Re: Automatisch berekenen van kolommen.
« Reactie #3 Gepost op: 27 januari 2021, 14:44:37 »
Oké, ik probeer hier mee aan het werk te gaan. Even wat testen.  :) :) :)

Alvast al heel hartelijk dank. Moesten er nog andere oplossingen gevonden worden, keep posting it.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #4 Gepost op: 27 januari 2021, 14:49:54 »
SoftAid, je moet je code in elk geval wel laten beginnen met de Application.EnableEvents = False. Je vraagt uit of het kolom 5 of 7 is, maar die ben je daarna ook nog aan 't muteren. Je zal dus in een stevige lus komen omdat het Change event zichzelf daarmee steeds aanroept. Vergeet niet om alles ook weer aan te zetten, met wat je uitzet via Apllication.xxx.
______________________________

Groet, Leo

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.164
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Automatisch berekenen van kolommen.
« Reactie #5 Gepost op: 27 januari 2021, 15:05:20 »
Hallo Jamnesia,

Er zaten nog wat vergeten maar noodzakelijke lijntjes in mijn code.
In bijlage een werkboek waar kolommen zijn bijgemaakt en dat in principe zou moeten werken.
Maar soms krijg ik nog een foutmelding waar ik geen raad mee weet.

RedHead,

nu werkt er niets meer, maar ik krijg ook geen foutmeldingen meer  :D :D :D

Private Sub Worksheet_Change(ByVal Target As Range)

        Application.EnableEvents = False
    If Target.Column = 5 Then
        Range("F" & Target.Row).Value = Range("F" & Target.Row).Value + Range("E" & Target.Row).Value
        Range("E" & Target.Row) = 0
        Application.EnableEvents = True
    ElseIf Target.Column = 7 Then
        Range("H" & Target.Row).Value = Range("H" & Target.Row).Value + Range("G" & Target.Row).Value
        Range("I" & Target.Row).Value = Range("F" & Target.Row).Value - Range("H" & Target.Row).Value
        Range("G" & Target.Row) = 0
        Application.EnableEvents = True
    Else
        MsgBox ("Enkel Nieuwe aankoop of Nieuw gebruikt invullen !")
        Application.EnableEvents = True
    End If
End Sub

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #6 Gepost op: 27 januari 2021, 15:12:50 »
Whoopsie... my mistake...  :D
Je moet die 2 opdrachten van de Application.xxx ook binnen je uitvraging doen van je kolommen. Nu heb je er voor gezorgd dat je 'm volledig hebt uitgeschakeld.  ;)
Open je immediate window en plak daar even de 2 regels met application.xxx en dan met de waarde op TRUE en er dan doorheen enteren om ze te laten werken. Dan staan de events weer aan en werkt je code ook weer.
______________________________

Groet, Leo

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Automatisch berekenen van kolommen.
« Reactie #7 Gepost op: 27 januari 2021, 15:22:37 »
Hehe, ik wou net (ongeveer) hetzelfde zeggen...
Dan nog 1 klein 'dingetje': ook bij nieuwe aankoop moet het beschikbaar aantal herrekend worden  ;)
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.164
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Automatisch berekenen van kolommen.
« Reactie #8 Gepost op: 27 januari 2021, 15:37:39 »
RedHead,

Had ik al gedaan na elke mogelijke event
Helpt niet.
Pitufo,

idem, en die herberekening zat ook al in mijn vorige wijziging, niet in het werkboek in bijlage.

niks werkt, maar ook geen foutmeldingen;

Laatste code staat in mijn vorig bericht maar ik hang hier nogmaals mijn werkboek aan.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #9 Gepost op: 27 januari 2021, 15:56:07 »
SoftAid, Draai eerst 'ns deze sub
Sub ResetApplicationDingen()

    Application.EnableEvents = True
    Application.DisplayAlerts = True
   
End Sub
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #10 Gepost op: 27 januari 2021, 16:04:32 »
En daarna deze licht aangepaste versie van jouw code (niet getest, uit de losse pols en alleen die grotere IF er omheen gezet die je al eerder had en 3 regels als commentaar gezet met het quotje in de kantlijn)
Private Sub Worksheet_Change(ByVal Target As Range)

    if target.column = 5 or target.column = 7 then
    Application.EnableEvents = False
    If Target.Column = 5 Then
        Range("F" & Target.Row).Value = Range("F" & Target.Row).Value + Range("E" & Target.Row).Value
        Range("E" & Target.Row) = 0
 '       Application.EnableEvents = True
    ElseIf Target.Column = 7 Then
        Range("H" & Target.Row).Value = Range("H" & Target.Row).Value + Range("G" & Target.Row).Value
        Range("I" & Target.Row).Value = Range("F" & Target.Row).Value - Range("H" & Target.Row).Value
        Range("G" & Target.Row) = 0
 '       Application.EnableEvents = True
    Else
        MsgBox ("Enkel Nieuwe aankoop of Nieuw gebruikt invullen !")
 '       Application.EnableEvents = True
    End If
    Application.EnableEvents = True
    end if
End Sub
______________________________

Groet, Leo

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Automatisch berekenen van kolommen.
« Reactie #11 Gepost op: 27 januari 2021, 16:04:59 »
Hallo SoftAid,

In alle werkboeken en code die ik zie passeren zit nergens die herrekening, hoor.
Kijk eens naar het verschil in je code wanneer kolom 5 en wanneer kolom 7 is.

Na uitvoering van RedHead's repair-macro zou je 't zo kunnen doen.
(tussen haakjes: je msgbox staat daar wel maar je invoer in de 'verkeerde' kolommen zal wel nog geaccepteerd worden, dus ik laat je ook nog wat werk...)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 5 Or Target.Column = 7 Then
    Application.EnableEvents = False
    If Target.Column = 5 Then
        Range("F" & Target.Row) = Range("F" & Target.Row) + Target
    End If
    If Target.Column = 7 Then
        Range("H" & Target.Row) = Range("H" & Target.Row) + Target
    End If
    Target = 0
    Range("I" & Target.Row) = Range("F" & Target.Row) - Range("H" & Target.Row)
    Application.EnableEvents = True
Else
    MsgBox ("Enkel Nieuwe aankoop of Nieuw gebruikt invullen !")
End If

End Sub


[Edit:]
@ RedHead,
We waren blijkbaar binnen dezelfde minuut bezig. Ik vrees dat je hetzelfde stukje mist bij kolom 5.
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Automatisch berekenen van kolommen.
« Reactie #12 Gepost op: 27 januari 2021, 16:15:17 »
Pitufo, het is ook een beetje tussendoor tijdens een Teams meeting....  Ha haha.. Ik heb dus letterlijk zonder verder de code van SoftAid echt te bestuderen deze overgenomen en in elk geval de commando's op de juiste plekken gezet. Maar verder dus niet bekeken. ;)
______________________________

Groet, Leo

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Automatisch berekenen van kolommen.
« Reactie #13 Gepost op: 27 januari 2021, 16:19:54 »
't Is ook niet dat er rampen gebeurd zijn, hé RedHead...  :)
Trouwens, in 22,4% van de gevallen ben ik ook steeds te gehaast  :D
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.164
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Automatisch berekenen van kolommen.
« Reactie #14 Gepost op: 27 januari 2021, 16:25:36 »
Pitufo,

die fout voor op nul zetten van kolom G had ik ook gezien, gewoon vergeten.
Maar dat was geen reden voor niet werken of foutmelding.

Nu heb ik de macro van Redhead even getest, en die werkt, behalve de Msgbox verschijnt niet als ik op een cel zit die niet handmatig mag aangepast worden.
Ik heb van die Else al een
ElseIf Target.Column = 6 Or Target.Column > 7 Then
MsgBox ("Enkel Nieuwe aankoop of Nieuw gebruikt invullen !")
        Application.EnableEvents = True
gemaakt, maar dat helpt ook niet. Die "verboden" cellen zijn ook gewoon veranderbaar....   >:(

Wat ik dus helemaal niet snap is is die "reset" macro.
Ik snap wel wat daar staat, maar waarom ??? moet je zo iets apart uitvoeren?

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com