Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen verschieben, wenn "x" oder Haken gesetzt

Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 08:43:55
Sandra
Guten Morgen Excelfreunde,
Ich habe eine Tabelle mit zwei Registerkarten. (offen/erledigt) Ziel soll es sein in Tabelle1 gewisse Daten in Bsp. "B8" einzugeben. Wenn nun in "L8" ein "x" gesetzt wird oder mittels CheckBox ein Haken (Was einfacher ist) soll die gesamte Zeile in das zweite Tabellenblatt an die gleiche Position verschoben werden.
Kann so etwas mit einer Wenn-Formel realisiert werden? oder wird ein Makro benötigt?
Vielen Dank.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 09:24:53
Daniel
Hi
"verschieben" ist mit Formeln nicht möglich, denn wenn du per Formel einen Inhalt von einem Tabellenblatt in ein anderes übernimmst, dann muss dieser Inhalt im Quelltabellenblatt erhalten bleiben, ansonsten kann die Formel nichts anzeigen.
Formeln eignen sich daher höchtens zum "kopieren" aber nicht zum "verschieben", du wirst daher wahrscheinlich ein Makro benötigen.
Gruß Daniel
Anzeige
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 09:31:23
Sandra
Vielen Dank Daniel.
Hast du zufällig noch eine Idee wir der aussehen könnte?
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 09:53:20
UweD
Hallo
- Rechtsclick auf den Tabellenblattreiter "Offen"
- Code anzeigen
- Dieses Makro dort reinkopieren
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim TB, Zeile As Long
    On Error GoTo Fehler
    
    If Not Intersect(Range("L:L"), Target) Is Nothing Then
        Set TB = Sheets("Erledigt")
        If UCase(Target) = "X" Then
            Zeile = Target.Row
            Application.EnableEvents = False
            Rows(Zeile).Cut TB.Rows(Zeile)
        End If
    End If
    
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Bei Änderung in Spalte L läuft das makro los und prüft auf x...
LG UweD
Anzeige
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 10:11:21
Sandra
Funktioniert. Vielen Dank Uwe. Kann ich zusätzlich noch bestimmen, dass wenn die Zeile dann leer ist, diese direkt ausgeblendet wird oder der Rest nachrutscht? Quasi um leere Zeilen zu vermeiden?
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 11:36:25
UweD
Hallo
ja, das geht.
Du hattest aber geschrieben, dass an die gleiche Position verschoben werden sollte.
Wenn nun z.B. die Zeile 10 übertragen wird in Zeile 10 des anderen Blattes und dann in Blatt 1 gelöscht wird, ist die nachgerückte Folgezeile die Neue 10.
Setzt du dort dann das X, wird in Blatt2 die Zeile 10, die ja schon besteht, überschrieben.
Das möchtest du sicher nicht.
Alternative wäre, den Übertrag immer unten anzuhängen.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim TB, Zeile As Long, LR  As Long
    On Error GoTo Fehler
    
    If Not Intersect(Range("L:L"), Target) Is Nothing Then
        Set TB = Sheets("Erledigt")
        LR = TB.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 'erste Freie Zeile des gesamten Blattes 
    
        If UCase(Target) = "X" Then
            Zeile = Target.Row
            Application.EnableEvents = False
            Rows(Zeile).Cut TB.Rows(LR)
            Rows(Zeile).Delete xlUp
        End If
    End If
    
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub


LG UweD
Anzeige
AW: Zeilen verschieben, wenn "x" oder Haken gesetzt
03.05.2019 11:44:42
Sandra
Perfekt. Alles super. Vielen lieben Dank für die Erklärung und den Sub :)
gern geschehen owT
03.05.2019 12:04:56
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen verschieben in Excel bei Haken oder "x"


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe zu dem Tabellenblatt, in dem du die Daten verwalten möchtest (z. B. „Offen“).

  2. Füge eine Checkbox hinzu, um den „erledigt Haken“ zu setzen:

    • Gehe zum Tab „Entwicklertools“.
    • Klicke auf „Einfügen“ und wähle „Checkbox“ aus den Steuerelementen.
    • Platziere die Checkbox in einer Zelle, z. B. in Spalte L.
  3. Füge den folgenden VBA-Code hinzu, um die Zeilen automatisch zu verschieben, wenn das Häkchen gesetzt ist:

    • Rechtsklicke auf den Reiter des Tabellenblatts „Offen“ und wähle „Code anzeigen“.
    • Kopiere den folgenden Code in das VBA-Fenster:
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim TB, Zeile As Long
       On Error GoTo Fehler
    
       If Not Intersect(Range("L:L"), Target) Is Nothing Then
           Set TB = Sheets("Erledigt")
           If UCase(Target) = "X" Then
               Zeile = Target.Row
               Application.EnableEvents = False
               Rows(Zeile).Cut TB.Rows(TB.Cells.SpecialCells(xlCellTypeLastCell).Row + 1)
               Rows(Zeile).Delete xlUp
           End If
       End If
    
    Fehler:
       Application.EnableEvents = True
       If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    End Sub
  4. Teste die Funktionalität, indem du in Spalte L ein „x“ oder das Häkchen setzt. Die gesamte Zeile sollte nun in das Tabellenblatt „Erledigt“ verschoben werden.


Häufige Fehler und Lösungen

  • Fehler: Zeile wird nicht verschoben.

    • Stelle sicher, dass der Code im richtigen Blatt (z. B. „Offen“) eingefügt wurde.
  • Fehler: „x“ wird nicht erkannt.

    • Überprüfe, ob du die Formel in der richtigen Zelle eingegeben hast und ob die Groß- und Kleinschreibung beachtet wird.
  • Leere Zeilen bleiben bestehen.

    • Stelle sicher, dass der Befehl Rows(Zeile).Delete xlUp im Code enthalten ist, um die leeren Zeilen zu entfernen.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Filter-Funktion verwenden, um erledigte Aufgaben anzuzeigen oder auszublenden. Hier ist eine einfache Methode:

  1. Setze Filter auf deine Tabelle (Tab „Daten“ > „Filtern“).
  2. Filtere nach „Haken gesetzt“ oder „x“ in Spalte L.
  3. Kopiere die gefilterten Zeilen manuell in das „Erledigt“-Tabellenblatt.

Diese Methode erfordert jedoch mehr manuellen Aufwand und ist nicht so automatisiert wie die VBA-Lösung.


Praktische Beispiele

  • Beispiel 1: Du hast eine To-Do-Liste in „Offen“. Wenn du in Spalte L ein „x“ setzt, wird die Aufgabe automatisch in das Blatt „Erledigt“ verschoben.

  • Beispiel 2: Wenn du mehrere Aufgaben hast, kannst du diese im gleichen Schritt verschieben, indem du die Checkboxen für mehrere Zeilen aktivierst.


Tipps für Profis

  • Automatisierung verbessern: Du kannst den VBA-Code anpassen, um zusätzlich die Zeit zu protokollieren, wann die Aufgabe erledigt wurde.

  • Bedingen Formatierung: Nutze bedingte Formatierungen, um die verbleibenden Aufgaben hervorzuheben, während die erledigten Zeilen in der Tabelle „Erledigt“ angezeigt werden.

  • Fehlerüberprüfung: Füge zusätzliche Fehlerüberprüfungen in deinen VBA-Code ein, um sicherzustellen, dass keine unerwarteten Probleme auftreten.


FAQ: Häufige Fragen

1. Kann ich auch mehrere Zeilen gleichzeitig verschieben?
Ja, du kannst den Code anpassen, um mehrere Zeilen zu verarbeiten, indem du eine Schleife hinzufügst, die alle markierten Zeilen durchläuft.

2. Funktioniert das auch in Excel Online?
Leider funktionieren VBA-Makros nicht in Excel Online. Du musst Excel auf deinem Desktop verwenden.

3. Was passiert, wenn ich das „x“ wieder entferne?
Der aktuelle Code verschiebt die Zeilen nur, wenn ein „x“ gesetzt wird. Du kannst den Code anpassen, um eine Rückverschiebung zu ermöglichen, wenn das „x“ entfernt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige