Hallo zusammen,
mein Problem scheint relativ simpel: Ich habe eine einfache Tabelle, bei der ich durch betätigen eines Makros eine Zeile zum jeweiligen Themenbereich innerhalb der Tabelle einfügen möchte.
Bisher habe ich zu jedem Themenbereich eine eigene Schaltfläche angelegt, durch die das Makro ausgelöst wird. Das Problem liegt allerdings darin, dass die Zeile nur unter der Zelle eingefügt wird, die momentan ausgewählt ist, unabhängig davon wo ich die Schaltfläche bediene. (Bsp.: A4 ist als Zelle markiert, man drückt auf den Button A1 um eine weitere Zeile zwischen 1 und 2 einzufügen, allerdings erscheint sie zwischen 4 und 5). Da die Zelle, in der die Schaltfläche ist, sich nicht markiert, wenn man darauf klickt, ist das System fehleranfällig. Kann mir irgendjemand von euch kurz verraten, wie ich das in den Griff bekommen könnte? Meine Annahme wäre es durch einen Hyperlink zu versuchen (so dass die Zelle markiert ist, wann man darauf klickt), aber ihr habt bestimmt noch eine einfachere Lösung.
Evtl. lässt sich ja auch das Makro umschreiben (leider habe ich keine großartigen Kenntnisse in VBA):
Sub Makro11()
'
' Makro11 Makro
'
'
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
Selection.EntireRow.Insert
End Sub
Vorab vielen Dank für eure Hilfe
wasd
Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge
Hallo!
Schmeiss die Schaltflächen raus und nutze das Doppelklick-Ereignis. Dadurch wird eine Zeile eingefügt, wenn Du einen Doppelklick auf die entsprechende Zeile machst. Im Beispielmakro wird das Ereignis ausgelöst, wenn Du auf eine Zelle in Spalte A doppelklickst. Das Makro muss in den Codebereich der Tabelle (Rechtsklick auf Tabellenreiter->Code anzeigen).
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
Cells(Target.Row + 1, Target.Column).EntireRow.Insert
cancel = True
End Sub
Gruß, René
Kleine Korrektur:
Eigentlich sollte man Rows(Target.Row + 1).EntireRow.Insert schreiben. Ist professioneller, auch wenn das Ergebnis das selbe ist.
Oder so, Tausend dank! :)