Hallo alle zusammen, ich bin neu bei euch im Forum und sitze hier für meine Verhältnisse vor einer sehr großen Excel Herausforderung und ich hoffe es kann mir hier jemand behilflich sein. Als erstes sollen alle Datensätze mit den gleichen Nummern in Spalte A jeweils in ein neues Tabellenblatt eingefügt werden. Als zweites sollen in allen neuen Tabellenblättern jeweils die Lieferscheinnummer Spalte D mit den gleichen Kundennummer in Spalte E und gleicher Name in Spalte F in eine Zelle untereinander aufgeführt werden. Ich möchte also jeweils nur noch eine Spalte mit Datensatz haben wo alle Auftragsnummer in der Zelle erscheinen. Über eure Hilfe würde ich mich sehr freuen! Beste Grüße luxe77
Hallo Reiko, wie viele unterschiedliche unterschiedliche Tabellenblätter werden das denn ungefähr... Übrigens in deiner Beispieldatei stehen keine Nummern in Spalte A...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Ich benötige diese Tabelle um die Daten auf Scanner zu laden. Das bedeutet das in Spalte A die Tour Nummer stehen ( LKW und von SE1/ST1 bis SE7/ST7) wobei die SE und ST Bezeichnungen jeweils zusammen zu den Touren 1-7 gehören.
Es sollte dann so aussehen wie im Anhang. Nur das dann noch jeweils die Touren Nummer in Spalte A jeweils in ein Tabellenblatt stehen
soll das nur eine einmalige Aktion werden? Wie werden denn die Daten eingegeben? Kann man da nicht gleich einen Riegel vorschieben? Die beiden untereinander stehenden Zahlen könnte man doch gleich so eingeben? Ansonsten bräuchte man sicher ein Makro, um das zu realisieren. Sind denn Makros erlaubt und erwünscht? Brauchst Du unbedingt mehrere statische Tabellenblätter oder würde auch ein dynamisches gehen (z.B. Pivottabelle), welches Du per Auswahl füllst?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
17.03.2018, 19:37 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2018, 19:37 von luxe77.)
Hallo und vielen Dank für Dein Interesse an meinem Problem. Ich bekomme diese Datei jeden Abend von meinem Auftraggeber und muss die Daten dann auf die Scanner laden. Für die einzelnen Touren könnte auch manuell Filter setzen also müssen nicht zwingend Tabellenblätter angelegt werden. Aufgrund der Vorgabe des Auftraggebers möchte ich dann gerne per Knopfdruck die Auftragsnummer die zur gleiche Zustell Adresse gehen in einer Zelle haben, damit der Zusteller nur einen Datensatz unterschreiben lassen muss.
Da ich jede Tour einzeln auf die Scanner laden wären automatisch generierte Tabellenblätter natürlich von Vorteil.
hier wäre mal ein erster Ansatz. Der Code erzeugt aus den unbearbeiteten Daten die bearbeiteten - setzt sie aber ab A30 ein und noch nicht auf ein neues Blatt - zwecks Kontrolle. Ich habe hier den Quellbereich fest auf die 14 Zeilen programmiert. Ich habe auch nicht sortiert, da die Daten schon sortiert sind. Sortiert wäre die Voraussetzung, dass es funktioniert.
Wenn da so passt könnte man den nächsten Step programmieren und die Tabellenblätter erzeugen. Eventuell kannst Du aber mal für eine Kundennummer so ein Blatt erstellen und den Tabellenausschntt posten. Bei Deiner Beschreibung könnte man denken, alle Daten einer Zeile sollen in eine Zelle rein?
Deine letzte Zusammenfassung im Beispiel stimmt übrigens nicht - da sind doch zwei Kundennummern!
Code:
Sub Ansatz_1() 'Variablendeklarationen 'Variant Dim arrSource, arrTarget 'Integer Dim iCnt1%, iCnt2%, iCnt3% 'Quelldaten uebernehmen arrSource = Tabelle1.Range("A2:J15") 'Anzahl unterschiedlicher Eintraege ermitteln sumString = "=SUMPRODUCT((E2:E15<>"""")/COUNTIF(E2:E15,E2:E15))" ges = Application.Evaluate(sumString) 'Zielarray dimensionieren ReDim arrTarget(1 To ges, 1 To UBound(arrSource, 2)) 'ersten Datensatz uebernehmen 'Schleife ueber alle Felder des ersten Datensatzes For iCnt1 = 1 To UBound(arrSource, 2) 'Feldinhalt uebernehmen arrTarget(1, iCnt1) = arrSource(1, iCnt1) 'Ende Schleife ueber alle Felder des ersten Datensatzes Next iCnt3 = 1 'folgende Datensaetze uebernehmen 'Schleife ueber alle Datensaetze ab DS 2 For iCnt2 = 2 To UBound(arrSource, 1) 'Feldinhalt bei gleicher Kd Nr zusammenfassen If arrSource(iCnt2, 5) = arrTarget(iCnt3, 5) Then arrTarget(iCnt3, 4) = arrTarget(iCnt3, 4) & Chr(10) & arrSource(iCnt2, 4) 'oder bei unterschiedlichem Inhalt anfuegen Else 'Arrayindex fuer Ziel hochsetzen iCnt3 = iCnt3 + 1 'Schleife ueber alle Felder des Datensatzes For iCnt1 = 1 To UBound(arrSource, 2) 'Feldinhalt uebernehmen arrTarget(iCnt3, iCnt1) = arrSource(iCnt2, iCnt1) 'Ende Schleife ueber alle Felder des Datensatzes Next 'Ende Feldinhalt bei gleicher Kd Nr zusammenfassen End If 'Ende Schleife ueber alle Datensaetze ab DS 2 Next 'Daten im Blatt ablegen Range("A30").Resize(UBound(arrTarget, 1), UBound(arrTarget, 2)) = arrTarget End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
entschuldige das ich mich erst jetzt melde, aber ich eine menge um die Ohren. Ich habe es ausprobiert und den Befehl von A30 auf A2 gesetzt. Hat soweit echt super geklappt aber allerdings nur bis Spalte A8 und ab da leider nicht weiter.