Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zwei komplette Zeilen tauschen

Zwei komplette Zeilen tauschen
Andreas
Hallo Excel Freunde,
so zum Einstieg in den Tag dachte ich mir einen kleinen Code zu erstellen… Daraus ist nun etwas länger geworden und ich komme nicht drauf. Auch eine Suche im Forum hat nichts Passendes ergeben. Ich möchte gern zwei komplette Zeilen vertauschen. Die Selection kann eine ganze Zeile oder nur eine einzelne Zelle in einer Zeile sein (wird über .EntireRow gesetzt). Zeile1 an Position von Zeile2 und umgekehrt. Aber mein Vorgehen über .Cut/ :Insert Shift:=xlDown liefert mir den Debugger. Die Markierung ist ungültig. Mir scheint der Code aber plausibel. Im Forum und bei Google habe ich nur Einträge zum Thema Zeilen/ Spalten tauschen gefunden. Aber transponieren will ich nicht.
Vielleicht fällt jemandem im Forum als „Aufwärmer“ für diesen Tag auf, warum der Code nicht wie gewünscht agiert. Ich freue mich über jede Anregung! Danke.
Sub ZeilenTauschenV2()
Dim clCells1 As Range
Dim clCells2 As Range
With Selection
Set clCells1 = .Cells(1, 1)
Set clCells2 = .Cells(1, 1)
clCells1.EntireRow.Cut
clCells2.EntireRow.Insert shift:=xlDown
clCells2.EntireRow.Cut
clCells1.EntireRow.Insert shift:=xlDown
End With
End Sub
Viele Grüße, Andreas Hanisch
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zwei komplette Zeilen tauschen
25.08.2010 11:20:43
Rudi
Hallo,
die Ranges verschieben sich.
Sub Zeilen_tauschen()
If ActiveWorkbook Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Dim Zeile(2)
Select Case Selection.Areas.Count
Case 1
If Selection.Rows.Count = 2 Then
Zeile(1) = Selection.Cells(1).Row
Zeile(2) = Selection.Cells(2).Row
Else
MsgBox "ungültige Markierung!", , "Gebe bekannt..."
Exit Sub
End If
Case 2
Zeile(1) = Selection.Areas(1).Row
Zeile(2) = Selection.Areas(2).Row
Case Else
MsgBox "ungültige Markierung!", , "Gebe bekannt..."
Exit Sub
End Select
If Zeile(1) > Zeile(2) Then
Zeile(0) = Zeile(1)
Zeile(1) = Zeile(2)
Zeile(2) = Zeile(0)
End If
Rows(Zeile(1)).Cut
Rows(Zeile(2) + 1).Insert
If Zeile(2) > Zeile(1) + 1 Then
Rows(Zeile(2) - 1).Cut
Rows(Zeile(1)).Insert shift:=xlDown
End If
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
AW: Zwei komplette Zeilen tauschen
26.08.2010 20:03:25
Andreas
Hallo Rudi,
meine Herren... Der Code ist doch umfangreicher notwendig, als ich dachte! Ich habe ihn gerade getestet. Hammer wie das funktioniert!
Vielen, vielen Dank.
Habe noch einen schönen Abend, Grüße,
Andreas Hanisch
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zwei komplette Zeilen in Excel tauschen


Schritt-für-Schritt-Anleitung

Um zwei komplette Zeilen in Excel zu tauschen, kannst Du das folgende VBA-Makro verwenden. Dieses Skript funktioniert in Excel 2010 und späteren Versionen:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu starten.
  2. Klicke auf „Einfügen“ > „Modul“, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Zeilen_tauschen()
    If ActiveWorkbook Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Dim Zeile(2)
    Select Case Selection.Areas.Count
    Case 1
        If Selection.Rows.Count = 2 Then
            Zeile(1) = Selection.Cells(1).Row
            Zeile(2) = Selection.Cells(2).Row
        Else
            MsgBox "ungültige Markierung!", , "Gebe bekannt..."
            Exit Sub
        End If
    Case 2
        Zeile(1) = Selection.Areas(1).Row
        Zeile(2) = Selection.Areas(2).Row
    Case Else
        MsgBox "ungültige Markierung!", , "Gebe bekannt..."
        Exit Sub
    End Select
    If Zeile(1) > Zeile(2) Then
        Zeile(0) = Zeile(1)
        Zeile(1) = Zeile(2)
        Zeile(2) = Zeile(0)
    End If
    Rows(Zeile(1)).Cut
    Rows(Zeile(2) + 1).Insert
    If Zeile(2) > Zeile(1) + 1 Then
        Rows(Zeile(2) - 1).Cut
        Rows(Zeile(1)).Insert shift:=xlDown
    End If
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Markiere die zwei Zeilen, die Du tauschen möchtest.
  3. Drücke ALT + F8, wähle das Makro „Zeilen_tauschen“ und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Ungültige Markierung: Stelle sicher, dass Du genau zwei Zeilen markiert hast. Wenn mehr oder weniger Zeilen markiert sind, wird eine Fehlermeldung angezeigt.
  • ScreenUpdating: Wenn das Update der Bildschirmdarstellung nicht funktioniert, setze Application.ScreenUpdating auf True, um die Sichtbarkeit der Änderungen zu gewährleisten.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die folgenden Schritte befolgen:

  1. Markiere die erste Zeile, klicke mit der rechten Maustaste und wähle „Ausschneiden“.
  2. Klicke mit der rechten Maustaste auf die Zielzeile und wähle „Einfügen“.
  3. Wiederhole diesen Vorgang für die zweite Zeile. Dies wird zwar nicht direkt als „Zeilen tauschen“ betrachtet, aber es ist eine einfache Methode, um die Inhalte zu vertauschen.

Praktische Beispiele

Angenommen, Du hast folgende Daten:

A B
Zeile 1 Wert 1
Zeile 2 Wert 2

Wenn Du „Zeile 1“ und „Zeile 2“ mit dem obigen VBA-Skript tauschst, wird das Ergebnis so aussehen:

A B
Zeile 2 Wert 2
Zeile 1 Wert 1

Tipps für Profis

  • Daten sichern: Erstelle immer ein Backup Deiner Daten, bevor Du mit Makros arbeitest.
  • Aufruf von Makros: Du kannst auch Schaltflächen in Excel erstellen, um Makros schneller auszuführen.
  • Verwendung von Tastenkombinationen: Lerne die Tastenkombinationen für häufige Befehle, um Deine Effizienz zu steigern.

FAQ: Häufige Fragen

1. Wie kann ich mehr als zwei Zeilen in Excel tauschen?
Das obige Makro ist für den Austausch von genau zwei Zeilen konzipiert. Du müsstest den Code anpassen, um mehr als zwei Zeilen zu tauschen.

2. Funktioniert das Tauschen auch in Excel für Mac?
Ja, das VBA-Makro funktioniert auch in Excel für Mac, jedoch können die Tastenkombinationen abweichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige