Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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

Einträge mit Variabler Text-Spalte sortierbar?

Einträge mit Variabler Text-Spalte sortierbar?
26.02.2017 11:08:53
Andi
Hallo,
Weiß nicht ob folgendes zu Realisieren geht.
Die Tabelle "Bearbeiten" könnte nach halbjährlicher Aktualisierung durch Anreihung oder Wegfall von Betriebsmitteln durcheinander und unübersichtlich werden.
Ist es möglich, die erste Spalte- das ist die fortlaufende Nummerierung, unangetastet zu lassen, aber die folgenden Zeilen von B-L ,zu sortieren und nacheinander anzureihen, wenn der Zellinhalt B e z o g e n auf "B" Gleichheit feststellt?
Die Einträge in " B " sind jedoch Variabel. Es müsste also erst mal abgefragt werden, was in "B" vorkommt, bevor sortiert werden kann. Der "B-L Bereich" gehört zusammen.
Vielleicht über eine Hilfstabelle mit Übertragen- Sortieren und zurück kopieren.
Hier mal ein Beispiel.

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


Grüße Andi
Danke erst mal.

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

Betreff
Datum
Anwender
Anzeige
AW: Rückfrage
26.02.2017 11:26:34
Gerd
Hallo Andi,
hast du schon mal die Spalte B - L nach B sortiert?
Gruß Gerd
AW: Rückfrage
26.02.2017 11:46:35
Andi
Hallo Gerd,
Nein leider noch nicht.
Wenn es zu aufwendig ist- dann lass ich das lieber weg.
Schlecht ist es aber nicht- wenn bis zu 3500 Zeilen dann doch sortiert werden würden. Es soll auch nur auf gleiche Einträge in "B" geprüft werden.
Gruß Andi
Sortieren nach "B"
27.02.2017 06:13:52
Andi
Hallo Gerd,
besser so ausgedrückt:- in Spalte B kommen Raumbezeichnungen in Text- Zahlen Kombinationen vor. Diese sind unterschiedlich.
Im laufe der Zeit werden der Tabelle neue Einträge hinzugefügt. Diese Einträge werden also unten angefügt. Jetzt wird es aber unübersichtlich, da bezogen auf die Raumbezeichnung viele vereinzelte Einträge mit ein und der selben "Raumbezeichnung" in "B" vorkommen.
Mein Ziel ist es, das nach dem Sortiervorgang alles, was die selbe Raumbezeichnung hat, fortlaufend in einem Block steht. Deshalb schrieb ich "einschließlich B" da ja "B im Grunde mit zum Block bis zu L gehört.
Also Sortieren in "B"

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


Wie würde das mit VBA gehen?
Gruß Andi
Anzeige
das geht z.B. so
01.03.2017 15:45:19
Michael
Hi,
das geht so...
Option Explicit
Sub sortieren()
Dim a         ' ohne Angabe = as Variant, unten als "Array"
Dim z&, zMax& ' & = as long
Const vonSp = "B", bisSp = "L"
zMax = Range(vonSp & Rows.Count).End(xlUp).Row ' unterste Zeile
' 1. Unterschiedliche Schreibweisen der Zimmer-Nr. rauswerfen
' Zi. 24, Zi .24, Zi.24 werden alle zu Zi.24
a = Range("B1").Resize(zMax)    ' Array aus Bereich einlesen
For z = 1 To zMax
If Left(a(z, 1), 1) = "Z" Then a(z, 1) = Replace(a(z, 1), " ", "")
Next
Range("B1").Resize(zMax) = a    ' Array in Bereich zurückschreiben
' 2. Sortieren B:L
Range(vonSp & "1:" & bisSp & zMax).Sort _
Range(vonSp & "1"), xlAscending, _
Range("C1"), , xlAscending, Header:=xlNo
MsgBox "Erledigt"
End Sub

...wobei ich hier die Spalte C mit sortiere. Ich vermisse eine Datumsangabe in der Beispieldatei. Wenn eine vorhanden ist, kann man sie als 3. Spalte mit sortieren.
Schöne Grüße,
Michael
Anzeige
AW: Sortieren nach "B"
02.03.2017 20:09:40
Andi
Danke Michael,
Super Makro- es funktioniert- vor allem die unterschiedliche Zimmerbezeichnung für ein und das selbe Zimmer. Danke für den Tipp mit der Datumsangabe.
Vielleicht so?
Ich erstelle ein Makro- was mir das aktuelle Datum in die Zelle "E" beim bearbeiten der Zeile einträgt.
Denke das ich das mit meinen bescheidenen EXCEL VBA Kenntnissen noch hinbekomme.
Nun müsste das Sortier-Makro Vorrangig wie bisher nach "B" sortieren- aber zusätzlich noch das Datum in "E" berücksichtigen, was ja ebenfalls sortiert werden müsste.
Kann man das noch in den Code mit einbringen?
Das haste nun dovon .... lach

Option Explicit
Sub sortieren()
Dim a         ' ohne Angabe = as Variant, unten als "Array"
Dim z&, zMax& ' & = as long
Const vonSp = "B", bisSp = "L"
zMax = Range(vonSp & Rows.Count).End(xlUp).Row ' unterste Zeile
' 1. Unterschiedliche Schreibweisen der Zimmer-Nr. rauswerfen
' Zi. 24, Zi .24, Zi.24 werden alle zu Zi.24
a = Range("B1").Resize(zMax)    ' Array aus Bereich einlesen
For z = 1 To zMax
If Left(a(z, 1), 1) = "Z" Then a(z, 1) = Replace(a(z, 1), " ", "")
Next
Range("B1").Resize(zMax) = a    ' Array in Bereich zurückschreiben
' 2. Sortieren B:L
Range(vonSp & "1:" & bisSp & zMax).Sort _
Range(vonSp & "1"), xlAscending, _
Range("C1"), , xlAscending, Header:=xlNo
MsgBox "Erledigt"
End Sub
Hänge eine Beispiel-Datei noch mit ran- https://www.herber.de/bbs/user/111912.xlsx
MfG Andi
Anzeige
lach Du nur...
03.03.2017 15:21:00
Michael
Hi Andi,
im Prinzip mußt Du nur statt C1 in der dritten Zeile E1 einfügen:
Range(vonSp & "1:" & bisSp & zMax).Sort _
Range(vonSp & "1"), xlAscending, _
Range("C1"), , xlAscending, Header:=xlNo

dann wird nach B und E sortiert.
Ich habe die faule Schreibweise verwendet; schreibe lieber ausführlich mit
key1:=Range(vonSp & "1"), order1:=xlAscending,key2:=, order2= usw.,
dann lassen sich bis zu (weiß nicht genau) x Spalten der Reihe nach sortieren.
Schöne Grüße,
Michael
AW:sortiert hervoragend!!!
03.03.2017 22:46:51
Andi
danke Michael- es wird alles richtig sortiert.
hätte gedacht, das ein unheimlich komplizierter Code werden würde.
Super Hilfe
Anzeige
freut mich, so muß es sein...
04.03.2017 12:20:24
Michael
Hi Andi,
vielen Dank für die freundliche Rückmeldung.
Das Sortieren ist eine komische Geschichte: was der Makrorekorder hier aufzeichnet, ist sehr umfangreich & kompliziert - dabei ist es eigentlich nur ein Einzeiler (wenn man ihn nicht wegen der besseren Lesbarkeit auf mehrere Zeilen verteilt).
Na denn: happy exceling & Gruß,
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige