Herbers Excel-Forum - das Archiv

Sortierbereich variabel bzw. dynamisch

Bild

Betrifft: Sortierbereich variabel bzw. dynamisch
von: Markus Morgenbesser

Geschrieben am: 30.12.2006 17:50:55
Ich habe folgendes Problem: Ich möchte dass sich der Sortierbereich automatisch bei Einfügen von 2 Zeilen um diese 2 Zeilen erweitert. Gleichzeitig sollte sollte sich der Bereich beim Löschen von 2 Zeilen wieder um die 2 reduzieren. Man kann es sich vorstellen als ein vorgefertigtes Bereichsfenster, das je nach Anzahl der befüllten Zeilen größer und kleiner
wird.
Der zu sortierenede Bereich sieht so aus:
A B C D E ...BR
7 Nachname Vorname KDStamm Kundeseit Notizen ...Anzahl
8 Muster Max 1234 25.02.06 Text ... XXX
(Leider in der Vorschau alles verschoben, hab aber das excelfile angehängt)
Also in der Zeile 7 stehen die Überschriften wo 1. nach Nachnamen 2. nach Vornamen u. 3. nach KD Stamm sortiert werden soll. Per Makro werden dann vorgefertigte Eingabe Felder einzeln immer wieder in der Zeile 8 eingefügt und ergibt nach unten dann eine unendliche Liste.
Genauso kann man per Makro Zeilen wieder löschen, wobei immer die oberste Zeile der Liste(logischerweise dann zeile 8) gelöscht wird.
Wichtig zu wissen ist, dass die Zellen unterhalb der bereits erzeugten Liste gesperrt sind und somit beim Blattschutz und Sortierung per Makro unterhalb der entsperrten Eingabefelder einen Fehler verursachen. Der Sortierbereich darf also immer nur maximal bis zu dem untersten Eingabefeld der Liste (welches auch immer befüllt ist) gehen.
Anders erklärt:
Ausgangstellung es existieren nur die Überschriften in Zeile 7(entsperrt) und die Zeile 8 und darunter sind bereits gesperrt.
Neuen Kunden anlegen: Eingabefeld wird in Zeile 8 erzeugt und ist befüllbar (Zeile 8 entsperrt)
Neuen Kunden anlegen: Eingabefeld wird in Zeile 8 erzeugt. erstes Eingabefeld wird auf Zeile 9 verschoben. (Sortierbereich müsste sich nun von A7:BR9 erstrecken.
Neuen Kunden anlegen: Eingabefeld wird in Zeile 8 erzeugt. Sortierbereich müsste sich auf A7:BR10 erweitern
Kunden löschen: Eingabefeld in Zeile 8 wird gelöscht und der Sortierbereich darf sich nur mehr
von A7:BR9 erstrecken, da Zeile 10 bereits wieder gesperrt ist.
Bitte um Hilfe und einen Makrocode den ich hier wirklich 1:1 kopieren kann, da ich mich mit Programmieren nicht wirklich gut bis gar nicht auskenne. v.a. erklärungen im code bitte mit farbe oder kennzeichnen, da ich sie so sonst nicht vom code unterscheiden kann.
ich versuche noch das excelfile anzuhängen und hoffe es klappt.
https://www.herber.de/bbs/user/39268.xls
danke lg markus
Bild

Betrifft: AW: Sortierbereich variabel bzw. dynamisch
von: Kay

Geschrieben am: 30.12.2006 22:21:34
Hallo Markus,
probiere dies mal, Nachname und Vorname muss ausgefüllt sein sonst wirft er alles durcheinander.
Diesen Code durch deinen ersetzen.
Sub sortierenkome()
Dim lngEnde As Long
lngEnde = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row 'letzte gefüllte Zelle in Spalte A
'Sortierung
Range("A8", "BR" & lngEnde).Sort Key1:=Range("A8"), Order1:=xlAscending, Key2:=Range("B8") _
, Order2:=xlAscending, Key3:=Range("C8"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End Sub

MfG
Kay
Bild

Betrifft: AW: Sortierbereich variabel bzw. dynamisch
von: Markus Morgenbesser

Geschrieben am: 31.12.2006 18:27:57
super lösung danke...
ein problem hab ich jetzt noch. es funktioniert leider der button rückgängig machen nicht wenn man wirklich mal sortiert ohne vornamen und dann alles durcheinander ist weil die sortierung mit dem makro gemacht wird und ich befürchte schlimmes :-) kann man hier eine sicherheitsstufe einbauen. zb. dass wenn in irgendeine zeile der liste vor o. nachname fehlen eine fehlermeldung kommt und nicht sortiert wird. warum ist das so bei dem code dass beides befüllt sein muss, ich konnte mir das aus der logik der formel nicht herausinterpretieren.
sonst voll genial und genau das was ich wollte.
ps: möglichkeit wäre natürlich auch ein code wo man die sortierung wieder widerrufen kann und auf den zustand vor der "fehlerhaften" sortierung rückgängig machen kann. weiß nicht was hier leichter ist aber ich glaube du weißt was ich befürchte bzw. wo das tüpfelchen auf dem i noch fehlt.
guten rutsch heute
lg markus
 Bild
Excel-Beispiele zum Thema "Sortierbereich variabel bzw. dynamisch"
Druckbereich variabel gestalten Dynamischen Dialog erstellen
Dynamische Postleitzahldatenbank Dynamischer Monatsarbeitsplan
Summe über dynamischen Bereich bilden Dynamisches Diagramm
Dynamische Generierung von Programmteilen Dynamischer Blattname in SVERWEIS-Formel
Dynamischer Hyperlink Dynamischer Kalender mit Jahr, Quartal und Monaten