Office - Word, Excel und Co. 9.753 Themen, 41.606 Beiträge

Makro per Hyperlink/o.ä. aktivieren

wasd / 3 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
mumpel1 wasd „Makro per Hyperlink/o.ä. aktivieren“
Optionen

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é

bei Antwort benachrichtigen
mumpel1 wasd „Makro per Hyperlink/o.ä. aktivieren“
Optionen

Kleine Korrektur:

Eigentlich sollte man Rows(Target.Row + 1).EntireRow.Insert schreiben. Ist professioneller, auch wenn das Ergebnis das selbe ist.

bei Antwort benachrichtigen
wasd mumpel1 „Kleine Korrektur: Eigentlich sollte man Rows Target.Row 1 .EntireRow.Insert...“
Optionen

Oder so, Tausend dank! :)

bei Antwort benachrichtigen