Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1452to1456
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
CommandButton mit VBA-Code zuweisen
30.10.2015 19:22:36
Hermann
Hallo zusammen,
das ersteTabellenblatt in meiner Exceltabelle (mit ca. 100 Tabellenbl.) ist ein Inhaltsverzeichnis mit Hyperlinks zum Aufrufen der einzelnen TabBlätter.
Das TabBlatt „Inhaltsverzeichnis“ wird durch einen VBA-Code erstellt. Kommt ein neues TabBlatt hinzu, rufe ich mit Alt + F8, Makro auswählen, ausführen den Code auf.
Das TabBlatt „Inhaltsverzeichis“ wird gelöscht und wieder neu, mit den akt. TabBlättern erstellt. Ferner wird mir durch den Code ein CommandButton erstellt. Funktioniert super!
Jetzt kommts:
Ich möchte den Code nicht mit Alt + F8 aufrufen, sondern durch das ClickEreignis auf den Button. Dies gelingt mir nicht!!
Wenn ich mit der rechten Maustaste direkt auf den Button klicke und das Makro zuweise, ist es nach 1 mal klicken auf den Button wieder weg, weil das ganze Sheet gelöscht und wieder neu erstellt wird. Hoffentlich benötige ich hierzu kein Klassenmodul.
Vielleicht könnt Ihr mir helfen.
Gruß, Hermann
VBA Teil:
With ActiveSheet.OLEObjects("CommandButton1").Object
.Caption = "Aktualisieren"
.BackColor = Val("&H" & "66FFFF") 'RGB(255,192,0)
.OnAction = "Inhaltsverzeichnis_erstellen"
End With

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CommandButton mit VBA-Code zuweisen
30.10.2015 21:08:28
Nepumuk
Hallo,
warum nicht einfach eine Schaltfläche aus den Formularsteuelementen?
Gruß
Nepumuk

AW: CommandButton mit VBA-Code zuweisen
30.10.2015 22:23:31
Hermann
Hallo Nepumuk,
ich dachte das wäre eine Schaltfläche aus den Formularsteuelementen?
Wie müßte ich den Code abändern, das es ein Formularsteuelement wird?
Ich habe mir auch Deine Tipps mit mit dem Klassenmodul durchgelesen.
Frage: Kann ich in das Modul 1 mit
Option Explicit
Option Private Module
Private objCommandButton() As clsCommanbutton
auch den Code packen, der mir mein Inhaltsverzeichnis erstellt ( Normale Sub() )
Gruß, Hermann

Anzeige
AW: CommandButton mit VBA-Code zuweisen
30.10.2015 22:23:57
Hermann
Hallo Nepumuk,
ich dachte das wäre eine Schaltfläche aus den Formularsteuelementen?
Wie müßte ich den Code abändern, das es ein Formularsteuelement wird?
Ich habe mir auch Deine Tipps mit mit dem Klassenmodul durchgelesen.
Frage: Kann ich in das Modul 1 mit
Option Explicit
Option Private Module
Private objCommandButton() As clsCommanbutton
auch den Code packen, der mir mein Inhaltsverzeichnis erstellt ( Normale Sub() )
Gruß, Hermann

AW: CommandButton mit VBA-Code zuweisen
31.10.2015 01:09:10
fcs
Hallo Hermann,
wenn du eine farbige Schaltfläche möchtest, dann muss du ein Rechteck oder eine andere Form als Basis nehen. Die Schaltflächen aus den Formular-Steuerelementen lassen sich nicht färben.
Ob man das Ganze mit Active-X-Schaltfläche und Klassen-Modul gebacken bekommt: ?
Active-X-Elemente in einem Tabellenblatt erwarten ihre Ereignismakros nun mal im Code-Modul des Tabellenblatts.
Mit dem Löschen des Blattes killst du ja auch das Axtive-X-Element mit seinem Makro. Das kommt bei Excel auch nicht so gut an - Makro-Ausführung wird normalerweise abgerochen.
Gruß
Franz
Kann dann wie folgt aussehen:
Sub Inhaltsverzeichnis()
Application.DisplayAlerts = False
Sheets("Inhaltsverzeichnis").Delete
Application.DisplayAlerts = True
Worksheets.Add before:=ActiveWorkbook.Sheets(1)
With ActiveSheet
.Name = "Inhaltsverzeichnis"
'Rechteck als Schaltfläche einfügen
Call fncRechteck_Bunt("Aktualisieren", _
.Range("B2").Left, .Range("B2").Top, 120, 30, _
strOnAction:="Inhaltsverzeichnis", _
lngFillForeColorRGB:=RGB(255, 255, 0), _
strFontName:="Verdana", intFontSize:=14)
End With
End Sub
Function fncRechteck_Bunt(ByVal strCaption As String, _
ByVal dblLeft As Double, ByVal dblTop As Double, _
ByVal dblWidth As Double, ByVal dblHeight As Double, _
Optional ByVal strOnAction As String, _
Optional ByVal lngFillForeColorRGB As Long = 14277081, _
Optional ByVal strFontName As String = "Arial", _
Optional ByVal intFontSize As Integer = 12, _
Optional wks As Worksheet) As Object
'   lngFillForeColorRGB: 14277081  = hellgrau (RGB(217, 217, 217)
'   Rechteck mit Doppelline als Rahmen, schwarzer Schrift (msoShapeStylePreset1)
Dim objShape As Object
If wks Is Nothing Then Set wks = ActiveSheet
'Form einfügen
Set objShape = wks.Shapes.AddShape(msoShapeRectangle, dblLeft, dblTop, _
dblWidth, dblHeight)
Set fncRechteck_Bunt = objShape
With objShape
.ShapeStyle = msoShapeStylePreset1 'Weiß mit schwarzem Rahmen, schwarzer Shrift
With .TextFrame2 'Textfeld
.VerticalAnchor = msoAnchorMiddle
With .TextRange
.ParagraphFormat.Alignment = msoAlignCenter
With .Font
.NameComplexScript = strFontName
.NameFarEast = strFontName
.Name = strFontName
.Size = intFontSize
.Strikethrough = False
.Superscript = False
.Subscript = False
End With
.Characters.Text = strCaption 'muss nach den Formatierungen eingefügt werden!
End With
End With
With .Fill 'Füllfarbe
.Visible = msoTrue
.ForeColor.RGB = lngFillForeColorRGB
.Transparency = 0
.Solid
End With
With .Line 'Rahmen
.Visible = msoTrue
.Weight = 2.25
.Style = msoLineThinThin
End With
.Shadow.Type = msoShadow21 'Schatten rechts-unten
If strOnAction  "" Then
.OnAction = strOnAction
End If
End With
End Function

Anzeige
AW: CommandButton mit VBA-Code zuweisen
31.10.2015 09:49:45
Hermann
Hallo Franz,
ich habe die "Call fncRechteck_Bunt" in meinen Code "Inhaltsverzeichnis_erstellen" eingebaut.
Hurra!! Es funktioniert genau so, wie ich es wollte.
Da ich wenig bis sehr wenig VBA-Kenntnisse habe, konnte ich doch den Code der Function lesen und umsetzen. Vielen Dank, für die verständliche Schreibweise.
Beim 2.Teil muß ich leider passen.
Mein Verständnis: Er erstellt mir nur den farbigen Button.
Diesen Code werde ich in einem Übungssheet für mich als Übung bearbeiten und ändern,
und hoffe, daß es mir in 2 Jahren gelingt, so etwas ohne fremde Hilfe selbst zu erstellen.
PS: Warum erscheinen meine Beiträge eigentlcih immer doppelt in der Forumsliste?
Nochmals tausend Dank,
Gruß, Hermann

Anzeige
AW: CommandButton mit VBA-Code zuweisen
31.10.2015 09:50:23
Hermann
Hallo Franz,
ich habe die "Call fncRechteck_Bunt" in meinen Code "Inhaltsverzeichnis_erstellen" eingebaut.
Hurra!! Es funktioniert genau so, wie ich es wollte.
Da ich wenig bis sehr wenig VBA-Kenntnisse habe, konnte ich doch den Code der Function lesen und umsetzen. Vielen Dank, für die verständliche Schreibweise.
Beim 2.Teil muß ich leider passen.
Mein Verständnis: Er erstellt mir nur den farbigen Button.
Diesen Code werde ich in einem Übungssheet für mich als Übung bearbeiten und ändern,
und hoffe, daß es mir in 2 Jahren gelingt, so etwas ohne fremde Hilfe selbst zu erstellen.
PS: Warum erscheinen meine Beiträge eigentlcih immer doppelt in der Forumsliste?
Nochmals tausend Dank,
Gruß, Hermann

Anzeige
zu oft F5 gedrückt ? ... kwT
31.10.2015 10:01:51
Matthias

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige