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

Forumthread: Zeile verschieben wenn Zelle Text

Zeile verschieben wenn Zelle Text
25.09.2020 10:53:39
Scorebite
Hallo, ich bin neue hier und habe ein, in meinen Augen, ein großes Problem mit VBA. Hab da keinen Schimmer von!
Ich habe eine Excel Datei mit einer Auflistung von Bestellungen in je einer Zelle bei der ich an hand von Lieferscheinen den kompletten Wareneingang prüfen will. Wenn nun ein kompletter Wareneingang statt gefunden hat wird in Zelle P "Bestellung vollständig" eingetragen. Dieser Text soll die Zeile mit dieser Bestellung automatisch auf ein zweites Tabellenblatt verschieben.
Kann mir jemand den VBA Code schreiben?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: auch hier: google mal nach Power Query owT
25.09.2020 11:02:02
neopa
Gruß Werner
.. , - ...
..hat doch "keinen Schimmer von",,,owT
25.09.2020 11:20:01
Helmut
AW: ... den soll/kann ers sich haber holen owT
25.09.2020 11:25:40
neopa
Gruß Werner
.. , - ...
Anzeige
AW: Zeile verschieben wenn Zelle Text
25.09.2020 13:04:26
Raimund
Hi
Code gehört ins Codemodul des Tabellenblattes und wird automatisch ausgeführt, wenn in Spalte P die Eingabe Bestellung vollständig erfolgt. In Spalte P kann auch Drop-Down List benutzt werden
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngErste As Long
If Target.Column = 16 Then 'Spalte P
If Target.Count = 1 Then
If UCase(Target) = "BESTELLUNG VOLLSTÄNDIG" Then ' Name des zweiten Sheets Anpassen
With Worksheets("BESTELLUNG VOLLSTÄNDIG") ' Sheet Name Anpassen
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
Rows(Target.Row).Copy
.Cells(lngErste, 1).PasteSpecial Paste:=xlValues
Rows(Target.Row).Delete shift:=xlUp
End With
End If
End If
End If
End Sub

https://www.herber.de/bbs/user/140433.xlsm
Gruß
Raimund
Anzeige
AW: Zeile verschieben wenn Zelle Text
27.09.2020 16:01:55
Scorebite
Hat super geklappt. DANKE!
AW: Zeile verschieben wenn Zelle Text
27.09.2020 16:56:58
Scorebite
So, jetzt wollte ich den Code noch bissel erweitern und stoße schon wieder an meine "Hab kein Schimmer" Grenze!
Ich habe jetzt das zweite Tabellenblatt umbenannt in "X" auch den Code angepasst, selbst die Zelle konnte ich ändern, keine Probleme gehabt.
Ich möchte ich aber den Code erweitern und zwar so: Text in Zelle (Spalte P) "X" oder "Y" oder "Z" dann Zeile verschieben in Tabellenblatt "X", "Y", "Z".
Kann man den erst Code einfach verdreifachen oder muss den Code komplett anders angehen?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeile verschieben bei Text in Excel


Schritt-für-Schritt-Anleitung

Um eine ganze Zeile in Excel zu verschieben, wenn in einer bestimmten Zelle ein Text steht, kannst du den folgenden VBA-Code verwenden. Dieser Code wird automatisch ausgeführt, sobald in Spalte P "Bestellung vollständig" eingetragen wird:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Tabellenblatt aus, in dem du die Änderung vornehmen möchtest (z.B. "Bestellungen").
  3. Füge den folgenden Code in das Codemodul ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lngErste As Long
    If Target.Column = 16 Then 'Spalte P
        If Target.Count = 1 Then
            If UCase(Target) = "BESTELLUNG VOLLSTÄNDIG" Then ' Name des zweiten Sheets Anpassen
                With Worksheets("BESTELLUNG VOLLSTÄNDIG") ' Sheet Name Anpassen
                    lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
                    .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
                    Rows(Target.Row).Copy
                    .Cells(lngErste, 1).PasteSpecial Paste:=xlValues
                    Rows(Target.Row).Delete shift:=xlUp
                End With
            End If
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem du "Bestellung vollständig" in Spalte P eingibst.

Häufige Fehler und Lösungen

  • Fehler: Der Code wird nicht ausgeführt

    • Stelle sicher, dass du den Code im richtigen Codemodul des entsprechenden Tabellenblattes eingefügt hast. Der Code muss im Codemodul des Arbeitsblattes sein, das die Daten enthält.
  • Fehler: Die Zeile wird nicht verschoben

    • Überprüfe, ob der Text "Bestellung vollständig" genau so eingegeben wurde (Groß- und Kleinschreibung beachten).
  • Fehler: Zielblatt existiert nicht

    • Achte darauf, dass der Name des Zielblatts ("BESTELLUNG VOLLSTÄNDIG") genau mit dem Namen in deiner Excel-Datei übereinstimmt.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch Power Query nutzen. Hierbei musst du eine Abfrage erstellen, die die Daten filtert und die Zeilen mit dem gewünschten Text in ein neues Blatt kopiert.

  1. Wähle deine Daten aus und gehe zu Daten > Abfragen und Verbindungen > Abfrage erstellen.
  2. In Power Query kannst du Filter verwenden, um nur die Zeilen anzuzeigen, die den Text enthalten.
  3. Lade die gefilterten Daten in ein neues Tabellenblatt.

Praktische Beispiele

  • Beispiel 1: Du möchtest, dass bei Eingabe von "X", "Y" oder "Z" in Spalte P die Zeile in die entsprechenden Sheets verschoben wird. Dazu kannst du den ursprünglichen VBA-Code erweitern:
If UCase(Target) = "X" Then
    ' Code für das Verschieben in Blatt X
ElseIf UCase(Target) = "Y" Then
    ' Code für das Verschieben in Blatt Y
ElseIf UCase(Target) = "Z" Then
    ' Code für das Verschieben in Blatt Z
End If
  • Beispiel 2: Wenn du mehrere Zeilen gleichzeitig verschieben möchtest, kannst du die Target-Eigenschaft anpassen, um mehrere Zellen zu verarbeiten.

Tipps für Profis

  • Nutze die excel zeile verschieben tastenkombination, um schnell Zeilen zu verschieben, falls du eine manuelle Methode bevorzugst.
  • Halte deine VBA-Codes organisiert und kommentiere deine Schritte, um die Wartung zu erleichtern.
  • Experimentiere mit den Funktionen von Power Query, um deine Datenfilterung und -verarbeitung zu automatisieren.

FAQ: Häufige Fragen

1. Kann ich den VBA-Code anpassen, um verschiedene Texte zu erkennen? Ja, du kannst den Code erweitern, indem du zusätzliche If-Bedingungen hinzufügst, um verschiedene Texte zu erkennen und entsprechende Aktionen auszuführen.

2. Funktioniert dieser Code in Google Tabellen? Nicht direkt. Google Tabellen verwendet eine andere Skriptsprache (Google Apps Script), daher müsstest du den Code entsprechend anpassen.

3. Wie kann ich die Zeilen in Excel nach oben verschieben? Du kannst die excel zeilen nach oben verschieben-Funktion nutzen, indem du die Zeilen manuell auswählst und mit der rechten Maustaste auf "Ausschneiden" und dann an die gewünschte Position "Einfügen" wählst.

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