Goedendag!
Ik zit met een probleempje in een excell sheet dat moet worden gebruikt voor een uren administratie.
Het volgende is er aan de hand:
Iedere werknemer heeft een kolom (C t/m BL ofzo) en op de rijen staan activiteiten waaraan je tijd hebt besteed.
Onderaan worden alle uren van een werknemer opgeteld (cell C677 t/m cell BL677).
Dit is allemaal gelukt.
Nu moet er een controle op de cellen op rij 677 komen waarbij een alarm (MsgBox ofzo) op komt als de waarde in cell C677 groter is dan een vooraf vastgestelde waarde (bijv. 40 uur).
Ik ben al met de VBA aan de klooi geweest en dit is het resultaat:
cell C678, in de code range c678 is een controle cell. Als dmv de msgbox overwerk al eens is bevestigd hoeft het alarm niet nog een keer af te gaan.
Dit werkt goed voor 1 kolom.
Private Sub worksheet_selectionchange(ByVal target As Excel.Range)
geeft aan dat VBA de waarden in de cellen moet gaan evalueren naar de If then statement in de sub.
Als ik direct de kolommen D t/m BL in dezelfde sub zet worden ook alle controle cellen (rij 678) op 1 gezet, en daarbij werkt het lastig als er mensen tussen moeten worden geplaatst.
Heeft iemand een idee en misschien zelfs een voorbeeldje hoe een dergelijke controle voor een range kan worden ontworpen?
Alvast bedankt!
Ik zit met een probleempje in een excell sheet dat moet worden gebruikt voor een uren administratie.
Het volgende is er aan de hand:
Iedere werknemer heeft een kolom (C t/m BL ofzo) en op de rijen staan activiteiten waaraan je tijd hebt besteed.
Onderaan worden alle uren van een werknemer opgeteld (cell C677 t/m cell BL677).
Dit is allemaal gelukt.
Nu moet er een controle op de cellen op rij 677 komen waarbij een alarm (MsgBox ofzo) op komt als de waarde in cell C677 groter is dan een vooraf vastgestelde waarde (bijv. 40 uur).
Ik ben al met de VBA aan de klooi geweest en dit is het resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
| Private Sub worksheet_selectionchange(ByVal target As Excel.Range)
If Range("C677") > 40 And Range("C678") < 1 Then
Response = MsgBox("U heeft deze week meer dan 40 uren gewerkt, klopt dat?", 4)
End If
If Response = vbYes Then ' User chose Yes.
Range("C678") = 1 ' Perform some action.
End If
End Sub |
cell C678, in de code range c678 is een controle cell. Als dmv de msgbox overwerk al eens is bevestigd hoeft het alarm niet nog een keer af te gaan.
Dit werkt goed voor 1 kolom.
Private Sub worksheet_selectionchange(ByVal target As Excel.Range)
geeft aan dat VBA de waarden in de cellen moet gaan evalueren naar de If then statement in de sub.
Als ik direct de kolommen D t/m BL in dezelfde sub zet worden ook alle controle cellen (rij 678) op 1 gezet, en daarbij werkt het lastig als er mensen tussen moeten worden geplaatst.
Heeft iemand een idee en misschien zelfs een voorbeeldje hoe een dergelijke controle voor een range kan worden ontworpen?
Alvast bedankt!
There is no beast without cruelty, Friedrich Nietzsche