Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

"Dynamisches" Mouseover (Zell-Kommentar)
#1
Guten Tag liebe Excel-Profis,

in einem Arbeitsblatt soll bei 3 Spalten automatisch ein Kommentar erzeugt werden, sobald eine Zelle geändert wird. Für alle Zellen aus der Spalte R soll der Wert der entsprechenden Zelle in der Spalte AR eingetragen werden, für alle Zellen aus der Spalte U soll der Wert der entsprechenden Zelle in der Spalte AU eingetragen werden und alle Zellen aus der Spalte X soll der Wert der entsprechenden Zelle in der Spalte AX eingetragen werden.

Beispiel: Zelle R3 wird geändert, dann erhält Zelle R3 als Kommentar den Wert der Zelle AR3.

Falls das wichtig ist: Die Werte in den Spalten AR, AU und AX werden über SVERWEIS in Abhängigkeit der Werte in den Spalten R, U und X gebildet.

Ich hoffe, es ist einigermaßen verständlich, was ich möchte. In den Spalten R, U und X stehen Projektnummern. Mit Hilfe einer Tabelle auf einem anderen Blatt (Zuordnung Projektnummer - Projekttext) wird in den Spalten AR, AU und AX der Projekttext zur Nummer eingetragen. Das funktioniert soweit. Nun soll zusätzlich noch der Projekttext (in der Regel maximal 30 Zeichen) als Kommentar ("Tooltip" / "Mouseover") in den Spalten mit den Projektnummern (R, U und X) zu sehen sein.

Die Lösung mit der Änderungszeit der Zelle (https://www.clever-excel-forum.de/Thread...zeitangabe) habe ich mit der Suche gefunden. Nur: wie ändere ich das Script, so dass nicht die Uhrzeit sondern der Wert einer anderen Zelle eingetragen wird. Und: klappt das auch, wenn diese andere Zelle (Spalte AR, AU, bzw. AX) den Wert erst erhält, nachdem die Zelle die den Kommentar erhalten soll geändert wurde? Ansonsten: kann man die SVERWEIS-Abfrage ins Script einbauen?

Schon schon ein herzliches Dankeschön für Denkanstöße und Hilfen!

Frank
Antworten Top
#2
Hallo

willst du den Kommentar nur bei einer Zelländerung, oder immer den Kommentar?  Man kann auch alle Kommentare über einen Button einfügen.
Was ist mit der Uhrzeit bei Änderung in der Zelle?  Soll die dann mit im Kommentar stehen?  Wenn ja ganz vorne oder am Ende des Kommentars?
Das habe ich noch nicht verstanden.

mfg Gast 123

Nachtrag:  wenn in jeder Zelle ein Kommentar steht, wird das nicht zu unübersichtlich??
Antworten Top
#3
Hallo Gast,

herzlichen Dank für Deine Antwort.

Ich fange hinten an: die Uhrzeit möchte ich gar nicht im Kommentar. Aber ich habe ein Script gefunden, dass Datum und Uhrzeit einer Zelländerung in das Kommentarfeld schreibt. Kommentaränderung per Script funktioniert also. Nur möchte ich nicht die Uhrzeit sondern den Wert aus einer anderen Zelle.

Für alle Zellen der Spalte R soll der Wert aus der Zelle in der entsprechenden Zeile der Spalte AR als Kommentar eingetragen werden,
für alle Zellen der Spalte U soll der Wert aus der Zelle in der entsprechenden Zeile der Spalte AU als Kommentar eingetragen werden und 
für alle Zellen der Spalte X soll der Wert aus der Zelle in der entsprechenden Zeile der Spalte AX als Kommentar eingetragen werden.

Die Werte in den Zellen der Spalten AR, AU und AX sind das Ergebnis einer SVERWEIS-Funktion, sie ändern sich, wenn sich der Wert in einer der Zellen der Spalten R,U bzw. X ändern.

Zu Deinem Nachtrag: unübersichtlich? Nein, der Kommentar wird ja nur angezeigt, wenn man mit der Maus über die Zelle fährt.

mfg

Frank
Antworten Top
#4
Hallo Frank,
ich habe ein Muster im Anhang beigefügt. Bitte beachte das dieses File die Extension  *.xlsm haben muss! Ansonsten speicherst Du den Code nicht mit!
Kommentar im Sheet.


Angehängte Dateien
.xlsm   Mappe.xlsm (Größe: 16,43 KB / Downloads: 3)
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
Antworten Top
#5
Hallo Armin,

herzlichen Dank für Deine Mühe. Solange ich das Arbeitsblatt nicht ändere, funktioniert es. Dann habe ich die Zellen in Spalte AR durch eine Formel ersetzt - und es funktioniert nicht mehr.

Ich habe zwischenzeitlich auch etwas "gebastelt". Das Poste ich als separate Antwort...

mfg

Frank

Hallo,

nun habe ich doch selbst halbwegs etwas hinbekommen:

Sub PROJEKT()
For x = 7 To 380
Dim Kommentar As String
Kommentar = Cells(x, 44).Value
Sheets("Eingabe").Cells(x, 18).ClearComments
Sheets("Eingabe").Cells(x, 18).AddComment Kommentar
Kommentar = Cells(x, 47).Value
Sheets("Eingabe").Cells(x, 21).ClearComments
Sheets("Eingabe").Cells(x, 21).AddComment Kommentar
Kommentar = Cells(x, 50).Value
Sheets("Eingabe").Cells(x, 24).ClearComments
Sheets("Eingabe").Cells(x, 24).AddComment Kommentar
Next x
End Sub


Dieses Makro rufe ich über einen Button auf. Soweit funktioniert es wie gewünscht. Eigentlich kann ich damit leben... schön wäre allerdings, wenn 
a) dieses Makro automatisch startet, wenn in einer der Zellen in den Spalten R, U oder X etwas geändert wird
b) dieses Makro nur für die aktuelle Zeile ausgeführt wird, damit es nicht so lange dauert ("lange" ist übertrieben, geschätzt dauert es ca. 1 Sekunde für die knapp 1200 Zellen, aber wenn das Makro automatisch startet, dann wäre auch 1 Sekunden zu lange).

mfg, Frank

... b) habe ich selbst rausgefunden: x = ActiveCell.Row
Antworten Top
#6
... ich glaube, jetzt läuft es wie gewünscht:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("R7:R380")) Is Nothing Then
X = ActiveCell.Row
Dim Kommentar As String
KommentarR = Cells(X, 44).Value
Sheets("Eingabe").Cells(X, 18).ClearComments
Sheets("Eingabe").Cells(X, 18).AddComment KommentarR
End If

If Not Application.Intersect(Target, Range("U7:U380")) Is Nothing Then
X = ActiveCell.Row
Dim KommentarU As String
KommentarU = Cells(X, 47).Value
Sheets("Eingabe").Cells(X, 21).ClearComments
Sheets("Eingabe").Cells(X, 21).AddComment KommentarU
End If

If Not Application.Intersect(Target, Range("X7:X380")) Is Nothing Then
X = ActiveCell.Row
Dim KommentarX As String
KommentarX = Cells(X, 50).Value
Sheets("Eingabe").Cells(X, 24).ClearComments
Sheets("Eingabe").Cells(X, 24).AddComment KommentarX
End If

End Sub



Damit es automatisch ausgeführt wird, habe ich es beim Arbeitsblatt und nicht als Modul gespeichert.

mfg, Frank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste