Plotinus
Gebruiker
- Lid geworden
- 25 mrt 2007
- Berichten
- 649
Ik wil twee (naastgelegen) cellen optellen en evalueren in VBA-Excel waarbij een paar variabelen worden meegegeven (zoals weeknummer; wknr en naam). Dit lukt, maar ziet er erg omslachtig uit, wat dus mogelijk vertragend werkt. Vraag is dus of dit slimmer kan. Hieronder de gehele 'event' met in 'Bold' de lijn code waar het om gaat en in groen waar het verschil in de optelling zit..
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim wknr As Byte
Dim Verplts As Single
wknr = DatePart("ww", Now)
Titel = "Urencontrole"
Application.ScreenUpdating = False
If (Target.Column = 12 Or Target.Column = 18) Then
If Target.Value = "Piet" Then Verplts = 0
If Target.Value = "Klaas" Then Verplts = 3
[B] Toebedeeld = Worksheets("Inzetbaarheid").Range("E" & wknr).Offset(3, [COLOR="#008000"]Verplts[/COLOR]) + Worksheets("Inzetbaarheid").Range("E" & wknr).Offset(3, [COLOR="#008000"]Verplts + 1[/COLOR])[/B]
Beschikbaar = Worksheets("Inzetbaarheid").Range("D" & wknr).Offset(3, Verplts)
Bericht = "Te veel uren voor " & Target.Value & "! In deze week (week " & wknr & " ) heeft " & Target.Value & " " & Toebedeeld & " uur toebedeeld gekregen, maar hij heeft dan " & Beschikbaar & " uur beschikbaar."
If (Target.Value = "Piet" And Toebedeeld > Beschikbaar) Then Button = MsgBox(Bericht, 48, Titel)
If (Target.Value = "Klaas" And Toebedeeld > Beschikbaar) Then Button = MsgBox(Bericht, 48, Titel)
End If
ActiveWorkbook.Save
End Sub