Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

110 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige