24.10.2020, 01:26 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2020, 01:28 von DietmarD.)
Hallo zusammen,
ich habe eine Tabelle 2(Material) dort steht in Spalte C ab Zeile 2 eine Materialnummer, in Spalte D steht der dazugehörige Materialtext. In Tabelle 1(Gestelllager) trage ich in beliebigen Zellen über eine Formel die Materialnummer ein, die auch mehrfach vorkommen kann.
Meine Frage hierzu, ist es möglich, wenn ich mit der Maus auf meine Materialnummer in Tabelle 1(Gestelllager) auch ohne klick gehe, das mir dann der passende Materialtest angezeigt wird z.B. so wie ein Kommentar?
Ich hoffe das ich mich hier verständlich ausgedrückt habe.
Gruß Dietmar
Damit das Mögliche entsteht, muß immer wieder das Unmögliche versucht werden.
prinzipiell könnte so was funktionieren. Allerdings müsstest Du ständig ein Makro laufen lassen, welches die Mausposition auswertet, die darunter liegende Zelle prüft und je nach Lage und Inhalt etwas anzeigt. Vielleicht wäre es besser, mit Kommentaren zu arbeiten und diese ggf. einfach per Button zu aktualisieren oder z.B. nach einer Zelleingabe.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
eine schnelle und einfache Lösung wäre dieser Code, den du in das Modul des Tabellenblatts "Gestelllager" einträgst.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Fund As Range If Target.Count = 1 Then If Target.Value <> "" Then Set Fund = Worksheets("Material").Columns(3).Find(Target.Value) If Not Fund Is Nothing Then Range("A1") = Worksheets("Material").Cells(Fund.Row, 4) Else Range("A1").ClearContents End If Else Range("A1").ClearContents End If Else Range("A1").ClearContents End If End Sub
Damit wird dir der jeweilige Materialtext Zelle A1 angezeigt, sofern vorhanden und nur eine Zelle ausgewählt ist. Dafür musst du aber den Zellenverbund in A1 aufheben, das ist sowieso eine Unart.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim varTemp As Variant If Target.Row > 1 Then If Target.Offset(-1).Value = "M" Then Cancel = True With Application.CommandBars.Add("CBar_Material", msoBarPopup, , True) With .Controls.Add(msoControlButton, , , , True) varTemp = Split(Mid(Target.Formula, 2), "!") .Caption = Worksheets(varTemp(0)).Range(varTemp(1)).Offset(, 1).Value End With .ShowPopup .Delete End With End If End If End Sub
Hallo Uwe, deine Lösung ist ja schon in etwa so wie ich mir das mit dem Kommentar vorgestellt habe.
Das Problem was auftritt ist, wenn ich in eine leere Zelle mit rechts klicke, dann bekomme ich einen Debuggen der auch nach schließen und der Betätigung mit ja bestehen bleibt, ich muss dann die Datei neu öffnen. Gibt es dafür noch eine Lösung? Danke!
Gruß Dietmar
Damit das Mögliche entsteht, muß immer wieder das Unmögliche versucht werden.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim varTemp As Variant If Target.Row > 1 Then If Target.Offset(-1).Value = "M" Then Cancel = True On Error Resume Next Application.CommandBars("CBar_Material").Delete On Error GoTo 0 With Application.CommandBars.Add("CBar_Material", msoBarPopup, , True) With .Controls.Add(msoControlButton, , , , True) varTemp = Split(Mid(Target.Formula, 2), "!") If UBound(varTemp) = 1 Then .Caption = Worksheets(varTemp(0)).Range(varTemp(1)).Offset(, 1).Value End If End With .ShowPopup .Delete End With End If End If End Sub