Hatte heute noch gar nicht mit dir...
18.10.2009 13:10:32
Luc:-?
...gerechnet, Wolfgang... ;-)
So, dann folgt hier die udFktt, die du in dein Projekt wie folgt integrieren musst:
In den VBEditor wechseln → im Projektexplorer (links oben, Baumstruktur) mit rechter _
Maustaste auf ein Dokument der Mappe klicken → Einfügen wählen → Modul wählen → Modul1 wird eingefügt (dort sollte schon Option Explicit stehen, kann in den VBE-Optionen eingestellt wdn). Danach jetzt das Folgende einfügen...
Rem Fkt gibt exist Inhalt/Text verschiedener Objekte wieder
' Arg1: fehlt/Bezug/Name => aktZelle/Obj(in)Zelle/(Zell)Objekt
' Arg2: fehlt/0/0 => Zellwert/-formel/-kommentar-/AutoformText
' Darf nicht direkt in benannten (Namensbezüge) u.BedingtFormat-Fmln
' verwendet wdn, weil das zu instabilen xlZuständen führen kann!
' Vs1.1b -LSr\CyWorXxl -crd:20070417 -fpub:20091018herber -lupd:20091017t
Function TextOf(Optional ByVal ObName, Optional ByVal ObTyp)
Dim i As Long, t As String, OTyp As Integer, x As Shape
On Error Resume Next
If IsError(Application.Caller.Address) Then
If IsMissing(ObName) Then Set ObName = ActiveCell
ElseIf IsMissing(ObName) Then
Set ObName = Application.Caller
End If
If IsMissing(ObTyp) Then
Select Case TypeName(ObName)
Case "Range"
TextOf = ObName.Value
Case "String"
TextOf = Range(ObName).Value
Case Else
End Select
Else: OTyp = ObTyp Mod 2
Select Case OTyp
Case Is > 0
Select Case TypeName(ObName)
Case "Range"
For Each x In ActiveSheet.Shapes
With ObName
If (x.Left >= .Left And x.Left = .Top And x.Top .Left And _
x.Left + x.Width .Top And x.Top + x.Height 255 Zeichen
i = 0
With x.TextFrame
Do While Not IsError(.Characters(i + 256, 1).Text)
t = t & .Characters(Start:=i + 1, Length:=255).Text
If t = TextOf Then Exit Do Else TextOf = t
If IsEmpty(TextOf) Then Exit Do
i = i + 255
Loop
If Not IsError(.Characters(i + 1, 1).Text) Then
TextOf = TextOf & .Characters(Start:=i).Text
End If
End With
Return
ex: Set ObName = Nothing: Set x = Nothing
End Function
Über das 2.FktsArgument wird angegeben, was ausgelesen wdn soll...
1. fehlt → Wert der in Arg1 angegebenen bzw eigenen Zelle
2. 0 → Formel der in Arg1 angegebenen bzw eigenen Zelle
3. <0 → Kommentar der in Arg1 angegebenen bzw eigenen Zelle
4. >0 → Textfeld (Autoform mit Text), dessen linke obere Ecke sich auf der in Arg1 angegebenen bzw eigenen Zelle befindet bzw dessen Name als Arg1 notiert wurde.
Daraus kann man wohl erkennen, dass die udFkt TextOf auch noch für andere Zwecke eingesetzt wdn kann. Das im Vorspann genannte Verbot gilt dann natürl nur für die Einsatzvarianten 3+4.
In deinem Fall schreibst du jetzt in eine Hilfszelle des Blattes =HEUTE()-TEIL(TextOf(C29;-1);SUCHEN(JAHR(HEUTE());TextOf(C29;-1))-6;10)>28 bzw eine entsprechend angepasste Fml, die aus dem von TextOf gelieferten Kommentartext der (hier) Zelle C29 das dort enthaltene Datum isoliert. In der BedingtFormatFormel der (hier) Zelle C29 muss dann nur auf die Hilfszelle verwiesen wdn, da die ja bereits das für die Bedingungserfüllung benötigte WAHR bzw FALSCH enthält.
Gruß+schöSo, Luc :-?