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.

Dropdown für Hintergrundfarbe
#31
Das _BeforeRightClick() gehört ins Modul der Tabelle (steht auch in grün dort)!
(Rechtsklick auf Tabellenreiter, Code anzeigen)
Aufgerufen wird das Kontextmenue wie gewohnt, es sieht halt nur anders aus.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#32
Ich habe Uwes Vorschlag mal (erweitert) umgesetzt.


Angehängte Dateien
.xlsm   Farbauswahl per Kontextmenue.xlsm (Größe: 18,93 KB / Downloads: 8)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#33
SUPER!!!!

Hat funktioniert....vielen Dank!!

Kann ich nun die Farben noch ein bisschen anpassen (z.B. etwas blasser, matter etc.) oder kann ich nur die aus der Liste weiter oben nutzen?
Antworten Top
#34
Klar geht das!
Erstelle in einem allgemeinen Modul eine benutzerdefinierte Funktion:
Function Farbwert#(r As Range)
Farbwert = r.Interior.Color
End Function

Erstelle Deine gewünschten Farben in einer Tabelle und ermittle den Farbwert mit der UDF, die Du als normale Tabellenfunktion eingeben kannst:
AB
1FarbeWert
211854022
313285804
414395790
56740479
624704

ZelleFormel
B2=Farbwert(A2)

Den Wert übernimmst Du dann als .Parameter =

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#35
ich muss aber doch dann bestimmt die FaceId wegnehmen oder? und für vbRed setze ich dann den Farbwert als Zahl ein?

          .FaceId = 6850
          .Caption = "Rot"
          .Parameter = vbRed
          .OnAction = "Hintergrundfarbe_setzen"

Wie bekomme ich es denn hin, dass wie im Beispiel oben nicht im ganzen Tabellenblatt, sondern nur in einem bestimmten Auschnitt die Farben eingestellt werden?
Antworten Top
#36
(09.07.2018, 09:01)Runpoint86 schrieb: Wie bekomme ich es denn hin, dass wie im Beispiel oben nicht im ganzen Tabellenblatt, sondern nur in einem bestimmten Auschnitt die Farben eingestellt werden?

Das siehst Du in meiner Datei!

Die Face-IDs sind vorgegeben, deren Farbe kann nicht geändert werden!

(es gibt wohl Anleitungen im Netz, per .CopyPicture und .PasteFace o.ä. ein Bild einer freien ID zuzuordnen, dies habe ich jedoch nur kurz erfolglos angetestet und mich dann den angenehmeren Dingen des Wochenendes zugewandt Wink)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#37
Meinst du diesen Part vom Code?

Dim PicPath$: PicPath = Environ("UserProfile") & "\Desktop\cyan.gif"

If Intersect(Range("Kontext_Menue"), Target) Is Nothing Then Exit Sub

Ansonsten finde ich keine Angabe zur Größe des Bereiches
Antworten Top
#38
Letzteres!
Ich habe dem umrahmten Bereich einen Namen gegeben.
Ersteres ist eine Code-Leiche. Wink
Ich bin jetzt bis heute Abend offline.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#39
Undecided damit kann ich leider nicht so viel anfangen...es geht also nicht das ich vorgebe für welchen Bereich?
Also so z.B.: L12:N15?
Antworten Top
#40
Hallo,

(09.07.2018, 09:07)RPP63 schrieb: (es gibt wohl Anleitungen im Netz, per .CopyPicture und .PasteFace o.ä. ...

wie hier z.B..

Das habe ich mal umgesetzt. Die Farben und deren Position im Menü werden im Sheet Farben festgelegt.
Der Bereich, in dem das Farbmenü bei Rechtsklick aufpoppt, ist jetzt auf Tabelle1 L12:N15 festgelegt.

Farben

AB
1Position im MenüFarbe
210
31
43
52
64
75
86
97
109
118



Microsoft Excel Objekt Tabelle1
Option Explicit 

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 Dim lngZ As Long
 Dim rngFarben As Range, rngP As Range
 Dim varP As Variant
 If Not Application.Intersect(Range("L12:N15"), Target) Is Nothing Then
   Cancel = True 'verhindert die Anzeige des normalen Kontextmenüs
   Set rngFarben = Worksheets("Farben").Cells(1, 1).CurrentRegion
   On Error Resume Next
   Application.CommandBars("MeineFarben").Delete
   With Application.CommandBars.Add("MeineFarben", msoBarPopup, , True)
     For lngZ = 1 To rngFarben.Rows.Count - 1
       With .Controls.Add(msoControlButton)
         varP = Application.Match(lngZ, rngFarben.Columns(1), 0)
         If Not IsError(varP) Then
           ' holt sich die Farbe aus der Arbeitsblatt Farben
           Set rngP = rngFarben.Cells(varP, 2)
           rngP.CopyPicture xlScreen, xlBitmap
           .PasteFace
           .Parameter = rngP.Interior.Color
           .OnAction = "Hintergrundfarbe_setzen"
         Else
           .Parameter = xlNone
           Err.Clear
         End If
       End With
     Next lngZ
     With .Controls.Add(msoControlButton)
       .FaceId = 6849
       '.Caption = "Farblos"
       .Parameter = -4142
       .OnAction = "Hintergrundfarbe_setzen"
     End With
     .ShowPopup
     .Delete
   End With
 End If
End Sub



VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0



Modul Modul1
Option Explicit 
Option Private Module

Sub Hintergrundfarbe_setzen()
 Selection.Interior.Color = Application.CommandBars.ActionControl.Parameter
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0



.xlsm   Farbauswahl per Kontextmenue Kuwer.xlsm (Größe: 20,61 KB / Downloads: 9)


Gruß Uwe
Antworten Top


Gehe zu:


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