Vor ein paar Tagen habe ich diesesTastenkürzel vorgestellt, mit dem man in MS Office Absätze und Tabellenzeilen nach oben und unten verschieben kann.
Siehe: https://www.konschak.de/office-zeilen-verschieben
In Excel funktioniert dieses Tastenkürzel leider nicht. Mit ein paar Makros in der PERSONAL.XLSB kann man das Verschieben per Tastenkürzel allerdings auch in Excel ermöglichen.
Das komplette Modul stelle ich unten zum Download bereit.
Option Explicit
Option Compare Text
Enum enmWohin
hoch = 1
runter = 2
End Enum
Sub AutoExec()
' Wird beim Starten von Excel ausgeführt und verbindet die Tastenkürzel mit den Makros
On Error Resume Next
Application.OnKey "%+{DOWN}", Procedure:="Selection_nach_unten_verschieben"
Application.OnKey "%+{UP}", Procedure:="Selection_nach_oben_verschieben"
End Sub
Sub Selection_nach_unten_verschieben()
'Alt+Shift+Cursor nach unten
On Error GoTo er
If Selection.Rows(Selection.Rows.Count).Row = ActiveSheet.Cells.Rows.Count Then Exit Sub
Verschiebe runter
ex:
On Error Resume Next
Exit Sub
er:
MsgBox Err.Description, vbInformation, "Fehler beim Versuch zu verschieben..."
Resume ex
Resume
End Sub
Sub Selection_nach_oben_verschieben()
'Alt+Shift+Cursor nach oben
On Error GoTo er
If Selection.Rows(1).Row = 1 Then Exit Sub
Verschiebe hoch
ex:
On Error Resume Next
Exit Sub
er:
MsgBox Err.Description & vbNewLine & Erl, vbInformation, "Fehler beim Versuch zu verschieben..."
Resume ex
Resume
End Sub
Private Sub Verschiebe(Wohin As enmWohin)
'Allgemeine Routine zum Verschieben, wahlweise nach oben oder unten
On Error GoTo er
Dim rng As Range
Dim AnzZeilen As Long
Set rng = Selection
AnzZeilen = rng.Rows.Count
rng.Cut
Select Case Wohin
Case hoch: Set rng = rng.Offset(-1, 0)
Case runter: Set rng = rng.Offset(rng.Rows.Count + 1, 0)
End Select
rng.Insert Shift:=xlDown
Select Case Wohin
Case hoch
Set rng = rng.Offset(AnzZeilen * -1, 0)
Set rng = rng.Resize(rowSize:=AnzZeilen)
Case runter
Set rng = rng.Offset(AnzZeilen * -1, 0)
End Select
rng.Select
ex:
On Error Resume Next
Application.CutCopyMode = False
Exit Sub
er:
MsgBox Err.Description & vbNewLine & Erl, vbInformation, "Fehler beim Versuch zu verschieben..."
Resume ex
Resume
End Sub
Sabine Konschak (Freitag, 16 Februar 2024 09:14)
Hallo Rudi, gern helfe ich. Stelle bitte eine Anfrage über das Formular, oder schreibe mir eine E-Mail. Bis dahin!
Rudi (Freitag, 16 Februar 2024 08:15)
Habe per Drag and Drop einzelne Zeilen aus dem Browser in Excel gezogen. Dabei schreibt er die Daten manchmal um 1 Spalte versetzt in die Tabelle. Das würde ich gerne mit ihrem Makro schnell per Tastenkombination ändern und die gerade eingefügten Daten nach rechts o. links verschieben. Habe mir das Makro abgeändert, dass statt Row(s) Column(s) steht. Aber es will nicht. Fehlermeldung: Die Insert-Methode des Range-Objektes konnte nicht ausgeführt werden. Wo ist das Problem? Schon mal Danke im Voraus :-)