Excell, VBA, MsgBox controle op cellen

Pagina: 1
Acties:
  • 498 views sinds 30-01-2008
  • Reageer

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
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:

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


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 22-08 23:21

NetForce1

(inspiratie == 0) -> true

Je kunt de kolom variabel maken (bijv. door cells te gebruiken ipv range). En zo voor iedereen apart de melding laten geven

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Gaat dat nog wel onder dezelfde private sub??

There is no beast without cruelty, Friedrich Nietzsche