• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

verwijderen commentaar

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
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



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:
hallo, misschien kun je vertellen wat er moet gebeuren.
waar wil je commentaar verwijderen?
onder welke voorwaarde moet het verwijderd worden?
 
Op c14,c15,c19 staan dagen dat ik overuren heb opgenomen. Dus zoveel uren vorige gestopt met werken of later begonnen. Stel dat ik mij bij het ingeven gemist heb van dag dan moet ik de verkeerde dag kunnen verwijderen.
Of zou ik beter na gaan of de geselecteerde dag een commentaar heeft.
 
ik snap je probleem niet helemaal commentaar kun je toch heel eenvoudig verwijderen of wijzigen.

hier een eenvoudig voorbeeldje:
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan