Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen in anderes Tabellenblatt verschieben
25.06.2021 22:20:25 kzi
NotSolved
26.06.2021 01:25:14 Gast53316
*****
Solved
26.06.2021 11:13:11 kzi
NotSolved
26.06.2021 14:02:44 Gast21243
*****
Solved
26.06.2021 23:30:17 kzi
Solved

Ansicht des Beitrags:
Von:
kzi
Datum:
25.06.2021 22:20:25
Views:
371
Rating: Antwort:
  Ja
Thema:
Zeilen in anderes Tabellenblatt verschieben

Guten Tag,

ich würde gerne mit einem Makro, oder auch sonstwie auf andere Weise falls das einfacher ist, in Excel ganze Zeilen in andere Tabellenblätter verschieben, je nach einem Eintrag, den man aus einem Dropdown-Menü in der Spalte A auswählt. Der Name des auszuwählenden Eintrags ist gleich dem Namen des Tabellenblatts, in das die Zeile verschoben werden soll.

Sub Worksheet_activate()

'NWA wird durchsucht
Dim i As Long
With Sheets("NWA")
    For i = .Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        If .Cells(i, "A") Like "QA" Then
            .Rows(i).Copy Sheets("QA").Cells(Sheets("QA").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i).ClearContents
        End If
        If .Cells(i, "A") Like "T1" Then
            .Rows(i).Copy Sheets("T1").Cells(Sheets("T1").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i).ClearContents
        End If
    Next
End With

'QA wird durchsucht
Dim i2 As Long
With Sheets("QA")
    For i2 = .Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        If .Cells(i2, "A") Like "NWA" Then
            .Rows(i2).Copy Sheets("NWA").Cells(Sheets("NWA").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i2).ClearContents
        End If
        If .Cells(i2, "A") Like "T1" Then
            .Rows(i2).Copy Sheets("T1").Cells(Sheets("T1").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i2).ClearContents
        End If
    Next
End With

'T1 wird durchsucht
Dim i3 As Long
With Sheets("T1")
    For i3 = .Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        If .Cells(i3, "A") Like "NWA" Then
            .Rows(i3).Copy Sheets("NWA").Cells(Sheets("NWA").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i3).ClearContents
        End If
        If .Cells(i3, "A") Like "QA" Then
            .Rows(i3).Copy Sheets("QA").Cells(Sheets("QA").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A")
            .Rows(i3).ClearContents
        End If
    Next
End With

End Sub

Mit diesem Code funktioniert das auch schon für drei Tabellenblätter. Dementsprechend sind auch drei Makros mit diesem identischen Code angelegt. Ich wüsste auch, wie ich das jetzt für weitere Tabellenblätter nach dem gleichen Schema mache, dabei würde sich der Code jedoch extrem aufblähen, da das am Ende für bis zu 20 Tabellenblätter funktionieren soll. Ich bin mir sicher, das geht auch schöner mit viel weniger Code, einem einzigen Makro und so, dass es für alle Tabellenblätter funktioniert, deren Namen ich dem Dropdown-Menü in Spalte A hinzufüge. Ich habe es bisher aber leider nicht hinbekommen. Ich muss dazu sagen, dass ich vorher noch nie etwas in VBA programmiert habe.

Eine Nette Zusatzfunktionalität wäre, dass sich die anderen Zeilen entsprechend nach oben verschieben, sodass nach dem jeweiligen Verschieben keine leeren Zeilen mittendrin vorhanden sind. Vielen Dank im Voraus für eure Hilfe!

Gruß

kzi


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen in anderes Tabellenblatt verschieben
25.06.2021 22:20:25 kzi
NotSolved
26.06.2021 01:25:14 Gast53316
*****
Solved
26.06.2021 11:13:11 kzi
NotSolved
26.06.2021 14:02:44 Gast21243
*****
Solved
26.06.2021 23:30:17 kzi
Solved