Office: Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös

Helfe beim Thema Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi! Ich hoffe Ihr könnt mir helfen! Folgendes Problem: Ich möchte in einer Tabelle allle Zeilen, die zwei bestimmte, unterschiedliche Merkmale... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Macel, 19. September 2011.

  1. Macel Erfahrener User

    Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös


    Hi!

    Ich hoffe Ihr könnt mir helfen!

    Folgendes Problem:

    Ich möchte in einer Tabelle allle Zeilen, die zwei bestimmte, unterschiedliche Merkmale (in den Spalten Z & AH) haben, ausschneiden oder kopieren, in Tabellenblatt 3 einfügen und die Ursprungszeile dann löschen.

    Habe das ganze schon über ein Makro versucht zu lösen, dass mit einem AutoFilter arbeitet, aber da werden die Daten nicht kopiert.

    Habe mich mal etwas umgeschaut, was sonst noch funktionieren könnte, wobei ich auf die DoLoopWhile öglichkeit gestoßen bin. Habe mit meinen etwas beschränkten VBA Kenntnissen auch versucht etwas zusammen zu basteln, aber da hat leider gar nichts funktioniert :)

    Die Krönung wäre es, wenn das ganze in Tabellenblatt 3 in die erste komplett unbeschriebene Zeile eingefügt würde, aber ich wäre schon überglücklich wenn die ersten Schritte einfach nur funktionieren würden...

    Vielen Dank schon mal für eure Hilfe!

    Grüße

    Mathias
     
  2. fette Elfe Erfahrener User
    Re: Zeilen mit bestimmten Merkmal ausschneiden,einfügen &amp

    Hallo Mathias,

    ich gehe davon aus, dass Du mit "Merkmale" den Zellwert, und nicht die Farbe, Formatierung o.ä. meinst.

    Benötigst Du dafür denn unbedingt ein Makro?
    Musst Du diese Aktion öfters benutzen, oder nur einmal?
    Denn wenn Du es nur einmal brauchst, reicht doch auch:
    - Reiter: Start - Sortieren und Filtern - Filtern
    - dann die beiden Spalten auf das entsprechende Merkmal Filtern
    - alle Zeilen markieren > ausschneiden > Blatt wechseln > ausgeschnittene Zellen einfügen
    - wieder Blatt wechseln und Filter entfernen
    Feddich.


    Falls Du die Aktion mehrfach benötigst, kannst Du es ja mal mit unten stehendem Code probieren.
    Folgendes ist dabei wichtig:
    - sowohl Quell- als auch Zielblatt sind nicht geschützt
    - beide Blätter sind in der gleichen Datei
    - auf beiden Blättern wird nach der letzten beschriebenen Zelle in Spalte A gesucht
    - Du musst im Code noch Deine Merkmale bei Kriterium1 & 2 einfügen (anstelle von x & y)

    Da Du die Zeilen in Tabelle3 scheinbar in Reihenfolge haben möchtest, und ich nicht weiß ob Du das nachträglich sortieren kannst oder willst, habe ich hilfsweise eine zweite Schleife benutzt, die erstmal die Anzahl der zu kopierenden Zeilen ermittelt.
    Falls Du sehr große Datenmengen bearbeiten willst (extrem viele Zeilen), kann dies zu einem Geschwindigkeitsverlust führen.

    Kopiere folgenden Code in das Modul des Blattes, indem sich die Daten befinden, die Du durchsuchen und filtern willst. (NICHT ins Modul von Tabelle3 !!!):
    Code:
    Option Explicit
    
    Public Sub ZeilenFilternUndVerschieben()
    Dim loLetzte As Long
    Dim loLetzteTab3 As Long
    Dim loAnzahl As Long
    Dim loCounter As Long
    Dim strKriterium1 As String
    Dim strKriterium2 As String
    
    loAnzahl = 0
    strKriterium1 = "x"     ' bezieht sich auf Spalte Z (Spaltennummer 26)
    strKriterium2 = "y"     ' bezieht sich auf Spalte AH (Spaltennummer 34)
        
        With ThisWorkbook.Worksheets("Tabelle3")
            loLetzteTab3 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
        End With
        
        With Me
            loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
            For loCounter = 1 To loLetzte
                If .Cells(loCounter, 26).Value = strKriterium1 And _
                    .Cells(loCounter, 34).Value = strKriterium2 Then
                    loAnzahl = loAnzahl + 1
                End If
            Next loCounter
            For loCounter = loLetzte To 1 Step -1
                If .Cells(loCounter, 26).Value = strKriterium1 And _
                    .Cells(loCounter, 34).Value = strKriterium2 Then
                    .Rows(loCounter).EntireRow.Cut Destination:=ThisWorkbook.Worksheets("Tabelle3").Rows(loLetzteTab3 + loAnzahl)
                    .Rows(loCounter).EntireRow.Delete shift:=xlUp
                    loAnzahl = loAnzahl - 1
                End If
            Next loCounter
        End With
        
    End Sub
    Frag ruhig, falls noch etwas unklar sein sollte.

    Ich hoffe geholfen zu haben.
     
    fette Elfe, 20. September 2011
    #2
  3. Macel Erfahrener User
    Halleluja, es funktioniert :) Vielen Vielen Dank, das war eine riesen Hilfe und hat mich die ganzen letzten Tage beschäftigt...

    Eine Frage habe ich allerdings noch: Gibt es auch eine Möglichkeit die erste Zeile zu finden, die zwar in A unbeschrieben ist, in B allerdings beschrieben. Oder allgemeiner: Ich habe zu dieser Fragestellung immer nur Codes gefunden, die in der ersten Spalte suchen, kann man dafür auch eine andere Spalte definieren?

    Grüße

    Mathias
     
  4. fette Elfe Erfahrener User

    Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös

    Hallo Mathias,

    das einfachste dürfte in diesem Fall eine Abfrage mit "UsedRange" sein.
    "UsedRange" = benutzter Bereich

    Ändere folgende Zeile:
    Code:
    loLetzteTab3 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    in diese um:
    Code:
    loLetzteTab3 = .UsedRange.Rows.Count + 1
    und folgende Zeile:
    Code:
    loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    in diese:
    Code:
    loLetzte = .UsedRange.Rows.Count + 1
    Dann sollte es eigentlich so klappen wie Du möchtest.

    Falls Du den Code nicht mit Copy/Paste aus dem Forum in die Datei überträgst, sondern eintippst, achte genau wo ich Punkte gesetzt habe.
    Die werden schnell vergessen oder übersehen, sind aber wichtig für die Referenzierung.

    Ich hoffe geholfen zu haben.

    Edit:
    Was ist denn nun mit der Sortierung?
    Können die kopierten Daten in Tabelle 3 nachträglich sortiert werden?
    Dann könnte man den ganzen Code noch vereinfachen und die erste Schleife entfernen.
    Dafür wäre aber wichtig zu wissen, ob nur die kopierten Daten, oder das ganze Blatt sortiert werden darf/soll, und nach welchen Kriterien, sowie ob auf- oder absteigend.

    Oder man lässt den Aufbau mit der Doppelschleife so, wenn Du keine Geschwindigkeitsprobleme hast.

    Kannst Dich ja mal dazu äußern.
     
    fette Elfe, 21. September 2011
    #4
  5. Macel Erfahrener User
    Hallo Achim!

    Vielen Dank für die Amtwort! Das funktioniert perfekt mit UsedRange.

    Zur Sortierung: Das muss nicht sein, ist so aber in Ordnung. In meiner Liste mit ca. 3000 Datensätzen läuft das ganze in ein paar Sekunden durch. Sollten es mal mehr Daten werden, entferne ich einfach die erste Schleife.

    Vielen Dank nochmal für die Hilfe!

    Liebe Grüße

    Mathias
     
  6. LordesMan Erfahrener User
    Dankeschön!
    Hatte dieses Problem auch schon seit paar Tagen, endlich hab ich die Lösung gefunden!
    Diese Seite ist der Wahnsinn.
    Aber wer Jobs sucht bitte hier entlang.

    Liebe Grüße
     
    LordesMan, 11. Oktober 2011
    #6
Thema:

Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös

Die Seite wird geladen...
  1. Zeilen mit bestimmten Merkmal ausschneiden,einfügen &lös - Similar Threads - Zeilen bestimmten Merkmal

  2. Zeilen bei bestimmten Kriterien löschen

    in Microsoft Excel Hilfe
    Zeilen bei bestimmten Kriterien löschen: Moin, ich muss ab heute jeden Monat eine Auswertung über Projekte erstellen, dabei teile ich mir diese Aufgabe mit einem Kollegen, wo er die gerade und ich die ungerade übernehme. Besteht die...
  3. Zellwert Tabelle1 Bestimmt Anzahl Zeilen in Tabelle2

    in Microsoft Excel Hilfe
    Zellwert Tabelle1 Bestimmt Anzahl Zeilen in Tabelle2: Hallo zusammen, ich bräuchte bitte einmal Eure Hilfe. Habe keine schlaue Idee wie ich das automatisiert lösen kann. Folgend mein(e) Problem/Idee. Tabelle 1 ist eine Bestellliste...
  4. Wenn in Zeile bestimmter Wert dann ganze Zelle kopieren

    in Microsoft Excel Hilfe
    Wenn in Zeile bestimmter Wert dann ganze Zelle kopieren: Hallo, ich bin auf der Suche nach einer Lösung für folgendes Problem: In Tabelle 1 habe ich eine gesamte Stückliste, auf Tabelle 2 hätte ich gerne die Daten aus Tabelle 1 nach einem bestimmten...
  5. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  6. Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro)

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro): Hallöchen, ich stehe aktuell vor folgendem Problem: Wir haben ein Excel Makro, das über die Zeiterfassung alle Mitarbeiter und ihre Stunden in verschiedenen Positionen auflistet. Eine abgespeckte...
  7. Werte in einer bestimmten Zeile einer Tabelle zählen

    in Microsoft Excel Hilfe
    Werte in einer bestimmten Zeile einer Tabelle zählen: Guten Tag, in der Lasche 1 habe ich in der ersten Spalte eine Liste von eindeutigen Nummern. In Lasche 2 ist die gleiche Liste von Nummern (andere Reihenfolge) und neben jeder Nummer folgen in...
  8. Bestimmte Zeilen nicht in Pivot anzeigen lassen

    in Microsoft Excel Hilfe
    Bestimmte Zeilen nicht in Pivot anzeigen lassen: Hallo Zusammen, Ich habe für einen Wettbewerb eine Exceltabelle zur Auswertung erstellt. Jeder Teilnehmer des Wettbewerbs kann mehrfach starten und jeder Durchlauf wird dokumentiert. Gewertet...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden