Haai!
Dit is de eerste keer dat ik hier een vraag post, dus vergeef me als ik iets niet goed doe.....
Ik heb een excelbestand met personeelsgegevens, waaronder contractdata etc. Nu kreeg ik de vraag of er bij opening van het bestand een popup kon verschijnen met contracten die gaan verlopen. Hiervoor heb ik in jullie topics onderstaande vba codes gevonden. Ik krijg het alleen niet voor elkaar dat ie dat doet als je het bestand opent....
PS ik probeer mezelf vba te leren, maar tot nu toe is het vooral een kwestie van kopieren en plakken uit jullie forum
Dit is de eerste keer dat ik hier een vraag post, dus vergeef me als ik iets niet goed doe.....
Ik heb een excelbestand met personeelsgegevens, waaronder contractdata etc. Nu kreeg ik de vraag of er bij opening van het bestand een popup kon verschijnen met contracten die gaan verlopen. Hiervoor heb ik in jullie topics onderstaande vba codes gevonden. Ik krijg het alleen niet voor elkaar dat ie dat doet als je het bestand opent....
Code:
Sub Workbook_Open()
Dim UR As Range, cConst As Range, cForm As Range, KolDatums As Range, c As Range, Tekst As String, verschil As Integer, Lresponse As Variant
With Sheets("actief") 'in dit werkblad
Set UR = .UsedRange 'beperken tot usedrange
On Error Resume Next
Set cConst = UR.Offset(, Columns("U").Column - UR.Column).SpecialCells(xlConstants, xlNumbers) 'alle vaste getallen in kolom U
Set cForm = UR.Offset(, Columns("U").Column - UR.Column).SpecialCells(xlFormulas, xlNumbers) 'alle berekende getallen (via formules) in kolom U
Set KolDatums = Intersect(.Columns("U"), Union(IIf(cConst Is Nothing, .Range("A1"), cConst), IIf(cForm Is Nothing, .Range("A1"), cForm))) 'alle getallen in kolom F
If KolDatums Is Nothing Then
MsgBox "er zijn geen datums in kolom U"
Else
For Each c In KolDatums.Cells '1 voor 1 alle getallen aflopen
If IsDate(c) Then 'is het een datum
verschil = c.Value - Date
Select Case verschil
Case -14 To 14 'binnen de 14 dagen aflopen
Tekst = Tekst & "Het contract van " & c.Offset(, -20).Value & c.Offset(, -19).Value & c.Offset(, -18).Value & " verloopt over " & verschil & " dagen." & vbLf
End Select
End If
Next
End If
End With
If Tekst <> "" Then Lresponse = MsgBox(Tekst, vbCritical, "Let op!")
End Sub
PS ik probeer mezelf vba te leren, maar tot nu toe is het vooral een kwestie van kopieren en plakken uit jullie forum