Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeilen in anderes Tabellenblatt schieben
#1
Hallo liebe Excel-Community,

ich habe eine Liste zur Erfassung von Aufträgen erstellt.
Nun möchte ich, dass erledigte Aufträge farblich gekennzeichnet werden und

a) entweder gebündelt nach oben rutschen und sich nach Fertigstellungsdatum von alt nach neu sortieren,

b) oder noch besser die gesamte Zeile, also der gesamte Auftrag, in ein anderes Tabellenblatt geschoben wird.


Den Status des Auftrages wird per Drop-Down-Funktion (Datenüberprüfung) gesetzt.


Ich wäre euch sehr dankbar, wenn ihr mir bei meinem Anliegen helfen könntet.


Beste Grüße

Jannik


Angehängte Dateien
.xlsm   Auftragsliste.xlsm (Größe: 113,88 KB / Downloads: 12)
Antworten Top
#2
Hallöchen,

dann bleiben wir mal bei a - dazu gibt's Sortieren - im Reiter "Daten", ungefähr in der Mitte, wenn Excel breit genug angezeigt wird Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Danke für die schnelle Antwort.
Diese Funktion kenne ich bereits.

Das Problem daran ist, dass täglich mehrere Aufträge platziert werden und auch mehrere Aufträge als "erledigt" gekennzeichnet werden.
Hier wäre es schön, wenn die Sortierung automatisch funktioniert, sobald der Status eines Auftrages geändert wird.

Wahrscheinlich ist hierfür ein Makro notwendig, oder?
Antworten Top
#4
So eine automatisch sortierende Tabelle hatte ich auch mal: Nach jeder Änderung sortiert sich der aktuell bearbeitete Datensatz irgendwohin und du musst ihn suchen, um weiter daran zu arbeiten. „Das nervt wie Drahtseile“, wie Herr Balhorn sagen würde.

Ich würde von Hand sortieren. Und wenn du tollkühn genug bist, zeichnest du die notwendigen Schritte mit dem Makrorekorder auf, dann kannst du den auf einen Button legen und jederzeit wieder verwenden. Formatiere vorher deinen Datenbereich als „Tabelle“. 
Codes, um Erledigtes irgendwohin zu kopieren/verschieben, gibt es millionenfach im Netz. Wer es schafft, die nicht zu finden und für sich anzupassen, sollte auf sie verzichten.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#5
Hallöchen,

Zitat:Nach jeder Änderung sortiert sich der aktuell bearbeitete Datensatz irgendwohin und du musst ihn suchen, um weiter daran zu arbeiten. „Das nervt wie Drahtseile“, wie Herr Balhorn sagen würde.

jupp, ganz meiner Meinung. Man kann einem Programmiere ja ganz schön viele Fragen dazu stellen - bzw. er stellt sie sich schon selbst Smile

--> Alternativen
Ein Button hätte nur den Vorteil, dass Du eine Aktion auf dem Blatt beginnst wo Du sonst ins Menü gehen musst. Ersatzweise könntest Du auch per Einstellungen einen Button in den Schnellzugriff legen ... Die Sortiereinstellungen werden ja beibehalten - solange die keiner ändert. Natürlich gibt es auch Anwender, die mit Excel nichts am Hut haben und Schwierigkeiten haben, die benötigten Standardbuttons zu finden und richtig zu bedienen. Zuweilen macht man was für ältere Leute, die vielleicht noch nicht mal ein Smartphone haben ...

--> (voll) automatische Sortierung

1) Sortierreihenfolge festlegen und programmieren

2) wann soll sortiert werden?

- bei einem Eintrag in einer bestimmte Spalte
--> Nachteil: eventuell ist die Zeile nicht vollständig ausgefüllt, siehe oben. Nach einem Eintrag in A50 geht es in B7 weiter ...
- Sortierung nacheinander - bei Einträgen in mehreren bestimmten Spalten einer Zeile
--> Nach einem Eintrag in A50 geht es in B7 weiter, dann C25, dann ...
--> Löschen eines Eintrages führt unter beiden Bedingungen ebenfalls zum Sortieren, also wenn Du in A7 löschst könnte die Zeile dann ab A50 zu finden sein ...

- Sortieren erst bei teilweisem oder vollständigem Ausfüllen einer Zeile
--> es muss definiert werden, wann bzw. bei welchen Zelleinträgen die Bedingung "teilweise" erfüllt ist
--> wenn Du was erst später eintragen willst, wird so lange nicht automatisch sortiert
--> bei einer Änderung im definierten Bereich wird wieder sortiert, egal, ob das erforderlich bzw. gewünscht ist
--> beim Löschen eines Eintrags im definierten Bereich wird hier nicht sortiert, auch wenn es gewünscht wäre

- Sortieren bei Einfügen einer neuen oder kopierten Zeile bzw. einzelner Zellen
--> Die z.B. am Ende eingefügten Daten stehen danach ggf. irgendwo anders ...

Die Fragestellungen könnte man sicher noch erweitern, also einfach mal eine Standardfunktion automatisieren kann schon recht aufwändig werden Wink

Zuweilen tauchen solche Fragen beim Anwender erst dann auf, wenn er merkt, dass eine erste Lösung nicht seinen Vorstellungen entspricht und letztendlich muss doch alles berücksichtigt werden Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Hallo

in deinem Beispiel gibt es doch bereits ein gutes Makro, leider nur an der falschen Stelle plaziert!
Ein Target Makro gehört IMMER in das Sheet, wo es ausgeführt werden soll.  Nicht in Modul3.
Bei Select Case hast du UCase(Target) angegeben, dort gehört aber LCase = LowCase hin!

Leider ist mein Beispiel eine alte Excel 2003 Datei, aber das Makro läuft darin einwandfrei.
Auch mit Sortierung der erledigten Aufträge nach Datum. Das Makro kannst du in deine Datei kopieren.

mfg Gast 123

Nachtrag:  die Application.Cualcaltion = xlManuell habe ich deaktiviert.


Angehängte Dateien
.xls   Auftragsliste.xls (Größe: 171,5 KB / Downloads: 4)
Antworten Top
#7
Hallo Gast123,

vielen Dank für deine Hilfe, das ist super!
Jetzt ist mir noch eine nette Sache in den Sinn gekommen.

Gehen wir davon aus, dass auch das ältere, nicht so sehr PC-affine Publikum die Liste nutzt:
Wäre es möglich, dass die Verschiebung reversibel ist, sprich dass Zeilen bzw. Aufträge aus dem Tabellenblatt "fertige Aufträge" wieder in "neue Aufträge" geschoben werden können, wenn der Status von "erledigt" auf "in Bearbeitung" geändert wird?

Falls dies nicht so ohne Weiteres funktioniert, ist das aber auch nicht schlimm.

Ich danke euch vielmals für Eure Hilfen.

Beste Grüße
Jannik
Antworten Top
#8
Hallo

freut mich sehr das euch mein Code gefällt. dann habe ich gute Arbeit geleistet.
Zurückkopieren ist auch kein Thema, der gleiche Code, nur leicht verändert.

Er gehört in das Sheet "erledigte Aufträge". Wenn ihr das DropDown auf "in Bearbeitung" setzt wird er zurückkopiert.
Dabei wird nach dem Kopieren und Datum sortieren automatisch auf das Sheet "neue Aufträge" umgeschaltet.

mfg Gast 123

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
'Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
If Target.Column = 1 Then
If Target.Value <> Empty Then
   Select Case Target.Value
   Case "in Bearbeitung"
   With Worksheets("neue Aufträge")
        loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
        Rows(Target.Row).Copy
        .Rows(loLetzte).PasteSpecial Paste:=xlAll
        Rows(Target.Row).Delete
        'wiederhergestellte Daten Sortieren                       'oder xlAscending
        .Range("A3:N" & loLetzte + 1).Sort Key1:=.Range("B3"), Order1:=xlDescending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
   End With
   End Select
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
'Application.Calculation = xlCalculationAutomatic
Worksheets("neue Aufträge").Select
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste