Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
564to568
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
564to568
564to568
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Button erstellen via vba

Button erstellen via vba
09.02.2005 11:34:36
Jonny
Hi,
ich will einen Button per vba erstellen lassen.
Ich hab es schon mit dem Makroaufzeichner versucht. Jedoch ist dieser nicht dynamisch genung.
Ich will im Endeffekt, dass wenn man auf einen Button klickt, ein weiterer Button eine Zeile tiefer und eine Spalte weiter rechts erzeugt wird.
Ist das möglich?!
------------
Der Code vom Makroaufzeichner:

Sub Button erstellen()
ActiveSheet.Buttons.Add(1249.5, 151.5, 86.25, 19.5).Select
Selection.OnAction = "Best_Zeilen_Löschen"
ActiveSheet.Shapes("Button 167").Select
Selection.Characters.Text = "Zeile löschen"
With Selection.Characters(start:=1, Length:=13).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Button erstellen via vba
09.02.2005 11:55:16
Jonny
Danke schön :o)
hab doch noch ein Prob.
09.02.2005 12:27:46
Jonny
Hi,
bei meiner Tabelle kann es sein, dass mit einem button auch 2 buttons erzeugt werden sollen, die dann untereinander stehen sollen.
Doch ist es bei diesem Code nicht möglich, bzw. der zuerst erzeugte button steht noch an seiner ursprungszeile drin. So dass sich die zwei erzeugten Button überschneiden. Ist es möglich dies zuverhindern.
Ich hab schon versucht den Befehl (Offset) umzuändern, doch ist es mir nicht gelungen, das gewollte ergebnis zu erreichen.
Ich habe die genauen Zellangaben, wo der Button stehen soll. Weiss, aber nicht diese umzusetzen...
Danke im Vorraus.
-----------------------------

Sub CreateButtons()
Dim btn As Button
With ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 1)
Set btn = ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height)
btn.Caption = "Meldung 1"
btn.OnAction = "Meldung1"
End With
End Sub

Anzeige
AW: hab doch noch ein Prob.
09.02.2005 12:32:49
Hans
Hallo Jonny,
das mit dem überschneiden verstehe ich nicht, denn es dürfte beim Ursprungscode nicht vorkommen.
Entscheidende für die Positionierung ist folgende Zeile:
With ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 1)
Mit der vorstehenden Referenzierung wird die neue Schaltfläche eine Zeile unterhalb und eine Spalte rechts von der Ursprungsschaltfläche eingefügt.
Offset(0,1) bedeutet gleiche Zeile, eine Spalte rechts davon
Offset(-2,-1) bedeutet zwei Zeilen drüber, eine Spalte links davon
Gruss hans
AW: hab doch noch ein Prob.
09.02.2005 12:34:12
Hans
... noch nur Überschneidung: Zur Überschneidung kann es nur kommen, wenn die erste Schaltfläche über mehrere Spalten geht. Das kannst Du dann aber über die Offset-Vorgabe ausgleichen.
Gruss hans
Anzeige
AW: hab doch noch ein Prob.
09.02.2005 12:44:15
Jonny
Hi hans,
also mit dem Offset habe ich schon verstanden.
Nun wenn ich auf den Button, der einen Button erzeugen soll, klicke, dann wird zuerst der Button1 eine Zeile tiefer und eine Zeile nach rechts verschoben erschaffen. Klicke ich erneut auf diesen button, dann erzeugt er noch einen Button2 eine Zeile tiefer und eine Zeile nach rechts.
Der erste erzeugte Button rutscht nicht richtig runter. Er hat nun die Größe von zwei Zellen.
Schema:
button
(klick button)
button
button1
(klick button)
button
button1/button2
button1
Anzeige
AW: hab doch noch ein Prob.
09.02.2005 13:33:24
Hans
Hallo Jonny,
mir ist nicht ganz klar, ob die zusätzlichen Schaltflächen jeweils durch Klick auf die erste, bereits von Anfang an vorhandene Schaltfläche erstellt werden sollen. Wenn ja, ist die Sache relativ aufwendig, denn es muss ja Zeilen-(oder Button-)weise abgefragt werden, welche Buttons schon vorhanden sind.
Sollen die Schaltflächen allerdings revolvierend erzeugt werden, ein Klick auf die soeben erstellte Schaltfläche erzeugt eine neue usw., so ist jeder Schaltfläche der Ursprungscode zuzuweisen.
Gruss hans
AW: hab doch noch ein Prob.
09.02.2005 13:57:41
Jonny
Hi hans,
also er soll wie folgt aussehen:
https://www.herber.de/bbs/user/17724.xls
PS: Komischer Weise, klappt hier das mit den Buttons.
Anzeige
AW: hab doch noch ein Prob.
10.02.2005 07:26:55
Hans
Hallo Jonny,
wenn Du mit der Löschen-Schaltfläche den erstellten Button samt darunterliegender Zeile löschen möchtest, wie folgt:

Sub Löschen()
With ActiveSheet.Buttons(Application.Caller)
Rows(.TopLeftCell.Row).Delete
.Delete
End With
End Sub

gruss hans

83 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige