Supportnet / Forum / Tabellenkalkulation
Tipp zum Sortieren gesucht
Frage
Hi!
Ich habe eine Exceltabelle in der z. B. ab der Zeile 5 (in der Spalte A) folgendes steht.
[u]Spalte-A --> Spalte-B --> Spalte-C ....[/u]
Name-A --> 1 --> 1
Name-B --> 2 --> 0
Name-G .....
Name-H
Auf diese Wert gibt es ab der Zeile 50 Bezüge.
[u]Spalte-A --> Spalte-B --> Spalte-C ....[/u]
=a6 --> 4 --> 4
=a7 --> 6 --> 7
=a8
=a9
In den Spalten B bis Z sind den jeweiligen Namen andere entsprechende Werte zugewiesen.
Nun komm es vor, dass der Name-C hinzukommt und wird standardmäßig NACH Name-H dazugefügt.
Nun sollte jedoch der Name (im ersten Bereich) korrekt sortiert werden.
Noch kein Problem, allerdings sollten auch die Werte ab Zeile 50 in der selben Reihenfolge wie ab Zeile 6 INKL. der separten Werte sortiert werden.
Hat jemand einen Lösungsvorschlag, wie sich dies einfach umsetzen lässt?
Sobald die Werte im ersten Bereich umsortiert sind besteht die Gefahr, dass man vergisst auch die Werte im zweiten Bereich (ab Zeile 50) umzusortieren. Somit könnte es sein zwar die Namen-Spalte korret ist (--> Zellbezüge), jedoch die Werte nicht richtig sind.
Hoffe man versteht was ich meine.
Simi
Antwort 1 von Saarbauer
Hallo,
dein Problem ist wenn ich es richtig verstanden habe, dass nach dem Sortieren die Zeilen ab 50 nicht mehr den richtigen Personen zugeordnet sind. Dies ist logisch, da in den Zelle A50:A... nur der Verweis auf die Zelle A6 und folgende ist und bei einer Sortierung diese Verweise auf die neuen Namen beziehen.
Das Problem ist aus meiner Sicht nur mit VBA zu lösen
Da der Tabellenaufbau insgesamt nicht bekannt ist, wäre eine Beispieltabelle nicht schlecht, könnest du hier hinterlegen
http://www.netupload.de/
Gruß
Helmut
dein Problem ist wenn ich es richtig verstanden habe, dass nach dem Sortieren die Zeilen ab 50 nicht mehr den richtigen Personen zugeordnet sind. Dies ist logisch, da in den Zelle A50:A... nur der Verweis auf die Zelle A6 und folgende ist und bei einer Sortierung diese Verweise auf die neuen Namen beziehen.
Das Problem ist aus meiner Sicht nur mit VBA zu lösen
Da der Tabellenaufbau insgesamt nicht bekannt ist, wäre eine Beispieltabelle nicht schlecht, könnest du hier hinterlegen
http://www.netupload.de/
Gruß
Helmut
Antwort 2 von schnallgonz
N´abend,
mein Vorschlag lautet:
Du vergibst für jeden Bereich einen Namen, z.B. "dbeins" für A1:Z30, wenn die Zeile 29 aktuell die letzte ausgefüllte Zelle ist (also die erste freie Zeile nach dem Datenbereich mitbenennen) und "dbzwo" für den Bereich ab Zeile 50.
Wenn neue Datensätze eingegeben werden, markierst Du die erste freie Zeile und fügst eine neue ein, in welche die neuen Werte eingetragen werden.
Dadurch wird der Namenbereich automatisch erweitert.
Jetzt zeichnest Du ein Makro auf und sortierst beide Bereiche nach Deinem Geschmack.
Wichtig: wenn der makrorecorder angeworfen ist, drückst Du die Taste "F5" und wählst "dbeins", dann ist der erste Bereich markiert. Dann sortieren, dasselbe mit "dbzwo" und fertig.
Makro einer Schaltfläche zuweisen und mit einem Klick darauf werden beide Bereiche gleich sortiert.
Alles klar?
mfg
schnallgonz
Ich stimme mit der Mathematik nicht überein.
Ich meine, dass die Summe von Nullen eine gefährliche Zahl ist. (S.J. Lec)
mein Vorschlag lautet:
Du vergibst für jeden Bereich einen Namen, z.B. "dbeins" für A1:Z30, wenn die Zeile 29 aktuell die letzte ausgefüllte Zelle ist (also die erste freie Zeile nach dem Datenbereich mitbenennen) und "dbzwo" für den Bereich ab Zeile 50.
Wenn neue Datensätze eingegeben werden, markierst Du die erste freie Zeile und fügst eine neue ein, in welche die neuen Werte eingetragen werden.
Dadurch wird der Namenbereich automatisch erweitert.
Jetzt zeichnest Du ein Makro auf und sortierst beide Bereiche nach Deinem Geschmack.
Wichtig: wenn der makrorecorder angeworfen ist, drückst Du die Taste "F5" und wählst "dbeins", dann ist der erste Bereich markiert. Dann sortieren, dasselbe mit "dbzwo" und fertig.
Makro einer Schaltfläche zuweisen und mit einem Klick darauf werden beide Bereiche gleich sortiert.
Alles klar?
mfg
schnallgonz
Ich stimme mit der Mathematik nicht überein.
Ich meine, dass die Summe von Nullen eine gefährliche Zahl ist. (S.J. Lec)
Antwort 3 von CaroS
Hallo Gerd,
Dein Vorschlag hat was, ist aber für "manche" Anwender vielleicht doch keine so gute Lösung.
Stell Dir vor, die Zeilen 2 bis 29 sind ordentlich mit Daten gefüllt, genau wie die Zeilen 50 bis 77, und die Zeilen 30 bis 48 sind richtig schön leer. Da kommt ein Anwender des Wegs und muss mal ganz schnell und ganz dringend ganz wichtige Daten eingeben. Ob er die jetzt ganz schnell in die Zeile 30 einträgt, danach noch das Sortier-Makro ausführt, die Datei speichert und dann geht?
Als nächstes kommt einer, der ist nicht zwar nicht so schnell, aber dafür gründlich, befolgt Arbeitsanweisungen genau, markiert also die erste freie Zeile (31) und fügt eine neue ein. In diese neu eingefügte Zeile (31) trägt er sorgfältig seine Daten ein, führt das Sortier-Makro aus und speichert anschließend die Datei nicht. Warum?
Ich weiß, dass Du´s weißt. Wir sind beide schon dem "real existierenden" Anwender begegnet. Und genau da liegt das Problem.
Gruß,
CaroS
Dein Vorschlag hat was, ist aber für "manche" Anwender vielleicht doch keine so gute Lösung.
Stell Dir vor, die Zeilen 2 bis 29 sind ordentlich mit Daten gefüllt, genau wie die Zeilen 50 bis 77, und die Zeilen 30 bis 48 sind richtig schön leer. Da kommt ein Anwender des Wegs und muss mal ganz schnell und ganz dringend ganz wichtige Daten eingeben. Ob er die jetzt ganz schnell in die Zeile 30 einträgt, danach noch das Sortier-Makro ausführt, die Datei speichert und dann geht?
Als nächstes kommt einer, der ist nicht zwar nicht so schnell, aber dafür gründlich, befolgt Arbeitsanweisungen genau, markiert also die erste freie Zeile (31) und fügt eine neue ein. In diese neu eingefügte Zeile (31) trägt er sorgfältig seine Daten ein, führt das Sortier-Makro aus und speichert anschließend die Datei nicht. Warum?
Ich weiß, dass Du´s weißt. Wir sind beide schon dem "real existierenden" Anwender begegnet. Und genau da liegt das Problem.
Gruß,
CaroS
Antwort 4 von CaroS
Sorry, Gert, schnallgonz wäre in diesem Fall die bessere Anrede gewesen. CaroS
Antwort 5 von Fragender
Guten Morgen!
Danke für die Bemühungen und Tipps.
Werde mir die Vorschläge mal durch den Kopf gehen lassen und mich bei Gelegenheit nochmals melden.
Simi
Danke für die Bemühungen und Tipps.
Werde mir die Vorschläge mal durch den Kopf gehen lassen und mich bei Gelegenheit nochmals melden.
Simi
Antwort 6 von schnallgonz
N´abend,
falls sich jemand nochmal hierhin verirrt und
@CaroS
So vorsichtig wäre ich in diesem Fall gar nicht.
Ich bin davon ausgegangen, dass die Spalte mit Namen lückenlos ist, egal ob sortiert oder nicht.
Die erste freie Zeile, also letzte aus "dbeins1" kann man farblich hervorheben, so dass für neue Datensätze immer diese Zeile markiert wird und in die darüber neu entstehende getippt wird.
Oder man erstellt für dieses Zeileneinfügen auch ein Makro.
Das Speichern kann man mit einem Ereignismakro beim Verlassen der Datei automatisieren.
Selbst wenn das Speichern vergessen wird:
dann heißt es: nochmal eingeben.
Wenn wie in Deinem Beispiel die Zeilen bis 29 gefüllt wären und die Zeilen 30-48 gar nicht, endete für mich "dbeins" in Zeile 30, die farblich markiert wäre.
Ich meine, so sollte diese einfache Variante funzen.
Natürlich kann man das auch aufwändiger gestalten und DAU-tauglich machen, hängt vom Anwenderkreis ab.
gruß
gert (schnallgonz)
falls sich jemand nochmal hierhin verirrt und
@CaroS
So vorsichtig wäre ich in diesem Fall gar nicht.
Ich bin davon ausgegangen, dass die Spalte mit Namen lückenlos ist, egal ob sortiert oder nicht.
Die erste freie Zeile, also letzte aus "dbeins1" kann man farblich hervorheben, so dass für neue Datensätze immer diese Zeile markiert wird und in die darüber neu entstehende getippt wird.
Oder man erstellt für dieses Zeileneinfügen auch ein Makro.
Das Speichern kann man mit einem Ereignismakro beim Verlassen der Datei automatisieren.
Selbst wenn das Speichern vergessen wird:
dann heißt es: nochmal eingeben.
Wenn wie in Deinem Beispiel die Zeilen bis 29 gefüllt wären und die Zeilen 30-48 gar nicht, endete für mich "dbeins" in Zeile 30, die farblich markiert wäre.
Ich meine, so sollte diese einfache Variante funzen.
Natürlich kann man das auch aufwändiger gestalten und DAU-tauglich machen, hängt vom Anwenderkreis ab.
gruß
gert (schnallgonz)
Antwort 7 von CaroS
Hallo Gert,
Du hast es scheinbar doch nicht bemerkt. Mein eiliger User-1 hat vor dem Eingeben seiner Daten nicht die erste freien Zeile markiert und keine neue leere Zeile eingefügt. (Gut, das könnte man dem ersten, der die Datei öffnet und dann sofort Daten eingeben will, noch per Workbook_Open abnehmen, dem zweiten aber schon nicht mehr.) Er hat seine Daten einfach in die letzte Zeile des benannten Bereichs geschrieben. Das wirkt sich für ihn selbst nicht aus, wenn er nur die eine Zeile eingibt.
Aber der nächste hat dann, wenn der "Schuldige" wie immer längst untergetaucht oder über alle Berge ist, den Nachteil. Seine Daten eingeben kann mein User-2 natürlich, das Sortier-Makro anwerfen auch, aber seine Daten stehen außerhalb des Bereichs "dbeins" und werden nicht mit einsortiert. Deshalb speichert User-2 die Datei nicht, weil er mit dem Ergebnis natürlich nicht zufrieden ist, sondern erstmal zu den Admins rennt ... Wie lange hältst Du das durch, wenn Du der Admin und nicht der Excel-Programmierer bist?
Man kann ja eine ganze Menge in Makros packen, man kann Anwender auf diese Art auch total entmündigen (am einfachsten über Worksheet_SelectionChange und Worksheet_Change), aber sobald man der Fehlerquelle Mensch eine Chance gibt, wird der sie nutzen. Früher oder später auf jeden Fall. Welches Übel wählst Du?
Gruß,
CaroS
Du hast es scheinbar doch nicht bemerkt. Mein eiliger User-1 hat vor dem Eingeben seiner Daten nicht die erste freien Zeile markiert und keine neue leere Zeile eingefügt. (Gut, das könnte man dem ersten, der die Datei öffnet und dann sofort Daten eingeben will, noch per Workbook_Open abnehmen, dem zweiten aber schon nicht mehr.) Er hat seine Daten einfach in die letzte Zeile des benannten Bereichs geschrieben. Das wirkt sich für ihn selbst nicht aus, wenn er nur die eine Zeile eingibt.
Aber der nächste hat dann, wenn der "Schuldige" wie immer längst untergetaucht oder über alle Berge ist, den Nachteil. Seine Daten eingeben kann mein User-2 natürlich, das Sortier-Makro anwerfen auch, aber seine Daten stehen außerhalb des Bereichs "dbeins" und werden nicht mit einsortiert. Deshalb speichert User-2 die Datei nicht, weil er mit dem Ergebnis natürlich nicht zufrieden ist, sondern erstmal zu den Admins rennt ... Wie lange hältst Du das durch, wenn Du der Admin und nicht der Excel-Programmierer bist?
Man kann ja eine ganze Menge in Makros packen, man kann Anwender auf diese Art auch total entmündigen (am einfachsten über Worksheet_SelectionChange und Worksheet_Change), aber sobald man der Fehlerquelle Mensch eine Chance gibt, wird der sie nutzen. Früher oder später auf jeden Fall. Welches Übel wählst Du?
Gruß,
CaroS

