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

Button mit eigener Farbe erzeugen

Button mit eigener Farbe erzeugen
22.06.2023 07:22:35
Stefan

Guten Morgen ...

Ich erstelle mit folgendem Code:


'
' ============== EMAIL-BUTTON ERSTELLEN ==================
'
    Dim btnMAIL As Button
    'Dim Statistikblatt As Worksheet
    
    ' Arbeitsblatt festlegen
    Set Statistikblatt = ThisWorkbook.ActiveSheet
    
    ' Button erstellen
    Set btnMAIL = Statistikblatt.Buttons.Add(Left:=370, Top:=100, Width:=60, Height:=30)
    
    ' Button-Eigenschaften festlegen
    With btnMAIL
'        .BackColor = &H80000002
        .Text = "Send Mail"
        .Name = "btn_StatPrint"
        .OnAction = "Senden_Stat"
        .Enabled = False
    End With
    
    UserForm_Menu.Hide



... einen Button in einem dynamisch erzeugten Sheet an der festgelegten Position, beschrifte ihn und hinterlege eine Sub. Letztere steuert den Ausdruck des erzeugten Sheets in eine PDF-Datei, stößt den Versand via Email an ... und damit der Button nicht mitgedruckt wird, ist "Enabled = False" gesetzt.

Soweit so gut.

Ich möchte diesen Button aber bei der Erstellung noch einfärben.

Aktiviere ich die die oben auskommentierte Eigenschaft ".BackColor = &H80000002", bricht der Prozess mit der Fehlermeldung 438 "Eigenschaft wird nicht unterstützt" ab.

Gibt's keine Möglichkeit, die Farbe zu ändern?

Gruß

Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button mit eigener Farbe erzeugen
22.06.2023 07:42:09
hary
Moin
Du fuegst ein Formularsteuerelement ein. Da kann die Farbe nicht geaendert werden.
Nutze Activesteuerelement oder eine Rechteckform.
gruss hary


AW: Button mit eigener Farbe erzeugen
23.06.2023 08:20:43
Stefan
Hi hary ...

Ich habe mich gestern den ganzen Tag damit beschäftigt.

Den Active-X- Button einzufügen ist jetzt nicht das Problem gewesen:


ThisWorkbook.ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, _
                                Left:=370, _
                                Top:=200, _
                                Width:=60, _
                                Height:=30).Select

With Selection
.Placement = 3
.PrintObject = False
.Name = "btn_Testbutton"
.Object.Caption = "Controls"
.Object.Font.Size = 10
.Object.FontName = "Verdana"
.Object.ForeColor = vbWhite
.Object.BackColor = &HC0&
.Object.Font.Bold = False
.Object.FontItalic = False
.Object.FontUnderline = False
.Object.Locked = False
'.Object.OnAction = "Senden_Stat"
End With
Das Problem ist, das ich dem Button keine Sub zuordnen kann. Ich habe es mit dem Parameter "OnAction" versucht, den ich aus den Formularsteuerelementen kenne, aber der wird hier nicht unterstützt. Eine Recherche in Google brachte mir allerdings auch keinen Parameter, den ich anwenden könnte.

In einem Beitrag fand ich die Methode:


        'Add the event handler code
        Code = "Sub " & NewBtn.Name & "_Click()" & vbCrLf
        Code = Code & "     MsgBox ""Hello...""" & vbCrLf
        Code = Code & "End Sub"
... aber es kann ja nicht wirklich sein, das ich die komplette Sub, die ich ausführen lassen möchte (ca. 30 Zeilen Code), derart zeilenweise zerstückeln muß, oder ... ?


Anzeige
AW: Button mit eigener Farbe erzeugen
23.06.2023 08:26:50
hary
Moin
Auf die schnelle hier ein Rechteck. Muss gleich weg.
Sub Rechteck()
Dim Rechteck As Shape
Set Rechteck = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 370#, 100#, 60#, 30#)
    With Rechteck
        .Name = "btn_StatPrint"
        .TextFrame2.TextRange.Text = "send Mail"
        .Fill.ForeColor.RGB = vbBlack
        .OnAction = "Senden_Stat"
    End With
End Sub
gruss hary


AW: Button mit eigener Farbe erzeugen
23.06.2023 11:25:22
Stefan
Hi Hary ...

Danke für Dein Snippet. :)
Es tut genau das, was ich mir vorstellte.

Ich hab's noch ein bißchen - mit der Hilfe der M$-Helppage - angepasst.


...
Dim Rechteck As Shape

Set Rechteck = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 370#, 100#, 60#, 30#)
    With Rechteck
        .Name = "btn_StatPrint"
        .TextFrame2.TextRange.Text = "send Mail"
        .TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
        .TextFrame2.HorizontalAnchor = msoAnchorCenter
        .TextFrame2.VerticalAnchor = msoAnchorMiddle
        .Fill.ForeColor.RGB = RGB(255, 0, 0)
        .OnAction = "Senden_Stat"
    End With
    
    With Rechteck.ThreeD
        .Visible = True
        .Depth = 5
        .BevelTopDepth = 5
        .BevelTopInset = 5
        .ContourColor.RGB = RGB(0, 0, 0)
        .ExtrusionColor.RGB = RGB(255, 255, 0)
    End With
...

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige