Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte aus 1.Tab in neuer Tab nach 2 Krit. sortiere

Werte aus 1.Tab in neuer Tab nach 2 Krit. sortiere
12.06.2005 09:09:33
Arwyn
Hallo,
da bin ich mal wieder mit dem nächsten Problem.
Ich habe folgende Tabelle:
Gesamt-_Start-__Name____Zeit____Klasse__________AK-
Platz___Nr._____________________________________Platz
1_______17______CC______12______Schüler A_______1
2_______8_______GG______14______Schüler C_______1
3_______13______HH______15______Schüler B_______1
4_______5_______VV______16______Schüler B_______2
5_______3_______BB______18______Schüler A_______2
6_______1_______KK______21______Schüler C_______2
Ich möchte diese nun in einer neuen Tabelle automatisch nach Klasse und AK-Platz
sortiert haben.
Sie müßte dann wie folgt aussehen:
AK-_____Klasse__________Start-__Name____Zeit____Gesamt-
Platz___________________Nr._____________________Platz
1_______Schüler A_______17______CC______12______1
2_______Schüler A_______3_______BB______18______5
1_______Schüler B_______13______HH______15______3
2_______Schüler B_______5_______VV______16______4
1_______Schüler C_______8_______GG______14______2
2_______Schüler C_______1_______KK______21______6
Kann mir bitte jemand helfen? Irgendwie bin ich dieses Wochenende zu dämlich dazu!
Vielen lieben Dank
Arwyn

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sortiere
12.06.2005 11:38:14
WernerB.
Hallo Arwyn,
wie gefällt Dir das?

Sub Arwyn()
Dim WksQ As Worksheet
Dim laR As Long
Application.ScreenUpdating = False
Set WksQ = ThisWorkbook.ActiveSheet
laR = WksQ.Cells(Rows.Count, 1).End(xlUp).Row
Sheets.Add After:=Sheets(Sheets.Count)
With ThisWorkbook.ActiveSheet
WksQ.Range("F1:F" & laR).Copy _
Destination:=.Range("A1")
Application.CutCopyMode = False
WksQ.Range("E1:E" & laR).Copy _
Destination:=.Range("B1")
Application.CutCopyMode = False
WksQ.Range("B1:D" & laR).Copy _
Destination:=.Range("C1")
Application.CutCopyMode = False
WksQ.Range("A1:A" & laR).Copy _
Destination:=.Range("F1")
Application.CutCopyMode = False
.Columns("A:F").EntireColumn.AutoFit
.Range("A2:F" & laR).Sort Key1:=.Range("B2"), _
Order1:=xlAscending, Key2:=Range("A2"), _
Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
Set WksQ = Nothing
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
12.06.2005 14:35:34
Arwyn
Sorry, es funktioniert nicht richtig, da die Werte in der 1. Tabelle über Funktionen erstellt werden. Ich bekommen daher immer Fehlermeldungen.
Wären die Werte per Hand eingetragen worden, dann würde es super funktionieren.
War übrigens mein erstes Vba-script, welches ich zwar nur einfügen und etwas ändern musste (Spaltenbezeichnungen), aber es hat supergeklappt.
Gibt es die Möglichkeit, es so zu ändern, dass es auch bei Formelerstellten Werten funktioniert?
Wenn nicht, werde ich weiter an meiner Indexfunktion rumfeilen, irgendwo habe ich dort einen Fehler...
Trotzdem Danke
Arwyn
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
12.06.2005 15:37:22
WernerB.
Hallo Arwyn,
der Hinweis auf die Funktionen in der Tabelle wäre bereits vorab sehr sinnvoll und hilfreich gewesen.
Und wenn Du uns auch nicht verraten willst, über welchen Spaltenbereich sich Deine zu sortierende Tabelle erstreckt, dann darfst Du eben die Spaltenbezeichnungen nochmal anpassen; merke: eine gute Problembeschreibung ist oft schon die halbe Lösung und erspart dem Antworter und dem Fragesteller unnötigen Zeit- und Arbeitsaufwand . . .
Ungetestet:

Sub Arwyn()
Dim WksQ As Worksheet
Dim laR As Long
Application.ScreenUpdating = False
Set WksQ = ThisWorkbook.ActiveSheet
laR = WksQ.Cells(Rows.Count, 1).End(xlUp).Row
Sheets.Add After:=Sheets(Sheets.Count)
With ThisWorkbook.ActiveSheet
WksQ.Range("F1:F" & laR).Copy
.Range("A1").PasteSpecial Paste:=xlPasteFormats
.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("E1:E" & laR).Copy
.Range("B1").PasteSpecial Paste:=xlPasteFormats
.Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("B1:D" & laR).Copy
.Range("C1").PasteSpecial Paste:=xlPasteFormats
.Range("C1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("A1:A" & laR).Copy
.Range("F1").PasteSpecial Paste:=xlPasteFormats
.Range("F1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Columns("A:F").EntireColumn.AutoFit
.Range("A2:F" & laR).Sort Key1:=.Range("B2"), _
Order1:=xlAscending, Key2:=Range("A2"), _
Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
Set WksQ = Nothing
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
13.06.2005 19:32:50
Arwyn
Hi, sorry, aber es funktioniert nicht. Ich hätte gerne die Tabellen hochgeladen, aber ich kriege immer nur eine Fehlermeldung. Also versuche ich mal hier alle relevanten Daten reinzuschreiben:
A7 Gesamtplatz
B7 Startnummer
C7 Name
D7 Jahrgang
E7 Geschlecht
F7 Schule
G7 Zeit
H7 Altersklasse
I7 Altersklassenplatz
Die Daten fangen bei Zeile 9 an.
Excel soll erst nach Altersklasse und dann nach AK-Platz sortieren, aber in der neuen Tabelle sollen die Daten wie folgt stehen.
A AK-Platz
B Altersklasse
C Name
D Jahrgang
E Geschlecht
F Schule
G Zeit
H Startnummer
I Gesamtplatz
Dein Makro gibt mir immer eine Fehlermeldung 1004.
Ich habe keine Ahnung von VBA.
Vielleicht hilft Dir das ja weiter.
Vielen Dank
Arwyn
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
14.06.2005 08:42:14
WernerB.
Hallo Arwyn,
klappt es so?

Sub Arwyn()
Dim WksQ As Worksheet
Dim laR As Long
Application.ScreenUpdating = False
Set WksQ = ThisWorkbook.ActiveSheet
laR = WksQ.Cells(Rows.Count, 1).End(xlUp).Row
Sheets.Add After:=Sheets(Sheets.Count)
With ThisWorkbook.ActiveSheet
WksQ.Range("I7:I" & laR).Copy
.Range("A1").PasteSpecial Paste:=xlPasteFormats
.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("H7:H" & laR).Copy
.Range("B1").PasteSpecial Paste:=xlPasteFormats
.Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("C7:G" & laR).Copy
.Range("C1").PasteSpecial Paste:=xlPasteFormats
.Range("C1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("B7:B" & laR).Copy
.Range("H1").PasteSpecial Paste:=xlPasteFormats
.Range("H1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("A7:A" & laR).Copy
.Range("I1").PasteSpecial Paste:=xlPasteFormats
.Range("I1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Columns("A:I").EntireColumn.AutoFit
laR = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("A3:I" & laR).Sort Key1:=.Range("B3"), _
Order1:=xlAscending, Key2:=Range("A3"), _
Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.Range("A1").Select
End With
Set WksQ = Nothing
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
14.06.2005 14:01:43
Arwyn
Hurra, so klappt es fast perfekt. Nur fängt Excel in Zeile 149 an die Werte reinzuschreiben.?.
Also das kapiere ich nun wirklich nicht...
Gruß
Arwyn
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
14.06.2005 14:31:43
WernerB.
Hallo Arwyn,
also bei meinem Versuchsaufbau klappt es so, wie ich es mir vorgestellt habe.
Wenn bei Dir Einträge erst ab Zeile 149 erfolgen, so ist das für mich ohne Deine Datei leider nicht nachvollziehbar – vielleicht gibt es da ja irgend welche Besonderheiten, die ich nicht kenne.
Wenn Du möchtest, kannst Du ja noch einen Versuch starten, die Datei hier hochzuladen. Der Dateiname sollte u.a. keine Sonderzeichen beinhalten und dabei auf Deinem Rechner auf dem Laufwerk "C" (Ordner nicht allzu tief in der Ordnerstruktur !) stehen.
Gruß
WernerB.
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
14.06.2005 19:28:11
Arwyn
Oh, Sonderzeichen... Davon hatte ich ganz ganz viele drin. Also umbenennen und schon funzt es:
https://www.herber.de/bbs/user/23873.xls
Hier ist sie. Vielleicht findest Du ja den Fehler. Ich habe nämlich noch nie ein Makro benutzt. Aber bei den ersten beiden Versionen hat es ja auch funktioniert. Ich glaube, ich lasse mir zum Geburtstag ein Buch schenken: VBA für Dummies!
Falls es das überhaupt gibt. Irgendetwas, wo VBA ganz einfach von Anfang an erklärt wird.
Denn irgendwie kann man mit VBA vieles einfacher machen. Ich weiß halt nur nicht wie.
Gruß
Arwyn
Anzeige
AW: Werte aus 1.Tab in neuer Tab nach 2 Krit. sort
15.06.2005 08:03:54
WernerB.
Hallo Arwyn,
die Ermittlung der letzten Zelle mit Inhalt auf der Quell-Tabelle konnte nicht funktionieren, da es ja bis Zeile 159 Formeleinträge gibt (auch wenn dabei nichts angezeigt wird). Die Ermittlungsmethode habe ich jetzt entsprechend geändert:
Option Explicit

Sub Renate()
Dim WksQ As Worksheet
Dim laR As Long
Application.ScreenUpdating = False
Set WksQ = ThisWorkbook.ActiveSheet
laR = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1
Do Until Application.WorksheetFunction.CountBlank(Rows(laR)) < 256
laR = laR - 1
Loop
Sheets.Add After:=Sheets(Sheets.Count)
With ThisWorkbook.ActiveSheet
WksQ.Range("I7:I" & laR).Copy
.Range("A1").PasteSpecial Paste:=xlPasteFormats
.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("H7:H" & laR).Copy
.Range("B1").PasteSpecial Paste:=xlPasteFormats
.Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("C7:G" & laR).Copy
.Range("C1").PasteSpecial Paste:=xlPasteFormats
.Range("C1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("B7:B" & laR).Copy
.Range("H1").PasteSpecial Paste:=xlPasteFormats
.Range("H1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
WksQ.Range("A7:A" & laR).Copy
.Range("I1").PasteSpecial Paste:=xlPasteFormats
.Range("I1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Columns("A:I").EntireColumn.AutoFit
laR = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("A3:I" & laR).Sort Key1:=.Range("B3"), _
Order1:=xlAscending, Key2:=Range("A3"), _
Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.Range("A1").Select
End With
Set WksQ = Nothing
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
P.S.: VBA nicht zu kennen, hat mit Dummheit nichts zu tun; fehlendes Wissen kann man sich erarbeiten. Und Du scheinst dafür ja den richtigen Ansatz zu haben! Weiter so!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige