Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ScrollBar
BildScreenshot zu ScrollBar ScrollBar-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Button für mehrere Zeilen dynamisch erzeugen | Herbers Excel-Forum


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 Sub
Gruss 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 Sub
Gruss, 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

Gruß, Daniel


Beiträge aus den Excel-Beispielen zum Thema "Button für mehrere Zeilen dynamisch erzeugen"