Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Commandbutton dynamisch erstellen

Commandbutton dynamisch erstellen
05.08.2007 03:34:00
Leo
Hallo alle zusammen,
Ich brauche ein wenig Hilfe um CommandButtons dynamisch zu erstellen.
ICh habe eine TAbelle, bei der ab Zeile 41 bis zu einer bestimmten Zeile x_Zeile Daten eingefügt werden.
Nun möchte ich für jede Zeile einen entsprechenden CommandButton haben, um eine bestimmte Funktion leos_function an den Daten auszuführen.
Die auszuführende Sub und auch die zu erzeugenden Buttons sollen sich z.B. im Tabellenblatt 2 befinden.
ICh habe zwar schon einige ähnliche Beiträge gefunden, aber keiner hat mir richtig weitergeholfen!!
mfg
Leo

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Commandbutton dynamisch erstellen
05.08.2007 03:58:00
Leo
P.S.: Der Name der jeweiligen Buttons soll von Zeile 41 an mit 1 beginnen bis zum Ende halt; also z.B. CommandButton_1, CommandButton_2, .....

AW: Commandbutton dynamisch erstellen
05.08.2007 03:59:25
Leo
P.S.: Wäre Cool wenn gleich eine fertige SUB rausspringen würde!!

AW: Commandbutton dynamisch erstellen
05.08.2007 12:17:10
Leo
Vielen Dank!!!!!
Das ist genau das was ich gesucht habe!!!
Endlich ist das Kopfzerbrechen vorbei!!
mfg Leo

AW: Commandbutton dynamisch erstellen
05.08.2007 12:57:56
Leo
Noch eine kleine Frage!!
Wie muss ich den Code für das Löschen ändern, damit nur ab Zeile 41 in der Spalte 1 alle Commandbuttons gelöscht werden?
With Tabelle2
'delete old buttons
For Each objOLEObject In .OLEObjects
If TypeOf objOLEObject.Object Is MSForms.CommandButton Then _
objOLEObject.Delete
Next
End With

Anzeige
AW: Commandbutton dynamisch erstellen
05.08.2007 13:48:00
Nepumuk
Hallo Leo,
da hast du in deiner Frage nichts dazu geschrieben, sonst hätte ich das schon berücksichtigt.
Du musst die Position der Buttons in der Tabelle abfragen. Das musst du auch in der Prozedur Assign (prcAssign) denn sonst werden deine schon bestehenden Buttons auch an die Klasse verwiesen.
Und noch was, die Klasse ist ein temporäres Objekt, die Prozedur Assign muss also bei jeden öffnen der Mappe gestartet werden, sonst sind die Buttons ohne Funktion.
Gruß
Nepumuk

AW: Commandbutton dynamisch erstellen
05.08.2007 22:03:00
Leo
Hallo Nepumuk,
kannst du mir vielleicht die Änderung von prcAssign() posten, damit bloß die CommandButtons in der 1. Spalte (und vielleicht auch erst ab Zeile 41) von der Sub beachtet werden?

Private Sub prcAssign()
Dim objOLEObject As OLEObject
Dim lngCounter As Integer
For Each objOLEObject In Tabelle2.OLEObjects
If TypeOf objOLEObject.Object Is MSForms.CommandButton Then
lngCounter = lngCounter + 1
ReDim Preserve objCommandButton(1 To lngCounter)
Set objCommandButton(lngCounter) = New clsCommanbutton
Set objCommandButton(lngCounter).prpSetCommandButton = _
objOLEObject.Object
End If
Next
End Sub


Ausserdem bringt er bei bei folgernder Zeile
Application.OnTime Time + TimeSerial(0, 0, 1), "prcAssign"
bei Time folgenden Fehler:
Fehler beim Kompilieren:
Projekt oder Bibliothek nicht gefunden
mfg
Leo

Anzeige
AW: Commandbutton dynamisch erstellen
07.08.2007 11:15:00
Renee
Hi Leo,
Versuch es mal mit diesem Ersatz.
Die Identifikation erfolgt allerding über die Caption, statt über die Zellposition!

Public Sub prcCreateButton()
Dim objOLEObject As OLEObject
Dim lngRow As Long, lngCounter As Long
Const cFixName = "CommandButton_"
With Tabelle2
'delete old buttons
For Each objOLEObject In .OLEObjects
If TypeOf objOLEObject.Object Is MSForms.CommandButton _
And Left(objOLEObject.Object.Caption, Len(cFixName)) = cFixName Then _
objOLEObject.Delete
Next
'insert new buttons
For lngRow = 41 To .Cells(.Rows.Count, 1).End(xlUp).Row
lngCounter = lngCounter + 1
Set objOLEObject = .OLEObjects.Add(ClassType:= _
"Forms.CommandButton.1", Left:=.Columns(2).Left, Top:=.Cells(lngRow, 2).Top, _
Width:=.Cells(lngRow, 2).Width, Height:=.Cells(lngRow, 2).Height)
With objOLEObject
.Name = cFixName & CStr(lngCounter)
With .Object
.Caption = "CommandButton_" & CStr(lngCounter)
.TakeFocusOnClick = False
End With
End With
Next
End With
Application.OnTime Now() + TimeSerial(0, 0, 1), "prcAssign"
End Sub


Greetz Renee

Anzeige
AW: Commandbutton dynamisch erstellen
07.08.2007 17:56:00
Leo
Vielen Dank Renee!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige