1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel: Sortieren mehrere Zeile (Aber verknüpft?)

Discussion in 'Office-Programme' started by markusstyler, Apr 14, 2015.

Thread Status:
Not open for further replies.
  1. Hallo,

    Ich habe ein Problem, und zwar habe ich mehrere Spalten und Zeilen und möchte nach einer Spalte (Lieferant) sortieren. Jedoch gibt es ein Problem: Wie auf dem Screenshot zu erkennen, besitzt jeder Lieferant eine Restmenge (siehe Bestellnummer). Diese muss mitsortiert (!) werden, wenn ich nach Lieferantenname sortiere.

    Jedoch passiert das, was auf dem unteren Teil des Screenshots zu sehen ist: Die Lieferanten werden zwar alphabetisch sortiert, jedoch sortieren sich auch die Restmengen und gehen von den zugehörigen Lieferanten weg, anstatt mitsortiert zu werden. Wie kann ich das umgehen?

    Am Ende sollten die Lieferanten alphabetisch sortiert sein UND deren Restmenge noch in der jeweiligen Zeile darunter erhalten bleiben.

    Vielen Dank im Voraus.

    [​IMG]
     
  2. chipchap

    chipchap Ganzes Gigabyte

    Schreibe die Restmenge in eine eigene Spalte und alles funktioniert.
     
  3. Das Problem ist, dass ein Programm auf der Arbeit die Excelliste sofort so erstellt. Und das Programm kann man nicht so leicht verändern, damit es die Restmente in eine eigene Spalte macht...

    Und es sind normalerweise 500 Zeilen oder so und die alle manuell in einer eigenen Spalte einzufügen dauert ewig. Oder seh ich das falsch?
     
  4. the raccoon

    the raccoon Halbes Megabyte

    Da hat chipchap schon recht. Nur so wird es gehen.
    Du muss erst einmal sagen was "Restmenge "ist. Du schreibst: "Am Ende sollten die Lieferanten alphabetisch sortiert sein UND deren Restmenge". Es gibt keine "Restmengenlieferanten".
    Ich vermute das es die darüber stehende Bestellnummer ist die eine Restmenge hat. Dann mach es doch So: WENN in der Spalte E das Wort Restmenge auftaucht DANN nehme den Wert der daneben steht und setze den in die Spalte "G" um einen versetzt nach oben. So in etwa =WENN(E3="Restmenge";F3;""). Erst dann hast Du eine Zuordnung -Zahl- hat Bezug zu -Sortierung-

    the Raccoon
     
  5. Danke, dank dieses Befehls habe ich es nun geschafft, eine neue Spalte mit dem Namen "Restmenge" aufzumachen, in der die Restmengen nun in der gleichen Zeile wie die Lieferantennamen stehen, das ist schonmal sehr gut.

    Wenn ich es nun jedoch sortieren will (z.B. nach Lieferantenname), dann werden die Zahlen der Restmenge (Die nun in der richtigen Zeile und eigener Spalte stehen) nicht beibehalten sondern wandern wieder zu den Restmengen ganz nach unten und eins versetzt, da sie ja noch im Befehl (also =WENN.....) stehen...

    Da ich ein Anfänger bin, würde ich mich freuen, wie ich das Problem noch umgehen kann. Kann man den Zahlen "sagen", einfach Zahlen zu bleiben und nun einfach so stehen zu bleiben? Also beim Sortiervorgang nicht weiterhin auf die Spaltenangaben des Befehls zu achten?

    Ich weiß es klingt verwirrend... Wenn unverständlich schicke ich ein Bild nach.
     
  6. chipchap

    chipchap Ganzes Gigabyte

    Welche Excel-Version verwendest Du denn?
    Einer Spalte oder einer Zelle kann man mit Rechtsklick ->Zellen Formatieren -> Zahlen -> Zahl das numerische Format zuweisen.

    Welche Literatur steht denn zur Verfügung?
    Kleine Hilfe: nur mit Kopien arbeiten, niemals mit der Originaldatei.
     
    Last edited: Apr 14, 2015
  7. Hey. Also ich glaube, dass der das schon als Zahl erkennt. Excel 2013. Mithilfe des Tipps von Racoon habe ich es ja hinbekommen, dass die Werte der Restmengen nun in der gleichen Zeile mit deren anderen Werten stehen. (Wie auf diesem Bild zu sehen, Neu: Spalte G mit Restmengen)
    [​IMG]

    Jedoch haben die Zahlen weiterhin den Befehl, dass die auf ein gewisses Feld zugreifen sollen und alles (Wegen dem Kommando). Demnach bleiben sie beim Sortieren nicht in der Zeile, sondern verschieben sich nach unten. Jedoch sollten sie idealerweise in der Zeile bleiben, da sie ja durch die neu gewonnene "Restmengenspalte" dem Lieferanten nun genau zugeordnet worden.
     
  8. chipchap

    chipchap Ganzes Gigabyte

    Nein, das macht Excel eben nicht.
    Alle Zellen werde als "Variant" definiert, falls man sie nicht umdefiniert.
    Gleiche Spaltenüberschriften (B, D) sind der Tod jeder Excel-Tabelle.
    Das Ganze ist wohl eher ein Fall für VBA.

    Ich bin noch am Programmieren, die Mappe folgt noch.
     

  9. Ah okay, versuche ich morgen auf der Arbeit nochmal, danke für die Hilfe!
     
  10. chipchap

    chipchap Ganzes Gigabyte

    So, die Makros sind fertig.

    Das erste schreibt die Restmenge in die Spalte G und löscht die unnötige Restmengenzeile:

    Code:
    Sub Zeilen_Restmenge_löschen()
    Dim i
    i = 5
    Range("A3").Select
    For i = 3 To 14
    Cells(i, 5).Activate
        If Cells(i, 5) = "Restmenge" Then
            Cells(i - 1, 7) = Cells(i, 6)
            Rows(i).Delete
        End If
            DoEvents
    Next i
    Cells(2, 1).Activate
    End Sub
    .

    Das zweite löscht den Ergebnisbereich:

    Code:
    Sub Loeschen()
    Range("A3:G15").Select
    Range("A3:G15").ClearContents
    Range("H5").Select
    End Sub
    .

    Das dritte kopiert die Daten aus dem 2. Tabellenblatt wieder in das 1.:
    Code:
    Sub Kopieren()
    Sheets(2).Activate
    Range("A3:F15").Select
    Range("A3:F15").Copy
    Sheets(1).Activate
    Range("A3:F15").Select
    Range("A3:F15").Insert
    Range("H8").Select
    End Sub
    .

    Wenn man drei Buttons erstellt mit den Entwicklertools aus Excel und die drei Makros damit verküpft, sieht man den prizipiellen Verlauf.

    Alles ist noch ohne Fehlerbehandlung und die Bereiche müßten angepaßt werden.

    Hier mal ein Stückchen Code mit Ermittlung der letzten Zeile:
    http://www.excel-inside.de/vba-loes...899-zeilen-abhaengig-einer-bedingung-loeschen.

    Hier die Testtabellen im Anhang:

    View attachment $Restmenge.txt

    Das .txt bitte in .xls umbenennen.
     
    Last edited: Apr 14, 2015
  11. Hascheff

    Hascheff Moderator

    Ja, kann man.
    Markiere den Bereich und kopiere mit <Strg>+C. Ohne die Markierung zu verändern, gehst du unter Start auf den Pfeil unter Einfügen und wählst dort "Werte". Voila!
    Danach kannst du die alten Werte unten löschen.
     
  12. Danke für die ganze mühe! Jetzt ist alles geklärt :)
     
  13. the raccoon

    the raccoon Halbes Megabyte

    es hätte auch ohne Makro sortiert.Z.B. Lieferant - Autofilter " nicht Leere" und gut ist.

    the Raccoon
     
Thread Status:
Not open for further replies.

Share This Page