Hi
Eerst al bedankt voor de hulp
Ik wil de afwezigheidskalender verder uitbreiden met de mogelijkheid dat ik ook het aantal overuren dat ik genomen heb op een bepaalde datum kan in geven en verwijderen.
Ik zet een 3 hoek met de verborgen tekst erin (Aantal overuren voormiddag of Aantal overuren namiddag) en dan in de commentaar het aantal genomen overuren.
de commentaar uitlezen en met rekenen gaat goed. Maar bij het verwijderen van de commentaar gaat het fout.
Hij verwijderd de commentaar vlot. Maar dan doorloopt hij nog alle andere andere vormen op het werkblad en plots loop ik tegen een fout op volgende regel.
If Not (shp.Type = 12 Or shp.Type = 13 Or shp.Type = 8) Then
Type komen niet overeen. En vormen verwijderen gaat prima.
Onder de eerste code staat een, andere code waar ik alle commentaar verwijderen die als inhoud de naam van de feestdagen hebben en enkel de commentaar met uren in verwijder ik niet.
Weet niet wat ik fout doe in de eerste code
msoOLEControlObject=12
msoPicture=13
msoFormControl=8
Ander stukje code waar ik de commentaar verwijder zonder problemen
Eerst al bedankt voor de hulp
Ik wil de afwezigheidskalender verder uitbreiden met de mogelijkheid dat ik ook het aantal overuren dat ik genomen heb op een bepaalde datum kan in geven en verwijderen.
Ik zet een 3 hoek met de verborgen tekst erin (Aantal overuren voormiddag of Aantal overuren namiddag) en dan in de commentaar het aantal genomen overuren.
de commentaar uitlezen en met rekenen gaat goed. Maar bij het verwijderen van de commentaar gaat het fout.
Hij verwijderd de commentaar vlot. Maar dan doorloopt hij nog alle andere andere vormen op het werkblad en plots loop ik tegen een fout op volgende regel.
If Not (shp.Type = 12 Or shp.Type = 13 Or shp.Type = 8) Then
Type komen niet overeen. En vormen verwijderen gaat prima.
Onder de eerste code staat een, andere code waar ik alle commentaar verwijderen die als inhoud de naam van de feestdagen hebben en enkel de commentaar met uren in verwijder ik niet.
Weet niet wat ik fout doe in de eerste code
msoOLEControlObject=12
msoPicture=13
msoFormControl=8
Code:
Sub verweijderenCommentaar()
Dim shp As Shape ' Is voor de rechthoek of 3 hoek die getekend zijn
Dim StrAfwezigheidsCodeKeuze As String
Dim RngCelCommentaar As Variant
Dim t As String
Dim IntVerlofcodeRij As Integer
Set RngAfwezigheidsbreik = Selection
' Set t = Range(ActiveCell.Address)
StrAfwezigheidsCodeKeuze = "Aantal overuren voormiddag"
For Each shp In ActiveSheet.Shapes
' t = shp.TopLeftCell.Address
If Not (shp.Type = 12 Or shp.Type = 13 Or shp.Type = 8) Then
If Not Application.Intersect(shp.TopLeftCell, ActiveSheet.Range(RngAfwezigheidsbreik.Address)) Is Nothing Then
StrAfwezigheidsCodeKeuze = shp.TextFrame.Characters.Text
IntVerlofcodeRij = OpzoekenAfwezigheidsCodeRij(StrAfwezigheidsCodeKeuze)
If IntVerlofcodeRij > 0 Then
If InStr(1, StrAfwezigheidsCodeKeuze, "ziek geworden", 1) Then
Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value - 1
shp.Delete 'verwijderen van het geselecteerde symbool
'Verwijderen van driehoek voor-,namiddag voor overueren en verwijderen van de commentaar waar het aantal genomen uren in staat.
ElseIf InStr(1, StrAfwezigheidsCodeKeuze, "overuren", 1) Then
MsgBox shp.TopLeftCell.Address
Dim t1 As Double
' Set RngCelCommentaar = ActiveCell.Selection
t1 = CDbl(Left(RngAfwezigheidsbreik.Comment.Text, InStr(1, RngAfwezigheidsbreik.Comment.Text, " ")))
't = CDbl(Left(Range(shp.TopLeftCell.Address).Comment.text, InStr(1, Range(shp.TopLeftCell.Address).Comment.text, " ")))
Worksheets("Datablad").Range("c" & IntVerlofcodeRij) = Worksheets("Datablad").Range("c" & IntVerlofcodeRij).Value
MsgBox t
'RngCelCommentaar.Comment.Delete
shp.TopLeftCell.Comment.Delete
'RngAfwezigheidsbreik.Comment.Delete
End If
End If
End If
End If
t = shp.TopLeftCell.Address
Next
Ander stukje code waar ik de commentaar verwijder zonder problemen
Code:
Sub OpmerkingDatumToevoegen()
' Toevoegen van de namen van de feestagen aan de gekleurde lichtblauwe datums
' Daar voor moet het werkblad tijdelijk worden ontrendeld en nadien terug vergendeld.
'Defineren van de variablen
Dim RngElkecel As Range
Dim ElkeCommentaar As Comment
Dim CS As Worksheet
Set CS = ActiveSheet
Dim RngGevonden As Range, ws As Worksheet
' Ontgrendelen van het werkblad.
ActiveSheet.Unprotect Password:="glennd29"
Set ws = Worksheets("datablad")
'Door elke cel in het bereik lopen en nagaan of er commentaar met uren in het bereik te vinden is
'Indien er commentaar met uren is gevonden deze niet verwijderen
For Each RngElkecel In ActiveSheet.Range("=$B$5:$H$10,$B$12:$H$17,$B$19:$H$24,$B$26:$H$31,$B$33:$H$38,$B$40:$H$45,$K$5:$Q$10,$K$12:$Q$17, K$19:$Q$24,$K$26:$Q$31,$K$33:$Q$38,$K$40:$Q$44,$L$45:$Q$45")
If Not RngElkecel.Comment Is Nothing Then
If Right(RngElkecel.Comment.text, 4) <> "uren" Then
RngElkecel.ClearComments
RngElkecel.Locked = False
End If
Else
With ws.Range("a4:a16")
Set RngGevonden = .Cells.Find(what:=RngElkecel, LookIn:=xlValues, lookat:=xlWhole)
If Not RngGevonden Is Nothing Then
With RngElkecel
.AddComment.text RngGevonden.Offset(, 1).Value
.Comment.Shape.Top = .Comment.Parent.Top - 5
.Comment.Shape.Left = .Comment.Parent.Offset(0, 1).Left - 15
End With
End If
End With
End If
Next RngElkecel
End Sub
Bijlagen
Laatst bewerkt: