• 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.

Dynamische Opmerkingen

Status
Niet open voor verdere reacties.

bitchkoemer

Gebruiker
Lid geworden
3 aug 2006
Berichten
39
Hallo,

Op de site van Ingrid http://users.telenet.be/ingrid/excel/index.htm vond ik onderstaande getalnotitie:

[>=1]d "dag(en)" u "uur" m "minuten";[>0,041]u "uur" m "minuten";[m] "minuten"

Deze geeft de tijdsweergave "25:15:00" weer als "1 dag(en) 1 uur 15 minuten"

Is het nu mogelijk (evt. via VBA) dat:

Wanneer men over de cel komt met de "mousepointer" er een "Opmerking" a-like balkje verschijnt waarin de tijd voluit staat?

Ik had zelf al gedacht aan het "MouseOver" event...........

Alvast bedankt

Michel
 
Dynamic comments

Via googlekwam ik het volgende tegen:

Code:
'by Jim Rech

'This procedure changes the font size in all cell comments on a worksheet.

Sub ChgAllComments()
    Dim Cell As Range
    For Each Cell In Cells.SpecialCells(xlCellTypeComments)
        With Cell.Comment.Shape.TextFrame.Characters.Font
            .Size = 9
        End With
    Next
End Sub

Valt hiermee niets te beginnen, ik veronderstel dat indien we de lettergrootte kunnen veranderen de tekst zelf toch ook aanpasbaar moet zijn..........

Bovenstaande code kan bv "runnen" bij een "Worksheet_Change" event...

Iemand vertrouwd met Cell.Comment.........

Alvast bedankt
 
Dynamic comments

Hoi,

Ik weet niet of het hier de gewoonte is om eigen vorderingen te publiceren, eventueel heeft iemand anders er wat aan, vandaar......:rolleyes:

Na nog wat surfen en testen kwam ik tot dit resultaat:

Code:
Private Sub CommandButton1_Click()
    
    'Dim strDate As String
    Dim cmt As Comment
    
    'strDate = "dd-mmm-yy hh:mm:ss"
    Set cmt = ActiveCell.Comment
  
    If cmt Is Nothing Then
      Set cmt = ActiveCell.AddComment
      cmt.Text Text:=Now() & Chr(10)
    Else
      cmt.Text Text:=Now() & Chr(10)
    End If
    
    With cmt.Shape.TextFrame
      .Characters.Font.Bold = False
    End With
    
End Sub

Ik plaatste een knop "CommandButton1" op het werkblad en koppelde bovenstaande code aan het "Click" event.

Wat gebeurd er bij een "druk op de knop".......

Als er nog geen commentaar bij de geselecteerde cel staat wodt deze toegevoegd
In het commentaar wordt datum en uur geplaatst met Now()

Stond er al commentaar bij de cel dan wordt de tekst vervangen door Now()

'k Weet het, dit is nog niet wat ik wou maar ik kom er op deze manier wel uit denk ik.

Ik hou jullie op de hoogte (als dit geappreciëerd wordt althans)
 
Oplossing gevonden, toch nog niet volledig naar wens

Hallo,

Na wat testen, zoeken en nogmaals testen kwam ik tot onderstaand resultaat

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    
    Application.EnableEvents = False
    
    Dim teller As Integer
    Dim cmt As Comment
    Dim strTijd As String
    Dim iDag As Integer
    Dim iUur As Integer
    Dim iMin As Integer
    Dim dTijd As Double
            
    dTijd = Range("A1").Value
            
    iDag = Fix(dTijd)
    iUur = Hour(dTijd)
    iMin = Minute(dTijd)
       
    If dTijd >= 2 Then '-- Groter dan 1 dag
        strTijd = Str(iDag) & " dagen" & Str(iUur) & " uur" & Str(iMin) & " minuten"
            
    ElseIf dTijd >= 1 Then '-- 1 dag
        strTijd = Str(iDag) & " dag" & Str(iUur) & " uur" & Str(iMin) & " minuten"
        
    ElseIf dTijd > 0.041 Then '-- Groter dan 1 uur
        strTijd = Str(iUur) & " uur" & Str(iMin) & " minuten"
        
    Else '-- minder dan 1 uur
        strTijd = Str(iMin) & " minuten"
    
    End If
    
    
    Set cmt = Range("A1").Comment
          
    If cmt Is Nothing Then
      Set cmt = ActiveCell.AddComment
      cmt.Text Text:=strTijd
    Else
      cmt.Text Text:=strTijd
    End If
    
    With cmt.Shape.TextFrame
      .Characters.Font.Bold = True
      .Characters.Font.Size = 10
      .AutoSize = True
    End With
    
    Application.EnableEvents = True

End Sub

Als in A1 een tijd wordt ingevuld (celeigenschappen op :mm) dan staat in de comment van de cel de volledige tekst. so far so good.........:confused:

Nu gebruiken wij echter werkdagen van 8 uur, en ik had uiteraard liever gehad dat 15:45 resulteerd in 1 dag 7 uur 45 min en niet in 15 uur 45 min.

Ik dacht het ei van columbus gevonden te hebben met de hour() en minute() functies te gebruiken, deze zijn echter geldig bij dagen van 24 uur, niet bij werkdagen van 8 uur....

Iemand een idee hoe ik dit kan omzeilen.......

Alvast bedankt.
 
Michel

in deze thead hebben we een aantal uren verdeeld in dagen van 7,5 uur. Kijk dus daar voor een methode.

Wigi
 
Dynamisch Kommentaar

Hallo Wigi,

Bedankt voor de tips, op deze manier werk ik het liefst, geen kant en klare oplossingen maar een duwtje in de goede richting........ op deze wijze leer je veel bij ........

In bijgevoegd bestandje staat mijn uitgewerkt SUBje

In cel A1 kan je een ":mm" getal invoeren, in het commentaarveld van A1 verschijnt dan de tekst voluit, er van uitgaande dat er 8 uur per dag gewerkt wordt.

Nogmaals dank
 

Bijlagen

Michel

2 opmerkingen:

- cmt.Text Text:=strTijd kan uit de IF-structuur gehaald worden

- ik zou m.b.v. target beperken waar je kan klikken zodanig dat de opmerking gemaakt wordt. Nu wordt eender waar geklikt wordt de opmerking berekend door Excel. Als je een IF structuur inbouwt aan het begin kan je dat vermijden.

Bv. enkel berekenen als in kolom 1 geklikt wordt:

Code:
If Target.Column = 1 Then
'jouw code
End If

Maar je hoeft mijn mening niet te delen natuurlijk :cool:

Wigi
 
cmt.Text Text:=strTijd kan uit de IF-structuur gehaald worden
Heb ik ondertussen aangepast, scheelt hier niet veel code maar in het uiteindelijke bestand wel......... daar wordt deze sub gebruikt bij een 55-tal cellen :eek:

ik zou m.b.v. target beperken waar je kan klikken zodanig dat de opmerking gemaakt wordt. Nu wordt eender waar geklikt wordt de opmerking berekend door Excel. Als je een IF structuur inbouwt aan het begin kan je dat vermijden.
Is in het voorbeeld inderdaad niet voorzien, in het definitieve werkblad heb ik dit wel voorzien dmv een "INTERSECT" regeltje:
Maar je hoeft mijn mening niet te delen natuurlijk :cool:
Neen, maar vermits je eigenlijk altijd goede raad geeft kan ik er moeilijk omheen :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan