Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
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

dynamischer Tooltip bei click

dynamischer Tooltip bei click
24.06.2015 09:17:25
bma
Da ich nicht schnell genug war und auf meinen ersten Beitrag nicht rechtzeitig geantwortet habe musste ich jetzt einen neuen erstellen (jetzt mit Anhang).
Ich baue einen Produktkonfigurator.
Dabei kann man verschiedene Optionen per Dorpdown-Datenüberprüfung auswählen.
In der Auswahl stehen die möglichen Optionen per Buchstaben oder Zahlen die dem Typenschlüssel entsprechen.
Ich habe das Tool so erstellt, das die Sprache jeder Zeit umgestellt werden kann.
Jetzt möchte ich eine Hilfetext anbieten die die Buchstaben / Zahlen beschreibt.
So das man auch eine Auswahl treffen kann wenn man den Typenschlüssel nicht kennt.
Mir fallen 2 Wege ein, die normale Notiz oder die Eingabemeldung der Datenüberprüfung.
Der Text der hineingeschieben werden soll muss in dem moment in dem ich ihn anzeigenlasse aktuallisiert werden, damit die richtige Sprache genutzt wird und nur die möglichen Kombinationen angezeigt werden. Das würde ich auf einem anderen Blatt in 2 Spalten und ca. 10 Zeilen zur verfügung stellen.
Hätte gern eine VBA Funktion in der ich die Zelle angeben kann wo der Text erscheinen soll und die Angabe (vielleicht per Namensdefinition) wo der Text her kommen soll.
Wenn mouse click in zelle XY dann schreibe Text aus Bereich (Namensdefinition) in die Eingabemeldung.
Im Anhang befindet sich ein Auszug aus dem Tool.
Im Register Start in D4 kann man die Sprache einstellen.
In D11 ist eine manuell eingefügte Notiz. Diese soll dynamisch den Text in der richtigen Sprache anzeigen. Der Text ist auszulesen im Register 3-Antriebsart AI3 bis AJ15.
https://www.herber.de/bbs/user/98422.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: dynamischer Tooltip bei click
24.06.2015 23:03:17
{Boris}
Hi,
als Ansatz - als Ereigniscode in der Tabelle "Start". Bezieht sich jetzt nur auf D11 - und die Zelle muss auch angeklickt werden, damit sich der Kommentar an die eingestellte Sprache anpasst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
If Target.Address(0, 0) = "D11" Then
With Tabelle24
For x = 3 To 15
str = str & .Cells(x, 35) & "   " & .Cells(x, 36) & vbLf
Next x
End With
On Error Resume Next
Target.Comment.Delete
On Error GoTo 0
Target.AddComment str
Target.Comment.Shape.TextFrame.Characters.Font.Name = "Courier New"
Target.Comment.Shape.TextFrame.AutoSize = True
End If
End Sub
Vielleicht hilft Dir das ja schon ein wenig.
VG, Boris

Anzeige
Alternative: Du kannst auch VollAutomatik ...
25.06.2015 04:29:40
Luc:-?
…erreichen, bma,
wenn du eine weitere benannte Fml (hier KommentAABer) hinzufügst. Das kann dann so …
KommentAABer: ='3-Antriebsart'!$AI$3:$AI$15&WENN(LÄNGE('3-Antriebsart'!$AI$3:$AI$15)=1;"  ";" ")&
BEREICH.VERSCHIEBEN('3-Antriebsart'!$AJ$3:$AJ$15;0;Allgemein!$A$4)
…oder so aussehen:
KommentAABer: ='3-Antriebsart'!$AI$3:$AI$15&WENN(LÄNGE('3-Antriebsart'!$AI$3:$AI$15)=1;"  ";" ")&
INDEX('3-Antriebsart'!$AK$3:$BC$3;Allgemein!$A$4):INDEX('3-Antriebsart'!$AK$15:$BC$15;Allgemein!$A$4)
["  ";" " → en-Abstand+¼-em-Abstand;Leerzeichenhier bezogen auf Calibri — exakte Ausrichtung nur mit nicht-proportionaler Schriftart wie bei Boris' Variante möglich!]
Für eine sofortige Reaktion des Kommentars in D11 kann dann auch das Calculate-Ereignis gewählt wdn, weil die Wahl einer anderen Sprache stets Berechnungen (auch auf diesem Blatt) auslöst. Zu beachten ist beim folgd Pgm nur, dass das betroffene Kommentarfeld bereits angelegt worden sein muss:
Option Explicit
Private Sub Worksheet_Calculate()
Const adKomBer$ = "D11", fmRelKom$ = "KommentAABer"
Dim kTxt As Variant, aWb As Workbook, wf As WorksheetFunction
Set aWb = Me.Parent: Set wf = WorksheetFunction
kTxt = aWb.Names(fmRelKom).Value
kTxt = Join(wf.Transpose(Me.Evaluate(kTxt)), vbLf)
With Me.Range(adKomBer).Comment.Shape.TextFrame
.Characters.Text = Left(kTxt, 255)
.Characters(256).Text = Mid(kTxt, 256)
'        .Font.Name = "Calibri"
End With
Set aWb = Nothing: Set wf = Nothing
End Sub
Du kannst natürlich auch Boris' Variante entsprd abgeändert (es gibt hier kein Target!) - mit diesem Ereignis einsetzen.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Alternative: Du kannst auch VollAutomatik ...
25.06.2015 09:07:08
bma
Super - beide Antworten funktionieren von Boris so wie von Luc:-?.
Die Kombination mit dem definierten Bereich (Namensmanager) und dem VBA ist zwar etwas aufwendiger aber funktioniert hervorragend.
Da ich ca. 10 weiter Tabellenblätter habe mit jeweils 5-10 Zellen die einen Tooltipp bekommen sollen, gibt es noch etwas zu beachten oder zu vereinfachen oder kann ich einfach für jeden Tooltipp so verfahren?
Das hab ich leider nicht ganz verstanden:
["  ";" " → en-Abstand+¼-em-Abstand;Leerzeichen ← hier bezogen auf Calibri — exakte Ausrichtung nur mit nicht-proportionaler Schriftart wie bei Boris' Variante möglich!]
Eine bessere Ausrichtung wäre ein nice to have um es ewas lessbarer zu machen.
Anstelle:
A  Tooth belt, driven slider
NZ Without drive, tooth belt base
NS Without drive, ball screw base
SN Ball screw drive
T  Trapezoidal screw drive
wäre es so vielleicht besser:
A   - Tooth belt, driven slider
NZ - Without drive, tooth belt base
NS - Without drive, ball screw base
SN - Ball screw drive
T   - Trapezoidal screw drive
Z   - Tooth belt
Ist das möglich?
Auch die Größe des Notizfeldes muss beim anlegen auf die maximal möglich notwendige Fläche eingestellt werden. Kann man das auch automatisieren? So das es sich immer anpasst auf die notwendige Größe?
Ist allerdings nicht so wichtig.
Super vielen Dank.
Gruß Björn

Anzeige
Das Anpassen findest du in Boris' Code, ...
25.06.2015 13:06:39
Luc:-?
…Björn,
musst du nur noch in meinem nachtragen (hielt ich nicht für erforderlich). Was du nicht verstanden hast, ist die Erklärung, um welche Sonderzeichen es sich bei meiner Abstandsregulierung handelt (Menü Einfügen - Symbol - Sonderzeichen). Es gibt in Unicode noch mehr, aber für eine weitgehend exakte Darstellung in einer Proportionalschrift würde die Fml nur dafür recht aufwendig wdn. Nur mit zusätzlichem Strich-Leerzeichen sähe der entsprd FmlTeil so aus: …;"  ";" ")&"- "&…
Im Prinzip kannst du das immer so machen, nur sind es nicht immer gleiche Zellbereiche. Also benötigst du mehrere benannte Fmln und musst dann im Pgm eine Auswahl* je nach Standort treffen, um den jeweils richtigen Namen zu erwischen. Falls so etwas auch auf anderen Blättern gemacht wdn soll, benötigen die ein eigenes, angepasstes Pgm, falls du nicht alle im entsprd Ereignis der Mappe zusammenfassen willst.
* Const adKomBer$ = "D9 D10 D11", fmRelKom$ = "KommentXYBer KommentXZBer KommentAABer", diese dann gesplittet in ein String-Array übernehmen → Dim adKomBers$(), fmRelKoms und später zB: adKomBers = Split(adKomBer) → mit einer For-Schleife können dann alle Standort-Adress-Elemente durchlaufen wdn: For ix = 0 To UBound(adKomBers) … Next, dazwischen stehen die relevanten Befehle, wobei bspw fmRelKom durch fmRelKoms(ix) zu ersetzen ist.
Luc :-?

Anzeige
AW: Das Anpassen findest du in Boris' Code, ...
25.06.2015 15:41:32
bma
Ich bin leider von VBA fast keine Ahnung.
Die Texte etwas besser dar zu stellen mit den Leerzeichen und dem Bindestrich hab ich hin bekommen.
Auch das mit dem Fenster automatische Größe und so.
Aber mehrer Notitzen auf einem Blatt an zu passen bekomme ich leider nicht hin.
Habe also einen weiteren Bereich im Namensmanager angelget:
KommentBRBer
='1-Baureihe'!$A$4:$A$10&WENN(LÄNGE('1-Baureihe'!$A$4:$A$10)=1;"   - ";" - ") & BEREICH.VERSCHIEBEN('1-Baureihe'!$B$4:$B$10;0;Allgemein!$A$4)
und im VB bin ich leider nur so weit gekommen, dann hab ich es nicht mehr verstanden:
Option Explicit
Private Sub Worksheet_Calculate()
Const adKomBer$ = "D9 D11", fmRelKom$ = "KommentBRBer KommentAABer"
Dim kTxt As Variant, aWb As Workbook, wf As WorksheetFunction
Set aWb = Me.Parent: Set wf = WorksheetFunction
kTxt = aWb.Names(fmRelKom).Value
kTxt = Join(wf.Transpose(Me.Evaluate(kTxt)), vbLf)
With Me.Range(adKomBer).Comment.Shape.TextFrame
.Characters.Text = Left(kTxt, 255)
.Characters(256).Text = Mid(kTxt, 256)
.Characters.Font.Name = "Arial"
.AutoSize = True
End With
Set aWb = Nothing: Set wf = Nothing
End Sub

hier das Beispiel update:
https://www.herber.de/bbs/user/98478.xlsm

Anzeige
...Weshalb ich dir wohl auch das fktsfähige ...
29.06.2015 19:24:34
Luc:-?
…Pgm aufschreiben muss, Björn… ;-)
Hatte dich in der Zwischenzeit fast vergessen, aber nun denn so:
Private Sub Worksheet_Calculate()
Const adKomBer$ = "D9 D11", fmRelKom$ = "KommentBRBer KommentAABer"
Dim ix As Long, adKomBers$(), fmRelKoms$(), kTxt As Variant, _
aWb As Workbook, wf As WorksheetFunction
Set aWb = Me.Parent: Set wf = WorksheetFunction
adKomBers = Split(adKomBer): fmRelKoms = Split(fmRelKom)
For ix = 0 To UBound(adKomBers)
kTxt = aWb.Names(fmRelKoms(ix)).Value
kTxt = Join(wf.Transpose(Me.Evaluate(kTxt)), vbLf)
With Me.Range(adKomBers(ix)).Comment.Shape.TextFrame
.Characters.Text = Left(kTxt, 255)
.Characters(256).Text = Mid(kTxt, 256)
.Characters.Font.Name = "Arial"
.AutoSize = True
End With
Next ix
Set aWb = Nothing: Set wf = Nothing
End Sub
Gruß, Luc :-?
Besser informiert mit …
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige