Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion anpassen

Funktion anpassen
03.02.2023 19:24:26
Thomas
Hallo Excelfreunde,
ich hatte mal im Netz eine Coole Funktion gefunden. Mit Hilfe dieser Funktion kann man mit z.B.
=Tooltip(F2;F3) in der Zelle f2 den Wert aus Zelle F3 in den Kommentar Schreiben.
Kann jemand diese Funktion so anpassen das man bis zu drei Zellwerte in den Kommentrar reinschreiben kann? ( jeweils eine neue Zeile)
Irgendwie so =Tooltip(F2;F3 & Chr(10) & F4 & Chr(10) & f5 ).
Dies ist die Funktion:
Option Explicit
Public Function Tooltip(rngZelleFürTooltip As Range, rngTextFürToolTip As Range) As String
Dim c As Comment
If rngZelleFürTooltip.Comment Is Nothing Then
  Set c = rngZelleFürTooltip.AddComment
Else
  Set c = rngZelleFürTooltip.Comment
End If
c.Text rngTextFürToolTip.Text & " " & Chr(10) & "Test"
Set c = Nothing
End Function
Anbei noch eine kleine Beispieldatei
https://www.herber.de/bbs/user/157632.xlsm
Kann mir dabei jemand helfen? Ich bekomme dies einfach nicht hin.
Habt schon mal recht vielen Dank für euer Interesse.
mfg Thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion anpassen
03.02.2023 20:03:10
volti
Hallo Thomas,
hier eine Idee dazu. Probiere es mal aus.
Wenn der Kommentar immer in die Zelle kommt, in der auch die Formel steht, reicht die Übergabe der zu verwendenden Textfelder aus.
Code:


Public Function TooltipNeu(rngTextFürToolTip As Range) As String Dim c As Comment, rRng As Range, sText As String If Application.ThisCell.Comment Is Nothing Then Set c = Application.ThisCell.AddComment Else Set c = Application.ThisCell.Comment End If For Each rRng In rngTextFürToolTip sText = sText & rRng.Value & vbLf Next rRng c.Text Left$(sText, Len(sText) - 1) End Function

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Funktion anpassen
03.02.2023 20:18:34
Thomas
Hallo Volti,
besten dank das du dir dies angeschaut hast.
Irgendetwas ist noch foul. Ich erhalte immer die Meldung #Wert!
Oder ich gebe es falsch ein. Meine versuche sind:
=TooltipNeu(B3;B4;B5)
=Tooltip(B3;B4;B5 )
Kannst du nochmal schauen?
mfg thomas
AW: Funktion anpassen
03.02.2023 22:35:09
Yal
Hallo Thomas,
ich habe rumbasteln müssen, um erst das Coding von Volti zu verstehen :-)
Nicht = TooltipNeu(B3;B4;B5)
sondern =TooltipNeu(B3:B5)
Ich habe erweitert mit der Möglichkeit, einen anderen Trennzeichen als Linefeed optional eingeben zu können
Public Function TooltipNeu(ByVal QuellZellen As Range, Optional Trennzeichen As String = vbLf) As String
'Auf Basis eines Codings von Volti
Dim rRng As Range
Dim sText As String
  
    For Each rRng In rngTextFürToolTip
        sText = sText & Trennzeichen & rRng.Value
    Next rRng
    With Application.ThisCell
        If .Comment Is Nothing Then .AddComment
        .Comment.Text Mid(sText, Len(Trennzeichen) + 1)
    End With
    TooltipNeu = Mid(sText, Len(Trennzeichen) + 1) 'Kommentar wird als Formelergebnis angezeigt
End Function
Zum Beispiel
= TooltipNeu (B3:B5)
= TooltipNeu (B3:B5; " | ")
= TooltipNeu ( B3:B5; " => ")
Möchtest Du aber die Zellen einzel eingeben, egal wieviel (Trennzeichen muss dann zuerst eingegeben werden):
Public Function TooltipEinzel(ByVal Trennzeichen As String, ParamArray Quellen()) As String
'Auf Basis eines Codings von Volti
Dim Msg As String
Dim E
    
    For Each E In Quellen
        Msg = Msg & Trennzeichen & CStr(E)
    Next
    With Application.ThisCell
        If .Comment Is Nothing Then .AddComment
        .Comment.Text Mid(Msg, Len(Trennzeichen) + 1) 'ohne führende Leerzeichen
    End With
    TooltipEinzel = Mid(sText, Len(Trennzeichen) + 1) 'Kommentar wird als Formelergebnis angezeigt
End Function
=TooltipEinzel(" ";B3;B4;B5)
=TooltipEinzel(" ";B3;B5;B4;C15)
=TooltipEinzel(" ";B3;"ist besser als";B5;":-p") sollte auch gehen.
Eine Version mit festem Trennzeichen:
Public Function TooltipEinzel(ParamArray Quellen()) As String
'Auf Basis eines Codings von Volti
Dim Msg As String
Dim E
Const Trennzeichen = " " 'Leerzeichen. Man kann aber es ändern
    
    For Each E In Quellen
        Msg = Msg & Trennzeichen & CStr(E)
    Next
    With Application.ThisCell
        If .Comment Is Nothing Then .AddComment
        .Comment.Text Mid(Msg, Len(Trennzeichen) + 1) 'ohne führende Leerzeichen
    End With
    TooltipEinzel = Mid(sText, Len(Trennzeichen) + 1) 'Kommentar wird als Formelergebnis angezeigt
End Function

=TooltipEinzel(B3;B4;B5)
=TooltipEinzel(B3;"ist besser als";B5) sollte auch gehen.
Es überschreibt den bisherigen Kommentar. Möchtest Du "hinzufügen", brauchst Du
Public Function Kommentar(ByVal QuellZelle As Range) As String
    Kommentar = QuellZelle.Comment.Text
End Function
in B3 als =Kommentar(B2)
VG
Yal
Anzeige
Ach, ich depp!
03.02.2023 22:37:44
Yal
Ich habe den ersten Code unvollständig angepasst:
Public Function TooltipNeu(ByVal QuellZellen As Range, Optional Trennzeichen As String = vbLf) As String
'Auf Basis eines Codings von Volti
Dim rRng As Range
Dim sText As String
  
    For Each rRng In QuellZellen '- hier hat's gescheppert
        sText = sText & Trennzeichen & rRng.Value
    Next rRng
    With Application.ThisCell
        If .Comment Is Nothing Then .AddComment
        .Comment.Text Mid(sText, Len(Trennzeichen) + 1)
    End With
    TooltipNeu = Mid(sText, Len(Trennzeichen) + 1) 'Kommentar wird als Formelergebnis angezeigt
End Function
VG
Yal
Anzeige
unglaublich riesen Dank an Yal
03.02.2023 23:36:14
Thomas
Hallo Yal,
das du dir so viel Arbeit für mich gemacht hast ist unglaublich.
Es funktionieren alle Versionen perfekt. Damit kann ich mir endlich mehr Überblick auf meinen Monitor verschaffen.
Ich kann in einer einzigen Zelle die benötigten Informationen zusammen tragen. Und sie verschieden Gestalten. Man das ist echt cool.
Und was noch dazu kommt. Ich kann jetzt mal die Funktionsweise von so einer Funktion versuchen nachzuvollziehen.
Hab Riesen Riesen dank Yal.
Ich wünsch dir noch einen schönen Rest Abend
und vor allem ein schönes Wochenende
mfg thomas
Der Dank geht auch an Volti. owT
04.02.2023 10:12:50
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige