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

Forumthread: Excel-VBA-Filtern und kopieren

Excel-VBA-Filtern und kopieren
12.04.2006 10:23:02
kunstname
Hallo, ich bin's nochmal...
habe zum besseren Verständnis zwei Bilder erstellt, in denen abgebildet ist, wie die Usprungsdatei aussieht und was mit ihr passieren soll. Eine umfassendere Beschreibung des Problems könnt ihr weiter unten lesen.
Ursprungsdatei: Userbild
Was soll mit dieser Datei geschehen:

Die Datei https://www.herber.de/bbs/user/32794.jpg wurde aus Datenschutzgründen gelöscht

vielen Dank!!!
_______________________
Guten morgen :-)
ich versuche es nochmal, diesmal in kleineren Schritten :-)
Wie kann ich denn die 1.Spalte eines Excel-Arbeitsblattes automatisch aufsteigend sortieren lassen...? Vielen Dank!!!!!!
________________________
Antwort:
"Hi,
Tipp, zerleg deine Aufgabe in Teilprobleme und stell gezielt eine Frage.
mfg Herbert"
_________________________
Hallo Ihr Lieben Leut...:-)
Die Problemstellung:
Anfangsdatei: https://www.herber.de/bbs/user/32773.xls
Habe zum besseren Verständnis wie die Lösung aussehen soll angefangen, die Daten in dieser Datei mal manuell zu übertragen:

Die Datei https://www.herber.de/bbs/user/32774.xls wurde aus Datenschutzgründen gelöscht

A )1.Spalte automatisch aufsteigend sortieren lassen
B) Wenn 1.Wert aus Spalte 1 UNGLEICH 1.Wert aus folgender Zeile der Spalte 1 ist, dann soll die komplette 1.Zeile und die 2.Zeile auf ein neues Arbeitsblatt in einer neuen Arbeitsmappe geschrieben werden.
C) Wenn 1.Wert aus 2.Zeile GLEICH 1.Wert aus vorheriger Zeile, dann schreibe die gesamte 1.Zeile auf ein Arbeitsblatt einer automatisch neu erstellten Arbeitsmappe UND füge die Werte aus Spalte 2, 3 und 4 der 2.Zeile hinten an die neu eingefügte Zeile in der neuen Arbeitsmappe.
Dann: 1.Wert aus Spalte1 Zeile 3 = 1.Wert aus Spalte 1 der vorherigen Zeile?
Wenn ja, Werte aus Spalte 2,3 und 4 der 3.Zeile hinten an die 1.Zeile der vorhin neu erstellten Arbeitsmappe einfügen.
Das wiederholt sich so lange, bis 1.Wert der aktuellen Zeile NICHT gleich 1.Wert der vorherigen Zeile ist, dann soll die gesamte aktuelle Zeile in die vorhin neu erstellte Arbeitsmappe in die nächste freie Zeile kopiert werden.
Dann wieder zurück in das ursprüngliche Tabellenblatt: vergleichen ob 1.Wert der Spalte 1 der nächsten Zeile gleich dem 1.Wert der vorherigen Zeile ist. Wenn ja: Werte aus Spalte 2,3 und 4 dieser aktuellen Zeile hinten an die zuletzt eingefügte Zeile der vorhin neu erstellten Arbeitsmappe einfügen.
Das soll so lange ablaufen, bis alle Werte in Spalte 1 miteinander verglichen sind.
Der, der es schafft dieses Problem zu lösen ist mit Abstand DER Excel-Gott schlechthin....
Vieeeeeeeelen Dank schon mal im Voraus!!!!Grüße
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Excel-VBA-Filtern und kopieren
12.04.2006 13:48:32
Yal
der Excel-Gott bin ich zwar nicht ....
Wichtig: die Spalte A muss sortiert werden (aber hast Du schon gewusst)
Der Trick dabei: von unten an anfangen und sich nach oben erarbeiten. Immer so, wenn ganze Zeile gelöscht werden müssen.

Sub Test()
Dim Zeile
With ThisWorkbook.Worksheets(1)
For Zeile = .Range("A65536").End(xlUp).Row To 3 Step -1
If .Cells(Zeile, 1).Value = .Cells(Zeile - 1, 1).Value Then
Application.CutCopyMode = False
.Range(.Cells(Zeile, 2), .Cells(Zeile, 200).End(xlToLeft)).Copy
.Cells(Zeile - 1, 200).End(xlToLeft).Offset(0, 1).Select
.Paste
Application.CutCopyMode = False
.Cells(Zeile, 1).EntireRow.Delete Shift:=xlUp
End If
Next Zeile
End With
End Sub

Viel Erfolg
Yal
Anzeige
AW: Excel-VBA-Filtern und kopieren
12.04.2006 16:32:08
kunstname
Hallo Yal :-)
Du bist ja doch ein Excel-Gott!!!! Bei einer einfach aufgebauten Datei funktioniert dein VBA-Code einwandfrei. Nur die richtige Datei, die bearbeitet werden soll ist vieeeel umfangreicher. könntest du mir bitte die Zeilen deines Codes in Stichpunkten erläutern, damit ich sie dann der anderen Datei anpassen kann. Das wäre super!!!! Ach ja noch was: Muss ich die Spalte bevor ich dieses Makro starte manuell aufsteigend sortieren oder geschieht das mit dem Makro dann automatisch?
Vielen vielen Dank!!!!!!!!!!
For Zeile = .Range("A65536").End(xlUp).Row To 3 Step -1
If .Cells(Zeile, 3).Value = .Cells(Zeile - 1, 3).Value Then
Application.CutCopyMode = False
.Range(.Cells(Zeile, 2), .Cells(Zeile, 200).End(xlToLeft)).Copy
.Cells(Zeile - 1, 200).End(xlToLeft).Offset(0, 1).Select
.Paste
Application.CutCopyMode = False
.Cells(Zeile, 1).EntireRow.Delete Shift:=xlUp
Anzeige
;

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

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