groenevinger
Gebruiker
- Lid geworden
- 23 jan 2014
- Berichten
- 5
Ik heb een aantal macro's welke ik in eerste instantie ingang wilde laten zetten zodra een bepaalde combinatie aan voorwaardelijke cellen daarvoor ingevuld waren. (Dit d.m.v. een Worksheet_Change event, iedere macro heeft een andere combinatie aan voorwaardelijke/verplichte cellen en gebruikt/rekent via een ander tabblad, de resultaten worden aan het eind van de macro op het eerste tabblad: wachtformulier geplaatst).
Kennelijk is dat zo eenvoudig nog niet.
Daarom wil ik twee (of alle vijf) van de macro's dan maar aan een knop koppelen.
Echter wil ik dat de macro pas uitgevoerd wordt zodra de combinatie aan voorwaardelijke/verplichte cellen ingevuld zijn, omdat daarmee gerekend wordt, anders komen er verkeerde waardes, nul waardes of #deel/0 in de doelcellen te staan, dit wil ik dan ook voorkomen.
Bijvoorbeeld voor een van de macro's zijn de cellen: "D8:E8,J18:J21" verplicht alvorens de macro in z'n geheel af te kunnen draaien. Ik had gedacht om de waardes in genoemde cellen bijvoorbeeld met elkaar te vermenigvuldigen, als één of meer van de cellen niet ingevuld zijn dan komt er dus 0 uit de vermenigvuldiging.
Dus als het 0 is -niet aan de vereiste voldoet- dan de macro afbreken (exit), maar voordat er een exit plaatsvindt eerst nog een waarschuwende msgbox op het scherm, met daarin een melding en die dan met een "OK" weggeklikt kan worden. Als de wel alle verplichte cellen ingevuld zijn (met waardes hoger dan 0), dan kan de macro volledig afgedraaid worden, zonder msgbox.
Twee van de vijf macro's:
Of wellicht nog mooier, per cel kijken of de betreffende vereiste cellen ingevuld zijn, dan zou dit het mogelijk maken om wanneer één of meer cellen niet ingevuld zijn deze cellen dan een andere achtergrondkleur te geven. Welke weer wit wordt (als dit mogelijk is) na het wegklikken van de msgbox. Of misschien makkelijker als de macro volledig doorlopen kan worden, aan het eind van de macro de cellen weer een witte achtergrondkleur geven.
Het is helaas geen optie om de vereiste cellen voor alle verschillende berekeningen middels voorwaardelijke opmaak een andere achtergrondkleur te geven indien niet ingevuld, daar de verplichte cellen alleen verplicht zijn wanneer men er een berekening mee doet, het kan zo zijn dat die berekening niet plaatsheeft, maar de cellen dan standaard al een andere achtergrondkleur hebben. Dat is niet de bedoeling.
Ik hoop dat iemand mij wat op weg zou kunnen helpen, om de voorwaardelijke check in de macro te verwerken met een eventuele msgbox. Hoe is dit het beste voor elkaar te krijgen?
Kennelijk is dat zo eenvoudig nog niet.
Daarom wil ik twee (of alle vijf) van de macro's dan maar aan een knop koppelen.
Echter wil ik dat de macro pas uitgevoerd wordt zodra de combinatie aan voorwaardelijke/verplichte cellen ingevuld zijn, omdat daarmee gerekend wordt, anders komen er verkeerde waardes, nul waardes of #deel/0 in de doelcellen te staan, dit wil ik dan ook voorkomen.
Bijvoorbeeld voor een van de macro's zijn de cellen: "D8:E8,J18:J21" verplicht alvorens de macro in z'n geheel af te kunnen draaien. Ik had gedacht om de waardes in genoemde cellen bijvoorbeeld met elkaar te vermenigvuldigen, als één of meer van de cellen niet ingevuld zijn dan komt er dus 0 uit de vermenigvuldiging.
Dus als het 0 is -niet aan de vereiste voldoet- dan de macro afbreken (exit), maar voordat er een exit plaatsvindt eerst nog een waarschuwende msgbox op het scherm, met daarin een melding en die dan met een "OK" weggeklikt kan worden. Als de wel alle verplichte cellen ingevuld zijn (met waardes hoger dan 0), dan kan de macro volledig afgedraaid worden, zonder msgbox.
Twee van de vijf macro's:
Code:
Sub Macro_Solver_ML8()
Range("Wachtformulier!$H$8").Value = Range("klinkermaling!$C$18").Value
Range("Wachtformulier!$I$8").Value = Range("klinkermaling!$C$19").Value
End Sub
Code:
Sub Macro_Solver_HOC()
Application.ScreenUpdating = False
Sheets("Solv.HOC").Select
SolverOk SetCell:="$H$14", MaxMinVal:=2, ValueOf:="0", ByChange:="$B$14:$C$14"
SolverSolve (True)
Sheets("Wachtformulier").Select
Range("J27:N27").Select
Application.ScreenUpdating = True
Range("Wachtformulier!$J$11:$L$11").Value = Range("Solv.corr!$J$2:$L$2").Value
End Sub
Of wellicht nog mooier, per cel kijken of de betreffende vereiste cellen ingevuld zijn, dan zou dit het mogelijk maken om wanneer één of meer cellen niet ingevuld zijn deze cellen dan een andere achtergrondkleur te geven. Welke weer wit wordt (als dit mogelijk is) na het wegklikken van de msgbox. Of misschien makkelijker als de macro volledig doorlopen kan worden, aan het eind van de macro de cellen weer een witte achtergrondkleur geven.
Het is helaas geen optie om de vereiste cellen voor alle verschillende berekeningen middels voorwaardelijke opmaak een andere achtergrondkleur te geven indien niet ingevuld, daar de verplichte cellen alleen verplicht zijn wanneer men er een berekening mee doet, het kan zo zijn dat die berekening niet plaatsheeft, maar de cellen dan standaard al een andere achtergrondkleur hebben. Dat is niet de bedoeling.
Ik hoop dat iemand mij wat op weg zou kunnen helpen, om de voorwaardelijke check in de macro te verwerken met een eventuele msgbox. Hoe is dit het beste voor elkaar te krijgen?
Laatst bewerkt: