ich will bei einem Maus-Rechtklick auf eine Zelle eine Berechnung durchführen und das Ergebnis in dem Kontextmenü sofort anzeigen. Wer kann mir helfen?
Ich finde immer nur Hilfen zu statischen Neueinträgen.
Danke vorab.
Joachim K
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target * Target
Cancel = True
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim objCnt As CommandBarControl
Set objCnt = Application.CommandBars("Cell").FindControl(Tag:="Neuberechnung")
If Target.HasFormula Then
If objCnt Is Nothing Then Set objCnt = Application.CommandBars("Cell").Controls.Add
ActiveSheet.Calculate
With objCnt
.Caption = Target.Value
.Tag = "Neuberechnung"
.FaceId = 283
End With
Else
If Not objCnt Is Nothing Then objCnt.Delete
End If
End Sub
Gruß, NoNetDas Makro von NoNet habe ich noch nicht zum Laufen bekommen.
Hast Du das Makro auch in das Klassenmodul des Tabellenblattes kopiert ?Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, _
Cancel As Boolean)
Dim objCnt As CommandBarControl
Dim Erg
On Error GoTo NotFound
' Prüfe auf Kostenstelle
Erg = Application.WorksheetFunction.VLookup(Target.Value2, _
ThisWorkbook.Sheets(KST_Worksheet).Range(KST_Tabelle), KST_PosLongString, False)
If objCnt Is Nothing Then
Set objCnt = Application.CommandBars("Cell").Controls.Add
End If
With objCnt
.Caption = Str(Target.Value2) & " -> " & Erg
.Tag = "KST"
.FaceId = 90
End With
Exit Sub
NotFound:
If Not objCnt Is Nothing Then objCnt.Delete
On Error GoTo 0
End Sub
Danke vorabSet objCnt = Application.CommandBars("Cell").FindControl(Tag:="KST")
Gruß, NoNet