Kopieren und Sortieren von Daten von einem Blatt zu einem anderen, basiert auf die Zelle Werte
Habe ich gesucht, eine Menge von ähnlichen Themen und habe einige helfen, aber ich kann nicht einen Weg finden, das zu tun, was ich brauche (wahrscheinlich wegen meiner begrenzten Erfahrung mit excel und vba), also hier geht es:
Ich habe ein (Quell -) Blatt "Angebote", die täglich aufgefüllt, mit den Spalten unten:
columns: b c d e f g
header: offercode issue dt worktype customer sent dt confirmation dt
xxx.xx. 1/1/14 MI john 1/1/14 3/1/14
aaa.aa. 1/1/14 MD bob 2/1/14
bbb.bb 2/1/14 SI peter 2/1/14 3/1/14
was ich brauche, ist kopieren Sie alle Zeilen, erhalten Sie eine Bestätigungs-Datum (nicht leere) in einem anderen Blatt"Fertigungsaufträge"(Ziel)
wo ich erzeugen die Produktion um codes und Eingabe andere Art von Daten :
columns: b c d e f g
header: offercode productioncode worktype start end confirmation dt
xxx.xx. 1/1/14 MI 5/1/14 3/1/14
bbb.bb 2/1/14 SI 6/1/14 3/1/14
beachten Sie, dass die Spalte b und b & c die Formeln enthalten (generiert, bieten codes)
mein problem ist, dass Daten aufgefüllt, täglich, und bietet(Source Sheet) sortiert werden sollen, indem Sie das Datum der Ausgabe und wenn Sie einmal bestätigt(Eingabe-Bestätigung Datum->nicht leer lassen) Sie kopiert werden soll, in dem anderen Blatt, aber sortiert (oder polulate die nächste leere Zeile) mit der Bestätigungs-Datum zB:
columns: b c d e f g
header: offercode productioncode worktype start end confirmation dt
xxx.xx. XX.XXX. MI 5/1/14 3/1/14
bbb.bb BB.BBB SI 6/1/14 3/1/14
aaa.aa. AA>AAA MD 4/1/14
andere Frage ist, wie oft oder Wann ist die zweite (zielblatt) Liste refreshs mit neuen Daten, ich vermute, dass eine control-Taste klicken Sie nach jeder Dateneingabe Instanz funktionieren würde (und stellen Sie sicher, dass die Liste aktuell ist)
vielen Dank im Voraus,
Angelos
- kann man irgendwie zumindest zeigen Sie uns, was Sie versucht haben? haben Sie versucht, ein makro aufzeichnen, bei der zumindest?
- Nein, ich habe nicht erfasst, ein makro-stackoverflow.com/questions/20886281/... dies ist der closesest ich bereits eine Antwort, und der rest versucht, ich habe getan, die Ausfälle sind
- Ich bin nicht sicher, warum diese Frage wurde eine negative Abstimmung, ich glaube nicht, dass ich es machen kann, mehr klar, als für die Forschung kann ich nicht schreiben code, der mir(immer noch um die Grundlagen zu erlernen) und das beste, was ich bis jetzt gefunden habe (und ich habe viel gesucht) ist der code, der freundlicherweise von @simoco finden Sie auf den obigen link.
- Ich denke, was Sie tun möchten, kann erreicht werden, indem die Aufnahme und dann zwicken Sie ein makro. Wenn Sie haben, zu verwalten, zu verwenden und zu Bearbeiten @simoco-code, dann ist es einfacher für Sie, um ein makro Bearbeiten.
- Ich habe nicht die negativen Stimmen, aber ich könnte denke, es ist, weil Sie begann ein neues Thema, anstatt beharrlich mit dem Gespräch in den ersten ein, die Sie erstellt haben.
- Es ist immer noch nicht klar ist mir, warum ist VBA erforderlich. Die Aufgabe durchgeführt werden konnte, von einem einigermaßen einfachen manuellen Prozess wie diesem: Filter Hinzufügen, um die Spalten in der Quell-Blatt; verwenden Sie die Filter Sortieren Sie nach der Bestätigung von Datum und zum ausblenden von Zeilen, in denen die Bestätigung Datum leer ist; das kopieren der Daten und einfügen in ein anderes Arbeitsblatt. Wenn, dass ist zu Komplex für Endbenutzer, dann könnte man es als ein makro und eine Schaltfläche für den Benutzer, läuft das makro.
- Ich kann die Komplexität sehen, dass es Spalten in der Ziel-Tabelle, die Sie wollen zu füllen-in nachdem die Daten kopiert wurden, und Sie nicht möchten, dass Daten verloren gehen, jedes mal, wenn Sie aktualisieren das Ziel. Kann das sein behandelt durch verfolgen der Letzte Tag, an dem die Daten kopiert wurde? Stattdessen verstecken sich alle Quellcode-Zeilen, in denen die Bestätigung Datum leer ist, verwenden Sie die gleichen filter zur Anzeige nur diejenigen Zeilen, in denen die Bestätigung Datum ist größer als das Datum der letzten Aktualisierung. Bei jedem update (täglich?), kopieren Sie die Bestellungen, die nur bestätigt, und fügen Sie Sie an der Unterseite des Ziel-sheet.
- zunächst vielen Dank für Ihre Zeit und Eingang.Zweitens, Sie sind auf den Punkt genau an der Komplexität. Der Ansatz der ganze thread wird nicht funktionieren, für was ich versuche zu tun, zumindest kann ich nicht denken Sie an einen Weg, es zu tun. Ich benutze noch den code unten ein weiteres (drittes Tabellenblatt 'in Arbeit'), sondern der wichtigste und entscheidende Unterschied ist, dass es keine Eingabe von Daten in das Ziel(Dritte) Blatt, so erfrischend und Sortierung auf die Eingabe von Daten wird nicht mixup Informationen gibt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, das ist es, was das arbeiten für mich jetzt, Ihr alle auf @simoco code:
Ich checke es für operative Konsistenz, aber der code funktioniert einwandfrei.
Kopiert es und fügt nur die Spalten von (meinem) Interesse, wo ich es brauche und sortiert dann eine Dynamik.
dies ist, was ich habe kommen mit einem komplett anderen Ansatz,
Ich wäre sehr dankbar, wenn Sie überprüfen könnten, es für die Fehlerbehandlung, oder ungültige Eingaben von Benutzern etc
(siehe Kommentare im code)
`
Worksheets(2).AutoFilter.Sort.SortFields.Add Key:=Range( _ "G10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal
. In diesem Fall werden alle Ihre benachbarten Spalten sortiert werden soll auch in der richtigen ReihenfolgeSieht es aus wie Sie müssen Sie lediglich kopieren, werden nur die Zeilen mit einem Wert in der "Confirmation Date" Spalte - wenn ich lese, das oben richtig.
Wenn das Blatt mit der täglichen updates wird als "Erste" und die daraus resultierende Platte mit nur die bestätigten Bestellungen ist die "Zweite", die folgenden sollten es tun...
Sub Makro1()
'
'Makro1 Makro
'
'
lastRow = 10 ' hier hart codiert; verwende die Technik, um wirkliche Wert.
End Sub