Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema CommandButton | |
---|---|
![]() |
CommandButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema OptionButton | |
---|---|
![]() |
OptionButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema ScrollBar | |
---|---|
![]() |
ScrollBar-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema SpinButton | |
---|---|
![]() |
SpinButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema TextBox | |
---|---|
![]() |
TextBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Button für mehrere Zeilen dynamisch erzeugen
von: freichle
Geschrieben am: 02.02.2010 16:07:54
Hallo,
wie kann ich über eine Action immer einen neuen Button für eine neue Zeile anlegen?
- Der Button muss in der neuen Zeile positioniert sein.
- Jeder neu erzeugte Button greift auf die gleiche Action/Funktion in VBA zurück.
- Jeder Button übergibt an die Action/Funktion die Zeilennummer.
Danke und Gruß
Betrifft: AW: Button für mehrere Zeilen dynamisch erzeugen
von: Ramses
Geschrieben am: 02.02.2010 16:14:03
Hallo
"...wie kann ich über eine Action immer einen neuen Button für eine neue Zeile anlegen.."
Wozu ?
Damit blähst du deine Mappe nur unnötig auf ?
"... eine Action..."
Das gibt es beim Film, aber nicht in EXCEL.
WELCHES Ereignis soll denn den neuen Button einfügen ?
Welcher Button soll denn einfefügt werden ?
Commandbutton oder Button aus der Formularleiste ?
"...auf die gleiche Action/Funktion..."
WELCHE Funktion ? In der Tabelle, in der Mappe ?
Eine Userdefinierte Funktion oder was sonst ?
"...- Jeder Button übergibt an die Action/Funktion die Zeilennummer...."
Das geht so
Sub DeineFunktion(tmpRow as Long)
End Sub
Der Aufruf aus einem Commandbutton erfolgt dann z.B. so
Private Sub CommandButton1_Click() Call DeineFunktion(Me.CommandButton1.TopLeftCell.Row) End SubGruss Rainer
Betrifft: AW: Button für mehrere Zeilen dynamisch erzeugen
von: freichle
Geschrieben am: 02.02.2010 17:44:48
Hallo
"...wie kann ich über eine Action immer einen neuen Button für eine neue Zeile anlegen.."
Wozu ?
Damit blähst du deine Mappe nur unnötig auf ?
- Ich möchte den Inhalt einer Zeile per Mail senden und es ist anwenderfreundlicher, wenn der Benutzer es mit einem Button in der gleichen Zeile durchführen kann
"... eine Action..."
Das gibt es beim Film, aber nicht in EXCEL.
WELCHES Ereignis soll denn den neuen Button einfügen ?
- ein Makro
Welcher Button soll denn einfefügt werden ?
Commandbutton oder Button aus der Formularleiste ?
Ein "Button"
"...auf die gleiche Action/Funktion..."
WELCHE Funktion ? In der Tabelle, in der Mappe ?
Eine Userdefinierte Funktion oder was sonst ?
- Eine Makro
"...- Jeder Button übergibt an die Action/Funktion die Zeilennummer...."
Das geht so
Betrifft: AW: Button für mehrere Zeilen dynamisch erzeugen
von: Daniel
Geschrieben am: 03.02.2010 01:00:12
Hi
besser ist in diesem Fall, die "Aktion" über einenDoppelklick in der entsprechenden Zeile zu starten.
das braucht keinen Button und ist viel einfacher zu realisieren.
zum Testen mal dieses Makro in das Modul des Tabllenblatts stellen und mit Doppelklick auf eine Zeile testen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Angeklickt: Zeile " & Target.Row End SubGruss, Daniel
Betrifft: AW: Button für mehrere Zeilen dynamisch erzeugen
von: freichle
Geschrieben am: 03.02.2010 10:26:15
Danke, ist eine gute Idee!
Kann man das auch auf eine Spalte begrenzen und mit nur einem Klick durchführen?
Das restliche Dokument soll man ja normal bearbeiten können und dafür benötigt man auch den Doppelklick.
Betrifft: AW: Button für mehrere Zeilen dynamisch erzeugen
von: Daniel
Geschrieben am: 03.02.2010 21:59:58
Hi
du kannst ja im Makro prüfen, welche Zeile oder Spalte angeklickt wurde und im Makro dann entsprechend reagieren.
den Doppelklick benötigt man zum Bearbeiten des Dokuments eigentlich nicht, aber die normale Doppelklickfunktion wird nach dem Makrolauf trotzdem ausgeführt.
wenn das nicht passieren soll, musst du die Variable CANCEL = TRUE setzen.
für eine Ein-Klick-Aktion müsstest du das Event "Selection_Change" verwenden.
das würde dann, mit Begrenzung auf Spalte 1 so aussehen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then 'Prüfung Spalte 1 If Target.Cells.Count = 1 Then 'Prüfung nur 1 Zelle angeklickt MsgBox "Gewählt: Zeile " & Target.Row End If End If End Sub