09.03.2017, 17:41 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2017, 18:14 von Aritmatos.)
Hallo, ich habe da ein Problem, vielleicht kann mir jemand helfen. Ich habe eine Tabelle, in der sich folgende Einträge unregelmäßig wiederholen.
Spalte1) Kundennummer / Name / Artikel / Datum / etc
Spalte2) Information (als Text) diese Spalte kann auch leer sein, muss dennoch kopiert werden.
Spalte3) Weitere Information(Text) diese Spalte kann auch leer sein, muß dann aber nicht kopiert werden. Hier kann der nächste Kreislauf (siehe Spalte 1) beginnen.
Diese Liste wiederholt sich für jeden Kunden zwischen 0 und 12 Mal.
Der Geseamte Datensats kann recht groß sein, mit sehr vielen einträgen, die sich immer wie oben beschrieben aufbauen. Es gibt eine zweites Tabellenblatt in dem alle Kunden mit Kundennummer Alphabetisch sortiert sind. Ich muss nun jeden Monat aus der ersten Liste alle Einträge zu einem Kunden heraussuchen und Diese in einem extra Tabellenblatt welches die Kundennummer als Bezeichnung hat eintragen und ausdrucken.
Alledings kann es sein, das ein Kunde auch in einem Tabellenbereich eines anderen Kunden auftaucht, dann muss ich diesen Eintrag aus der ersten Liste rauslöschen und als Zusatz in der eigentlichen Kundenliste unter einem Bestimmten Textfeld einfügen. In diesen Bereich kommen alle Tabellen daten, die nicht in diesem Ersten bereich sind. Der erste Bereich wird durch eine feste Definition gekennzeichnet.
Mit einem Einfachen Svwereis oder über Index habe ich es nicht hinbekommen, da ich die Zweite und dritte Zeile nicht mitkopiert bekomme. vielleicht hat hier einer eine Idee.
Ich glaube das einfachste wär wenn ich nun einfach sagen könnte, dass er mir automatisch die nächste Zeile kopiert und die dritte nur wenn sie mit Inhalt gefüllt ist, jedoch bekomme ich es einfach nicht hin.
Vielleicht kennt auch einer eine VBA Lösung, wodurch ich in der Kundenliste nur eine Makierung setzen kann und dann Automatisch die Datenblätter erstellt werden. Das wäre die eleganteste Lösung.
Moin und Willkommen im Forum! Allerdings wird Dir meine Antwort nicht gefallen.
Zitat:Hallo, ich habe da ein Problem,
Stimmt! Dein einziges Problem ist der Aufbau der Datei! Schon mal mit Access gearbeitet? Es würde Dir Deine Anfrage gehörig um die Ohren hauen, weil … … ach, lies Dir dies doch einmal aufmerksam durch: https://de.wikipedia.org/wiki/Normalisie...Datenbank) (bis zur dritten Normalform kann auch Excel)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • Aritmatos
Mein Hinweis auf Access betraf "nur" den absolut ungeeigneten Aufbau der Datei. So etwas lässt sich problemlos mit Excel regeln, ABER:
Zitat:aber ich bekomme die Rohdaten als Excell Tabelle geliefert
Dann sprich mit dem "Lieferanten"! Du darfst ihm gerne mit Hinweis auf dieses Forum sagen, dass Excel eine Kalkulation ist, keinesfalls jedoch eine Abbildung eines karierten DIN A4-Blatts.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
11.03.2017, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2017, 15:40 von Rabe.)
Hi,
(09.03.2017, 18:57)RPP63 schrieb: Dann sprich mit dem "Lieferanten"! Du darfst ihm gerne mit Hinweis auf dieses Forum sagen, dass Excel eine Kalkulation ist, keinesfalls jedoch eine Abbildung eines karierten DIN A4-Blatts.
genau! So muß die Liste aussehen, dann ist es auch einfacher, die Ausgabe zu füllen: Monat
Erst mal: Spalte1??? Spalte1 ist A! lt Deiner Datei steht aber weder in A noch in Zeile 1 das, was Du aufzählst. Bitte übliche Terminologie genau beachten!
Das Gebietsschema für Mustermann ist im Blatt Monat 200, im Blatt Ausgabe 100 ???
Es wäre sinnvoll, die Gebietsschema-Nr in Kundenstamm!D:D festzuhalten. (oder dem Vorschlag von RPP3 zu folgen) sinnvollerweise sollten auch die anderen konstanten Angaben in dieser Liste (Kundenstamm) sein, dann wäre alles viel einfacher automatisierbar. (könnte man aus jedem einzelnen Ausgabe-Blatt auch erstmals per Makro rüberschreiben lassen, per Formel geht das nicht)
Deine Formel bezieht sich auf Spalten O und Y, beide leer. ???
Es geht sicher mit einem Makro, auch wenn der Aufbau alles andere als optimal ist. Willst Du das? Dann kläre obige Fragen!
12.03.2017, 16:52 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2017, 16:53 von WillWissen.)
Hi,
Zitat:Erst mal: Spalte1??? Spalte1 ist A!
bist du da sicher? Der Fragesteller beginnt mit seiner eigentlichen Tabelle in B:B, ergo ist das für ihn die Spalte 1. Versuche doch mal mittels Funktionen, wie z.B. den SVERWEIS den Bezug auf C:C dieser Mustertabelle zu lenken. Was glaubst du, welchen Spaltenindex du angeben musst?
ich sehe in der Tabelle Kundenstamm nur drei Sğalten: wo sind die anderen Daten die ausgefüllt werden müssen?? In welcher Spalte sind: Wohnort, Strasse, Tel. Nr, E-Mail?? mit VBA kann man keine Kanninchen aus dem Hut zaubenr!! Stehen die Daten evtl. in mehreren Gebieten, oder ist jedes Gebiet getrennt für sich??
13.03.2017, 12:06 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2017, 12:11 von Aritmatos.)
Hallo, erstmal Danke für die vielen Antworten.
Ich habe die Beispieltabelle nochmal überarbeite, hoffe es ist nun etwas klarer was ich meine.
Ich habe mit dem Gesprochen, der mir die Daten liefert, hier ist das Problem, dass er in der Darstellung nix ändern kann (will) wei es sehr aufwendig für ihn wäre. Sorry für die Formel.
Diese Formel geht etwas über die gesamtdaten hinaus, da es aber mehr werden können, habe ich mir einen kleinen Puffer von ca. 5000 Zeilen eingebaut. Hier wäre es das beste, wenn die zu durchlaufende Tabelle in der Zeilenanzahl variabel wäre. Das Problem was ich noch nicht gelöst habe, dass er mir alle Spalten mit der selben Kundennummer ausgibt. hier ist in der Formel noch ein Fehler, da ich den Bezug noch nicht sauber definieren konnte.
@Sverweis
Das Problem ist, dass der Sverweis nur auf den ersten Wert geht, der Sverweis war mein erster Gedanke aber ich habe es mit ihm nicht hinbekommen, zumal das Problem diese Einschübe von anderen Kunden ist.
@ Kundenstamm
Hier baue ich gerade eine Acess-Datenbank auf, damit wenigstens dass sauber ist. hier bekomme ich es mit einem Sverweis recht gut hin.
Aber zur angabe der Spalten: Zeile 4: Pers.Nr. (Persönliche Nummer) in Zukunft Kundennummer Zeile 5: Name Zeile 7: Vorname (Zeile 6 ist der evtl. Geburtsname. Der hat aber hier keine Bedeutung ist nur für die Buchhaltung wichtig. ebenso wie die Firmenbezeichnung (Fragt mich nicht warum es so sein soll ich weis es auch nicht. Glaube aber, da es nur für den Internen gebrauch ist, dass es hier für die anderen Abteilungen leichter ist, wenn sie sofort einen Ansprechpartner haben.) Zeile 8: Straße Zeile 9: Hausnummer Zeile 10: PLZ Zeile 11: Wohnort Zeile 12 oder 13: (12) Telefon; (13) Handy (Da es meistens nur eine Angabe gibt, muss immer auf die vorhandenen Zugegriffen werden, gibt es mehrere, sollen sie hinterinander stehen. ) Zeile 14: Email Zeile 2: Gebiet Zeile 3: Gebietsbezeichnung
Die Gesamten Angaben in der Accesdatenbank für einen Kunden umfassen fast 50 Eintragungen. Die hier beschriebnenen sind nur die für diese Tabelle relevanten.
Hoffe, ich konnte einige Unklarheiten beseitigen, wenn die Tabelle noch konkreter werden soll, muss ich nochmal daran.
anbei ein Erstentwurf um die Aufgabe zu lösen. Eine wichtige Frage ist ja, woher ich weiss welcher Kunde aufgelistet werden muss. Ich habe dafür eine dreispaltige ListBox eingefügt, weil ich davon ausgehe das diese Liste nach dem Drucken überschrieben werden kann. Ich hoffe ich liege da richtig?
Bitte das Programm zuerst in meiner Testdatei mit Originaldaten testen, weil ich nicht garantieren kann das alles auf Anhieb Fehlerfrei laufen wird. Ich hoffe das meine Idee die Aufgabe so zu lösen richtig ist.
Das Makro ist sehr einfach geschrieben, sollten die Spalten in der Kundenstamm Tabelle evtl. nicht stimmen kann man sie hier leicht von Hand aendern: Cells(2, 1) = KST.Cells(z, "A") ggf. für A,B,C,D einfach eine andere Spalte angeben!
msg Gast 123
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • Aritmatos