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

Reihenfolge von Spalten

Reihenfolge von Spalten
Spalten
Hi Leute!
Habe folgendes Problem.
Es geht um den Tabellenbereich d1:p37.
In den Zellen d1 bis p1 stehen Namen, in den zellen d2 bis p2 Zahlen.
ich möchte nun, dass die Spalten sortiert werden nach 1. Namen und 2. den Zahlen.
Bsp.
D e f g
1 Mayer Huber Huber Schmidt
2 80331 82015 21411 14256
3 4711 3745 5141 4152
Excel soll nun so sortieren, dass das Ergebnis so aussieht.

d e f g
1-Huber-Huber-Mayer-Schmidt
2-21411-82015-80331-14256
3--514--3745---4711---141
Nach den Zeile 3ff. muss nicht sortiert werden.
Die Sortierung soll vollautomatisch nach jeder Änderung in der Tabelle erfolgen (ich nehme gerne auch einen VBA-Code, soweit ich ihn nur kopieren muss)
Danke für Euro Hilfe im Voraus.
Ciao,
Richard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
SORRY: FEHLER IN ERSTER FRAGE
Richard
Hi Leute!
BITTE ERSTE ANFRAGE VON MIR NICHT BEACHTEN, HABE MICH BEI DEN TABELLEN VERSCHRIEBEN
NUN DIE RICHTIGE FRAGE
Hi Leute!
Habe folgendes Problem.
Es geht um den Tabellenbereich d1:p37.
In den Zellen d1 bis p1 stehen Namen, in den zellen d2 bis p2 Zahlen.
ich möchte nun, dass die Spalten sortiert werden nach 1. Namen und 2. den Zahlen.
Bsp.
D e f g
1 Mayer Huber Huber Schmidt
2 80331 82015 21411 14256
3 4711 3745 5141 4152
Excel soll nun so sortieren, dass das Ergebnis so aussieht.
d e f g
1 Huber Huber Mayer Schmidt
2 21411 82015 80331 14256
3 5141 3745 4711 4152
Nach den Zeile 3ff. muss nicht sortiert werden.
Die Sortierung soll vollautomatisch nach jeder Änderung in der Tabelle erfolgen (ich nehme gerne auch einen VBA-Code, soweit ich ihn nur kopieren muss)
Danke für Euro Hilfe im Voraus.
Ciao,
Richard
Anzeige
AW: SORRY: FEHLER IN ERSTER FRAGE
Ingo
Hallo,
Ins Modul Deines Tabellenblattes kopierst Du folgendes Makro:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Me.Range("D1:P2")) Is Nothing Then Exit Sub
sortieren
End Sub

Zusätzlich muß noch ein Modul eingefügt werden mit dem Makro sortieren:
Sub sortieren()
With Sheets(Blattname).Range("D1:P37")
.Sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlLeftToRight
End With
End Sub
Das sollte dann funktionieren
m f G
Ingo Christiansen
Anzeige
Komm nicht weiter
Richard
Hi Ingo!
Danke für die Hilfe, aber irgendwas mach ich falsch.
Ich habe (über Code anzeigen) das erste Makro in das leere Fenster kopiert und bin dann Die automatische Sortierung erfolgte aber nicht.
Ich glaube, mein Fehler liegt in der ersten Zeile des zweiten Makros; ich nehme an, ich muss den Wert "Blattname" durch den Namen des betroffenen Tabellenblattes ersetzen. Wie funktioniert das (d.h muss ich den Namen in Anführungszeichen setzen etc.) Das Tabellenblatt heißt: Teilaufgaben auf MA-Ebene (es ist das 6. Tabellenblatt). habe alle möglichen Varianten ausprobiert, hat aber nicht funktioniert.
Danke für Deine weitere Hilfe im Voraus.
Grüße,
Richard
Anzeige
Spalten sortieren
05.05.2004 19:57:21
Christoph
Hi Richard,
du hast schon richtig erkannt, der Blattname muss in Anführungszeichen.
also
With Sheets("Teilaufgaben auf MA-Ebene").Range(...
Der Code für das sortieren muss in ein Standard-Modul
Hierzu wechselst du mit Alt+F11 zum VBA-Editor, sagst -Einfügen - Modul
und hier kopierst du den Code rein.
Ich fürchte allerdings, dass dieser Code nicht dein Problem löst. Hierbei werden nämlich die Zeilen sortiert und nicht die Spalten.
So wie ich deine Frage verstanden habe, soll der Herr Adam dann in Spalte D stehen, Herr Brecht in Spalte E, Christianssen in F und so weiter.
Das ist ausgesprochen ungeschickt, denn Excel geht davon aus, dass die Spalten nicht sortiert werden, sondern nur die Zeilen. Also meine Empfehlung: baue die Tabelle anders auf - du wirst sonst nicht glücklich.
Gruß
Christoph
('ne Rückmeldung wäre nett)
als "Versuch" mal ein Code die Spalten zu sortieren (nur nach der ersten Zeile)

Sub sortieren()
Dim i%, j%
For i = 2 To 16
For j = 16 To i Step -1
If Cells(1, j - 1) > Cells(1, j) Then
Range(Cells(1, j -1), Cells(37, j - 1)).Cut
Cells(1, j + 1).Insert Shift:=xlToRight
End If
Next j
Next i
End Sub


Anzeige
AW: Spalten sortieren
Hi
Hi Christoph!
Doch, die Formel funktioniert, und es werden die Spalten sortiert, so wie ich das wollte.
Ich habe aber das Problem, dass Excel nicht automatisch bei jeder Änderung sortiert (die Daten zieht sich Excel von anderen Tabellenblättern in der selben Arbeitsmappe. Eine Automatische Sortierung erfolgt nur, wenn ich manuell direkt die betroffenen Zellen ändere. Oder ich starte das Makro manuell über Extras/Makro.
Wie muss ich das Makro ändern, dass Excel automatisch bei jeder Änderung auch des Ursprungsblattes neu sortiert.
Zur Info nochmal die beiden Makros:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Me.Range("D1:P2")) Is Nothing Then Exit Sub
sortieren
End Sub

Sub sortieren()
With Sheets("Teilaufgaben auf MA-Ebene").Range("D1:P24")
.Sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlLeftToRight
End With
End Sub
Danke für jede Hilfe.
Ciao,
Richard
Anzeige
AW: Spalten sortieren
06.05.2004 12:05:50
Christoph
Hi Richard,
nachdem ich dir gestern geantwortet habe, ich mir auch aufgefallen, dass ich dir da Mumpitz erzählt habe. Ich hab diese Option einfach noch nie benutzt - und daher kannte ich sie auch nicht. (ich lern ja am besten aus meinen eigenen Fehlern...)
Doch zu deiner Frage:
wenn der Code bei Änderung des Bereichs ("D1:P2") eines anderen Tabellenblattes ausgeführt werden soll, dann muss dieser in das Klassenmodul des anderen Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Me.Range("D1:P2")) Is Nothing Then Exit Sub
sortieren
End Sub

und so wie ich das sehe müssten dann bei "sortieren" noch zwei Pünktchen zur korrekten Referenzierung rein (das ist ungetestet - da ich im Moment an einem Rechner sitze ohne Office - also alles auf die Gefahr hin, dass ich mich nochmal blamiere...)
Sub sortieren()
With Sheets("Teilaufgaben auf MA-Ebene").Range("D1:P24")
.Sort Key1:=.Range("D1"), Order1:=xlAscending, Key2:=.Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlLeftToRight
End With
End Sub
Gruß
Christoph
Anzeige
AW: Spalten sortieren
Richard
Hi Christoph!
Danke für Deine Hilfe.
Funktioniert aber immer noch nicht.
Du sagst, das erste Makro muss in das KLASSENMODUL des anderen Tabellenblattes. Was heißt Klassenmodul (habe das Makro einfach über Code anzeigen in das leere Feld kopiert)? Oder muss ich ein Klassenmodul neu einfügen und wenn ja, wie ordne ich es dann dem entsprechenden Tabellenblatt zu?
Spielt es außerdem eine Rolle, wenn das Tabellenblatt, bei dessen Änderung die Sortierung beginnen soll, 1. sich die betroffenen Daten selbst aus anderen Excel-Dateien zieht und 2. in der zu sortierenden Tabelle Verknüpfungen sind zu den Daten, bei deren Änderung die Sortierung erfolgen soll (evtl. Schleifenproblem etc.?)?
Danke nochmal im Voraus.
Ciao,
Richard
Anzeige
Klassenmodul der Tabelle
07.05.2004 10:03:43
Christoph
du hast schon richtig verstanden.
Das Klassenmodul der Tabelle erreichst du über:
rechte Maustaste auf den Tabellenreiter (z.B. Tabelle3) und dann "Code anzeigen"
Die Sortierung in Tabelle "Teilaufgaben..." funktioniert auch, bei Verknüpfungen zu Tabelle3.
Gruß
Christoph

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige