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

es wird nicht richtig einsortiert

es wird nicht richtig einsortiert
19.07.2016 10:56:21
Peter
Hallo Excel-Experten,
ich habe ein Tabellenblatt, in dem in den Zeile 1 bis 5 Überschriften stehen.
AB Zeile 6 bis 30 stehen in der Spalte A die Namen von Verwaltungs-Mitarbeitern und ab Zeile 32 bis 181 stehen in der Spalte A die Namen der gewerblichen Mitarbeiter.
Wenn nun im Bereich 6 – 30 ein neuer Name eingefügt wird, wird der erstmal in Zeile 30 geschrieben und soll dann per Sort in den Bereich 6 – 30 aufsteigend sortiert eingefügt werden.
Das gelingt leider nicht, der Name bleibt in Spalte 30.
Erste wenn der Name in Zeile 30 ausgewählt wird und mittels Ändern sortiert wird, wird er richtig eingefügt.
Sortiert werden in beiden Fällen die Spalten A6:AX30.
Ich nehmen an, das ist ein Zeitproblem, dass die Namen beim Übernehmen nicht richtig aus der Zeile eingefügt, bzw. aufsteigen sortiert werden.
Wo könnte ich da etwas ändern, damit der Sort wie gewünscht funktioniert?
Im zweiten Teil, mit den gewerblichen Mitarbeitern funktioniert die Vorgehensweise einwandfrei.
Das Einfügen und der Sort-Aufruf geschieht per Ereignis-Makro in einem UserForm(ular).
  • If bFehler = False Then
    If Trim$(WkSh.Range("A30").Value) = "" Then
    Application.EnableEvents = False
    WkSh.Range("A30").Value = TextBox1.Value
    WkSh.Range("B30").Value = TextBox2.Value
    WkSh.Range("C30").Value = TextBox3.Value
    If iMonat = 1 Then
    WkSh.Range("AW30").Value = TextBox4.Value
    End If
    WkSh.Range("A6:AX30").Sort _
    Key1:=WkSh.Range("A6"), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1
    WkSh.Range("AX6:BM6").AutoFill Destination:=WkSh.Range("AX6:BM50"), _
    Type:=xlFillDefault
    Application.EnableEvents = True
    Else
    MsgBox "Im Tabellenblatt """ & vMonate(iMonat) & _
    """ gibt es für den neuen Mitarbeiter """ & _
    TextBox1.Value & """ keinen freien Platz mehr.", _
    48, " Hinweis für " & Application.UserName
    Exit Sub
    End If
    End If

  • Gruß Peter

    10
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: es wird nicht richtig einsortiert
    19.07.2016 11:13:25
    Werner
    Hallo Peter,
    bin jetzt der Experte aber meinst du es könnte daran liegen, dass EnableEvents ausgeschaltet ist?
    Gruß Werner
    AW: es wird nicht richtig einsortiert
    19.07.2016 12:19:05
    Peter
    Hallo Werner,
    das Problem bleibt erhalten, auch wenn die beiden Befehle auskommentiert sind.
    Die Befehle sind hier sicherlich überflüssig, weil sie in den Ereignis-Makros nichts bringen,
    aber sie stören offensichtlich auch nicht.
    Gruß Peter
    Datenstrukturen?
    19.07.2016 14:02:15
    Michael
    Hi Peter,
    so eine Geschichte ist ohne Beispieldatei mit vollständigem Code und ein paar Spieldaten schlecht nachvollziehbar.
    Mangelhaft finde ich aber die Strukturierung der Daten: wenn es vorkommen kann, daß es "Im Tabellenblatt [...] keinen freien Platz mehr" gibt, läuft da grundsätzlich was falsch.
    Man könnte solche Sachen durch eine Hilfsspalte in den Griff bekommen, in der ein Kürzel für den Mitarbeiter-Typ steht, meinetwegen 1 für Vw. und 2 für gew.; dann kannst Du eingeben, was Du willst und wo Du willst, bei der Sortierung nach Hilfsspalte (key1) und Name (key2) sind sie immer richtig sortiert.
    Nachdem Du die Zeile 31 anscheinend für Überschriften verwendest, kannst Du die denn auch richtig einsortieren: 1 für Vw, 2 für diese Überschriftenzeile und 3 für gew.
    Schöne Grüße,
    Michael
    Anzeige
    AW: Datenstrukturen?
    19.07.2016 14:15:54
    Peter
    Hallo Michael,
    die Zelle A30 wird ja abgefragt, ob sie noch leer ist.
    Z. Zt. sind von den 25 möglichen Zeile auch nur 8 Zeilen mit Namen belegt - Platz gibt es also ausreichend, und die Wahrscheinlichkeit für neue Namen ist ohnehin gering.
    Gruß Peter
    Beispieldatei? owT
    19.07.2016 14:35:57
    Michael
    AW: es wird nicht richtig einsortiert
    20.07.2016 06:26:53
    Uwe
    Hi Peter,
    Versuch mal statt:
    WkSh.Range("A6:AX30").Sort _
    Key1:=WkSh.Range("A6"), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1
    
    folgendes:
    WkSh.Range("A6:AX30").Sort _
    Key1:=WkSh.Range("A6:A30"), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1
    
    Falls Du als Ereignis übrigens das Workbook_SheetChange() Event benutzt, ist die Zeile EnableEvents=False extrem wichtig, da Dein Code sonst in eine Endlosschleife läuft.
    Gruß,
    Uwe
    Anzeige
    AW: es wird nicht richtig einsortiert
    20.07.2016 11:05:59
    Peter
    Hallo Uwe,
    leider hat auch dein Tipp nicht weiter geholfen, mein neuer Eintrag bleibt in Zeile 30.
    Das Makro ist ein UserForm Ereignis Makro als CommandButton1_Click -ein Workbook_SheetChange() Event in DieseArbeitsmappe wird nicht verwendet.
    Gruß Peter
    AW: es wird nicht richtig einsortiert
    20.07.2016 11:22:11
    Peter
    Hallo an meine Antworter,
    ich habe offensichtlich die Lösung gefunden.
    Der Bereich Zeile 6 - 30 ist z. Zt. ja nur mit 8 Namen gefüllt, die restlichen Zeilen sind frei und werden ausgeblendet.
    Wenn ich vor dem Sort alle Zeilen 6 - 30 einblende (Hidden = False), dann wird vom Sort aus Zeile 30 übernommen und richtig eingefügt.
    Danke für eure Bemühungen, Gruß Peter
    Anzeige
    na, da schau an,
    20.07.2016 13:06:34
    Michael
    Peter,
    daß die ausgeblendet sind, hattest Du nicht erwähnt: deshalb ist es so wichtig, eine Beispieldatei zu sehen...
    Schöne Grüße,
    Michael
    na, da schau an,
    20.07.2016 13:06:35
    Michael
    Peter,
    daß die ausgeblendet sind, hattest Du nicht erwähnt: deshalb ist es so wichtig, eine Beispieldatei zu sehen...
    Schöne Grüße,
    Michael

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige