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

Schaltfläche in bestimmter Zelle positionieren

Schaltfläche in bestimmter Zelle positionieren
10.05.2007 15:25:42
uli
Hallo
Ich möchte gerne per Makro automatisch in mehreren Zellen Befehlschaltflächen erstellen lassen.
Dabei habe ich zwei Probleme:
1. Wie kann ich der Befehlschaltfläche eine genaue Zelle als Position angeben? (habs mal mit dem Makrorecorder versucht. Dieser positioniert allerdings mit top und left)
2. Wie kann ich jeder Befehlschaltfläche anschließend (auch automatisch) ein weiteres Makro zuweisen (Jedesmal das gleiche, was ausgeführt werden soll, wenn man irgendeine der Schlatflächen drückt).
Hoffe, ihr könnt mir weiterhelfen
Gruß
Uli

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schaltfläche in bestimmter Zelle positionieren
10.05.2007 15:45:00
Rudi
Hallo,

Sub tt()
Dim myBtn As Object, i As Integer
For i = 3 To 9 Step 2
Set myBtn = ActiveSheet.Buttons.Add(1, 1, 1, 1)
With myBtn
.Top = Cells(i, 3).Top
.Left = Cells(i, 3).Left
.Height = Cells(i, 3).Height
.Width = Cells(i, 3).Width
.Caption = "Test " & i
.OnAction = "Makro2"
End With
Next i
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Schaltfläche in bestimmter Zelle positionieren
10.05.2007 15:54:00
uli
Hallo Rudi,
genau das löst mein Problem. Hatte schon die Befürchtung mich unverständlich ausgedrückt zu haben. Vielen Dank an dich!!!. Nur eine Frage am Rande, was bedeutet die (1,1,1,1) hinter "Add"?
Gruß
Uli

Anzeige
AW: Schaltfläche in bestimmter Zelle positionieren
10.05.2007 16:10:44
Rudi
Hallo,
die Parameter müssen sein. left, top, width, height
Ich hätte auch

Sub tt()
Dim myBtn As Object, i As Integer
For i = 3 To 9 Step 2
Set myBtn = ActiveSheet.Buttons.Add(Cells(i, 3).Left, Cells(i, 3).Top, Cells(i, 3).Width,  _
Cells(i, 3).Height)
With myBtn
.Caption = "Test " & i
.OnAction = "Makro2"
End With
Next i
End Sub


schreiben können.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Schaltfläche in bestimmter Zelle positionieren
11.05.2007 01:00:00
uli
zu früh gefreut...
Leider gibt es doch noch ein Problem.
Beim Klicken der Befehlschaltfläche soll ja ein Makro geöffnet werden (immer das Selbe, egal welcher Button).
Jetzt ist mir allerdings aufgefallen, dass das Makro, welches nach dem Drücken der Schaltfläche ausgeführt werden soll, einen Zellenwert (Nachname, Vorname) benutzen soll, der neben der jeweiligen Befehlschaltfläche, die gedrückt worden ist, steht.
Weiß jemand, wie ich diesen Namen selektieren kann?
Gruß
Uli

Anzeige
AW: Schaltfläche in bestimmter Zelle positionieren
11.05.2007 03:53:00
Mustafa
Hallo Uli,
deklariere I als Globale Variable mit "Public i as Integer"
Dann kannst du in deinem Makro auf den Wert in I zugreifen und so die aktuelle Zeile mit wählen.
In deinem Makro musst du dann nur noch den wert der Spalte eingeben.
zB
Cells(i,2)
Damit hast du den wert der links neben dem Button steht.
Rückmeldung obs Hilft wäre nett.
Viele Grüße aus Köln.

AW: Schaltfläche in bestimmter Zelle positionieren
11.05.2007 09:17:00
Uli
Hallo Mustafa,
Vielen Dank für deine Antwort.
Leider verstehe ich noch nicht genau was du meinst.
Ich habe zwei Makros.
Makro1 erstellt mir automatisch die Buttons in Spalte1 in (fast) jeder Zelle.
Beim Drücken eines dieser Buttons wird Makro2 ausgeführt.
Makro2 benötigt zum Berechnen einiger Werte die Zeilennummer des Buttons
Wo soll ich die Variable I deklarieren?
Makro1 erstellt, wie du am Code von Rudi sehen kannst, die Buttons über eine Schleife. Wenn ich mir die Position innerhalb der Schleife merke, wird sie jedesmal überschrieben, so daß sich doch I dann nur die Zeile des letzten Buttons merkt, oder?
In Makro2 wird es schon zu spät sein. Denn wenn Makro2 ausgeführt wird, kann ja nicht mehr nachvollzogen werden, welcher Button das Ausführen initiiert hat.
Gruß
Uli

Anzeige
AW: Schaltfläche in bestimmter Zelle positionieren
11.05.2007 12:34:51
Rudi
Hallo,
versuch mal:

Sub tt()
Dim myBtn As Object, i As Integer
For i = 3 To 9 Step 2
Set myBtn = ActiveSheet.Buttons.Add(Cells(i, 3).Left, Cells(i, 3).Top, _
Cells(i, 3).Width, Cells(i, 3).Height)
With myBtn
.Name = "Button_" & (i - 1) / 2
.Caption = "Test " & (i - 1) / 2
.OnAction = "Makro2"
End With
Next i
End Sub



Sub makro2()
MsgBox ActiveSheet.Shapes(Application.Caller).Name
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Schaltfläche in bestimmter Zelle positionieren
11.05.2007 16:30:00
uli
Hallo Rudi,
toll, funktioniert super.
Hab schon den ganzen Morgen über dem Problem gegrübelt. Mit meinen 10-20 Befehlen die ich bei VBA kenne, bin ich aber nicht weit gekommen. Vielen Dank nochmal!
Gruß
Uli

249 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige