Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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
Inhaltsverzeichnis

Kopierte Werte nach Datum (aus)sortieren

Kopierte Werte nach Datum (aus)sortieren
Sirenia
Einen wunderschönen guten Morgen miteinander,
ich stehe vor folgendem Problem:
Ich kopiere Werte aus den Sheets M1-M4 mit diesem Code in die erste freie Reihe eines jeden Sheets (Werte aus Reihe 7 in M1 werden in die erste freie Reihe von M1 geschrieben, usw.).
Private Sub CommandButton2_Click()
For i = 1 To 4
With Sheets("M" & i)
.Rows(7).Copy
.Rows(.Cells.SpecialCells(xlCellTypeLastCell).Row + 1).PasteSpecial xlPasteValues
End With
Next
End Sub
Ich möchte aber gerne verhindern, dass Einträge doppelt vorkommen und ich möchte ebenso, dass nach erfolgreichem Kopieren nach Datum sortiert wird. Das Datum steht jeweils in Spalte A. Die ersten Daten stehen ab A10.
Somit müsste ab A10 bis EF.. sortiert werden. (.. = Platzhalter. Ich weiß ja nicht, wieviel die lieben Kollegen sortieren müssen ;) )
Meine Frage nun: Ließe sich das in "meinem" Makro ergänzen oder wäre es sinnvoller, dafür ein neues, zusätzliches Makro zu schreiben? Und bei Letzterem: Wie könnte das aussehen?
Ich möchte gerne, dass das über Makros gelöst wird, weil auch die (Excel-unerfahrenen) Kollegen in dem Sheet rumbasteln werden.
Über jede Hilfe wäre ich mehr als dankbar.
Ich wünsche euch einen wunderschönen Start in die neue Woche! :)
Viele Grüße,
Sirenia
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 12:19:47
Helmut
Versuch es so, Optimierungen sind möglich
option explicit
Sub

Private Sub CommandButton2_Click()
Dim i As Long
Dim myLastRow As Long
Dim myRange As Range
For i = 1 To 4
With Sheets("M" & i)
'copy row 7
myLastRow = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
.Rows(7).Copy
.Rows(myLastRow + 1).PasteSpecial xlPasteValues
'remove duplicates
myLastRow = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Set myRange = .Rows("10:" & myLastRow)
myRange.RemoveDuplicates Columns:=1, Header:=xlNo
'sort
Set myRange = .Rows("10:" & myLastRow)
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A10:A" & myLastRow), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange myRange
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Next
End Sub

Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 12:47:43
Sirenia
Hallo Helmut,
ich danke dir, für deine schnelle Antwort, Aber irgendwie scheint das nicht zu funktionieren? Kopieren tut er - das ist kein Problem, aber danach kommt ein Laufzeitfehler: "438 Objekt unterstützt diese Eigenschaft oder Methode nicht."
Woran könnte denn das liegen?
Viele Grüße,
Sirenia
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:08:09
Rudi
Hallo,
Woran könnte denn das liegen?

Daran, dass der Code in XL2007 erstellt wurde.
Teste mal:
Private Sub CommandButton2_Click()
For i = 1 To 4
With Sheets("M" & i)
If Application.CountIf(.Columns(1), .Cells(7, 1)) = 1 Then
.Rows(7).Copy
.Rows(.Cells.SpecialCells(xlCellTypeLastCell).Row + 1).PasteSpecial xlPasteValues
.Cells(10, 1).Sort key1:=.Cells(10, 1), order1:=xlAscending, header:=xlYes
End If
End With
Next
End Sub

Gruß
Rudi
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:13:20
Sirenia
Hallo Rudi,
der kopiert jetzt einfach nur die Werte aus M1. Den Rest lässt er unbefleckt (hat der andere zwar auch getan, bin aber davon ausgegangen, dass es daran liegt, dass das Makro ja mittendrin abgebrochen hat).
Hier wird nur Zeile 7 aus M1 kopiert. Aber sortieren oder Dubletten entfernen tut er nicht. Woran kann das nun wieder liegen?
Gruß,
Sirenia
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:16:10
Sirenia
Tschuldige.... muss mich korrigieren.
Das Makro macht SO rein gar nichts. *lach*
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:30:36
Rudi
Hallo,
lad mal die Datei hoch.
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:33:02
Sirenia
Okay. Hier ist meine "Bastel- und Rumfummel-Kopie":
https://www.herber.de/bbs/user/63138.xls
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:50:19
Rudi
Hallo,
Private Sub sortieren_Click()
Dim lngRow As Long
For i = 1 To 4
With Sheets("M" & i)
If Application.CountIf(.Columns(1), .Cells(7, 1)) = 1 Then
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Rows(7).Copy
.Cells(lngRow, 1).PasteSpecial xlPasteValues
.Range(.Cells(10, 1), .Cells(lngRow, 136)).Sort key1:=.Cells(10, 1), order1:= _
xlAscending, header:=xlNo
End If
End With
Next
End Sub

Vorher mal überall den 18.Mai löschen
Gruß
Rudi
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 13:55:33
Sirenia
Hallo Rudi,
ich danke dir. Scheint soweit zu funzten. Einziges Manko ist noch, dass er die Daten nciht richtig sortiert. Habe ein paar Beispieldateien geladen und nach dem Sortieren kam das raus:
01-Jun-2009
18-May-2009
22-Jun-2009
26-May-2009
Weißt du, wo da noch das Problem ist? Eigentlich sind alle Felder als Datumsformat deklariert.
Viele Grüße,
Sirenia
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 14:01:06
Rudi
Hallo,
Eigentlich sind alle Felder als Datumsformat deklariert

im Beispiel sind es Texte.
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 15:11:56
Sirenia
Habe gerade nochmal drüber geschaut. Ist wirklich alles Datumsformat. Und zwar Englisch(USA) im Format DD-MMM-YYYY.
Aber irgendwie muss das doch funktionieren?!
Gruß,
Sirenia
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 15:39:09
Herbert
Hi,
die Daten sind definitiv Texte, kannst du mit strg + g, Inhalte, Konstanten: Text prüfen.
Zeichne dir das Sortiermakro auf, dann wirst du gefragt, ob alles, was wie zahl aussieht als Zahl
sortiert werden soll. Im Code siehst das dann unter DataOptions.
mfg Herbert
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 15:49:45
Sirenia
Hallo Herbert,
habe auch schon versucht manuell zu sortieren und wurde nach dem gefragt, was du erwähntest (alles, was nach Zahl aussieht, als Zahl sortieren?). Das Ergebnis jedoch, war das gleiche, wie mit Makro.
Vielleicht war die Version, die ich hochgeladen habe, nciht die aktuellste :-)
In "meinem" Sheet ist es definitiv ein Datumsformat - aber sortiert wird nur nach Zahlen. Ob manuell, oder mit Makro.
Versuche gerade meine ComboBox zu dressieren, dass die wenigstens checkt, dass es sich um Daten handelt. Mein Erfolg hält sich derzeit aber noch in Grenzen.
Falls jemand noch Ideen hat, wo das Problem liegen könnte, dann bitte schreien, bin für jeden Hinweis dankbar!
Gruß,
Sirenia
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 15:55:41
Herbert
Hi,
habs mit deiner hochgeladenen Datei unter Excel 2003 getestet.
Was da bei dir klemmt, ist unklar.
Nebenbei, wenn es erstmal, warum auch immer, Texte sind, kannst du formartieren
wie du willst, es bleiben immer Texte. Versuchs mal mit Daten, Text in Spalten.
mfg Herbert
AW: Kopierte Werte nach Datum (aus)sortieren
13.07.2009 16:02:15
Sirenia
Hallo,
bin zwischenzeitlich schon mehrfach hingegangen und habe Zelleninhalte gelöscht und neu eingegeben (auch in anderen Formaten). Das hat aber auch ncihts gebracht.
Daten, Text in Spalten hat auch nicht funktioniert. Jetzt sind wir wieder soweit, dass die Daten dann im Format: 39986 & Co. ausgegeben werden.
Bin mit meinem Latein am Ende :(
VG,
Sirenia23
Anzeige
AW: Kopierte Werte nach Datum (aus)sortieren
17.07.2009 22:12:23
Herbert
Hi,
wie gesagt, bei mir gings, versuchs mal in einem neuen, jungfräulichen Blatt.
mfg Herbert

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige