# Microsoft Office Application Help - Excel Help forum > Non English Excel >  > [SOLVED] "CSV Export für DHL"

## elgato74

Hallo

Ich arbeite an einer Lösung, die eine CSV Datei für DHL Easylog erstellt. Siehe Anlage. Die Übernahme von Empfängerdaten aus den Comments auf "Shiplist" hin zu den Feldern auf "CSV" klappt soweit ganz gut.

Jetzt habe ich das Problem, dass auch das Feld "Gewicht" ausgefüllt werden soll.

Hierzu folgender Ansatz: Auf "Shiplist" sind bereits Markierungen für das jeweilige Produkt vorhanden:

Produkt "1p" wiegt 3,2kg
Produkt "MF" wiegt 6,6kg
Produkt "3P" wiegt 7,2kg
Produkt "4er" wiegt 5,0kg

Das Modul "FillCSV" müsste also um diese Funktion erweitert werden, und dementsprechend das Gewicht erfassen und eintragen. Tricky: Teilweise bekommt ein Kunde halt zwei Produkte, hier müsste das Gewicht zusammenaddiert werden.

Für jede Hilfe bin ich dankbar!

LG Felix

----------


## HaHoBe

Hallo, Felix,

Du arbeitest bereits mit einer Schleife, um mehrere Pakete für das Feld "Referenz" zusammenzufassen. Um das Gewicht zu ermitteln, habe ich diese Schleife benutzt, um den Wert der Spalte (0 bei leer bzw. Wert der in der Zelle steht) per weiterer Schleife auszuwerten. Für die Gewichte ist zu Beginn ein weiteres Array eingerichtet worden, welches die Werte in der den Spalten entsprechenden Reihenfolge enthält. Daraus ergibt sich dann der folgende Ansatz:




```
Please Login or Register  to view this content.
```


Ciao,
Holger

----------


## elgato74

Hallo Holger,

Super, ganz große Klasse ! Funktioniert einwandfrei. Vielen Dank !!

Ich warte noch auf Rückmeldung vom Easylog-Mann der DHL, ob noch weitere Felder dynamisch ausgefüllt werden müssen. Ich befürchte, dass auch das Feld "SERVICE" ausgefüllt werden muss, wobei SERVICE für das jeweilige DHL Produkt steht, also entweder DHL-Paket National (Produkt-ID 101) oder Weltpaket Premium (Produkt-ID 5301). Hier müsste also jede Sendung nach DE eine 101 in das Feld Service bekommen, und jedes andere Paket ( egal ob nach AT, FR, UK, IT etc..) eine 5301.

Gruß, Felix

----------


## HaHoBe

Hallo, Felix,

diese Frage kann in der folgenden If-Funktion gelöst werden:



```
Please Login or Register  to view this content.
```


Ciao,
Holger

----------


## elgato74

Hallo Holger,

über den Kommentareintrag zu "Telefon" zu gehen, macht m.E. leider keinen Sinn, da nicht jeder Kunde eine Telefonnummer angibt. Besser wäre über das Länderkürzel, bzw. das Land. Allerdings wird das Länderkürzel erst weiter unten im Code geändert, z.B. von Deutschland zu DE, France zu FR usw...

Grüße, Felix

----------


## HaHoBe

Hallo, Felix,

dann so:



```
Please Login or Register  to view this content.
```


Ciao,
Holger

----------


## elgato74

WOW super Holger ! So ist's fein  :Smilie:  Kann ich mich mal erkenntlich zeigen ? Wir drucken seeeeeeeeeehr schöne Bilder auf Leinwand. Wenn Du mal ein tolles Foto hast, dann drucken wir es dir !

btw: ein bisschen fuxt es mich noch, dass ich die Adressen noch manuell aufbereiten muss. Das mit Hausnummer und Straße in nur einem Feld ist dir vielleicht aufgefallen, Easylog von DHL braucht hierfür keine zwei Felder, hier muss ich also nix aufbereiten. Aber die PLZ muss in einem eigenen Feld sein. Hier muss ich also den Kommentar verändern, dass PLZ eine eigene Reihe im Kommentar bekommt. Oder könnte man alles was nach "PLZ" aussieht abtrennen von der Stadt ? Schwierig nur bei UK, die netten Briten haben ja Buchstaben als PLZ...

----------


## HaHoBe

Hallo, Felix,

meiner Erinnerung nach war bei dem Datensatz aus Italien die PLZ in einer eigenen Reihe. Man könnte Split einsetzen, wenn die PLZ immer einen festen Block ohne Leerzeichen bilden würde (dann wäre das erste Element die PLZ) oder das erste gefundene Leerzeichen, um in Links und Teil bzw. Left und Mid aufzuteilen. 

Ciao,
Holger

----------


## elgato74

ja Split wäre toll, zumindest für die deutschen Adressen. Dann bräuchte ich die deutschen Adressen gar nicht mehr aufzubereiten. Nur  :Smilie:  wie säh der Code dafür aus ?

----------


## elgato74

oder Split im Sinne von: alles was eine Zahl ist = PLZ also ins Feld PLZ damit, alles was aus Buchstaben besteht ins Feld Stadt damit. Nur bei UK Adressen muss ich dann aufpassen

----------


## elgato74

nur dann haben deutsche Anschriften im Kommentar eine Zeile weniger, und dann funktioniert der Code nicht mehr  :Frown: 

Oder eben alle Kommentare müssten streng so aufgebaut sein:

Name
Strasse + Hausnummer ( in einem Feld )
PLZ + Stadt ( in zwei separaten Feldern )
Land
Telefonnummer ( optional )
Adresszusatz ( optional )

So sind standardmäßig meine Deutschen Adressen aufgebaut, d.h. diese müsste ich dann nicht mehr verändern :D

----------


## HaHoBe

Hallo, Felix,

zu viele Fragen in zu kurzer Zeit.

Beispiel für Aufteilung PLZ und Ort/Bundesland:



```
Please Login or Register  to view this content.
```


Und wenn ich mich an die Normalisierung von Datenbanken erinnere, gehören Angaben wie Postleitzahl und Ort sowieso nicht in ein Feld, sondern in getrennte Felder. Ggf. solltest Du die nicht vorhandenen Felder mit Leerzeichen auffüllen (aber ich würde die Felder wahrscheinlich auch einzeln aufführen).

Ciao,
Holger

----------


## elgato74

Hallo Holger,

sorry no rush !

Im Moment werden ja die Kommentare wie folgt ausgelesen:




```
Please Login or Register  to view this content.
```


usw...

Wie würde ich hier dein Split Befehl einbauen ? Ich bin leider bei VBA völlig überfordert. Ich hab mich vielleicht auch missverständlich ausgedrückt, in die Kommentare hau' ich ja auch nur die Adressen rein, wie ich sie von Ebay, Amazon, Paypal etc bekomme, per cut and paste. 

Hier eine typische Beispieladresse:

Maria Kollmannsberger
Kastanienstr. 6
85077 Manching Bayern
Deutschland
Telefon:017634913582

Wäre super wenn der o.g. Code in der Form geändert werden würde, dass ich dieses Format nicht mehr ändern müsste, und trotzdem die Felder alle so ausgefüllt werden, wie DHL Easylog das gerne hätte.

Grüße, Felix

----------


## elgato74

Hier das gesamte Workbook, wobei in den Kommentaren jeweils die Adressen in folgendem Format vorliegen

Name
Strasse + Nr
PLZ + Stadt
Land
Telefonnr ( optional )

Wie Du siehst, wird hier jetzt noch PLZ+Stadt in ein Feld auf dem CSV Sheet eingetragen. Jetzt müssten diese noch gesplittet werden.

Grüße, Felix

----------


## HaHoBe

Hallo, Felix,

nachdem ich mir die Beispielmappe angesehen habe, weiß ich auch, warum ich das Problem nicht richtig begreifen konnte, sind doch dort bereits alle Postleitzahlen als einzelne Zeilen aufgeführt.

Ich habe den Beispieldatensatz in eine neue Tabelle ab A1 eingefügt und verwende den folgenden Code:



```
Please Login or Register  to view this content.
```


Die Apostrophe werden hier durch die Verwendung von einem Text dargestellt und könnten unterbleiben, wenn wir die Angaben nur zur Darstellung eines Mitteilungsfensters benötigten. Da die Werte aber irgendwann in eine Zelle geschrieben werden, würde Excel hier die führenden Nullen verschlucken, was nicht passieren kann, wenn explizit die Verwendung des Textformates vorgegenen ist.

Den Text und Code für diesen Beitrag habe ich begonnen, bevor ich mitbekommen habe, dass Du eine weitere Mappe als Anhang eingefügt hast. Diese kann ich mir frühestens heute am späten Abend ansehen, denn jetzt bin ihc erst einmal "weg".

Ciao,
Holger

----------


## elgato74

OK! Bis später!

----------


## elgato74

Hallo Holger

Anbei der letzte Stand.

Läuft alles soweit gut, bis eben auf die PLZ / Stadt Trennung. Diese sind leider immer in einem gemeinsamen Feld, Spalte J. Gemeinerweise habe ich auch mal UK-Adressen mit aufgenommen, und auch italienische, die Ihre PLZ HINTER(!) den Ortsnamen schreiben.

Gruß, Felix

----------


## HaHoBe

Hallo, Felix,

anbei der Code, mit dem die Trennung zwischen PLZ und Ort vorgenommen wird, weiterhin wird vorsorglich Service eingetragen.




```
Please Login or Register  to view this content.
```


Zumindest für die deutschen Adressen stimmen die Angaben überein, für die letzten 3 muss ich mir noch etwas einfallen lassen - wenn denn die Augen etwas klarer und die Nase etwas freier ist.

Ciao,
Holger

----------


## elgato74

Hallo Holger,

ich empfehle Yxine und breatheright  :Smilie: 

About the code: awesome ! thank you  ! die Briten sind echt gemein mit Ihrem Buchstaben-ZIP. Und die Italiener mit der PLZ hinter dem Stadtnamen. Looking forward to a solution, if there is one.

Ich bastel gerade an einer Lösung für einen Adresszusatz, den ich dann einfach in die 6.Zeile des Kommentars eingeben würde:




```
Please Login or Register  to view this content.
```



Hat nur den Nachteil, dass ich immer ein A: vor den Adresszusatz im Kommentar eingeben muss. Hast Du eine Idee?

Grüße, Felix

----------


## HaHoBe

Hallo, Felix,

zur Zeit kann ich keine Komplettlösung anbieten. Da dies zur Zeit nur 2 Länder betrifft, würde ich beim Auslesen nach dem Ländernamen suchen und dann das betreffende Element anzeigen lassen mit der Frage, ob die PLZ das erste Feld ist. Ist es so, kann der Datensatz so übernommen werden; trifft dies nicht zu, wird das letzte Element als PLZ verwendet und der Rest als Ort. Dann kann man überlegen, ob man dies Lösunge in den Kommentar übernimmt und durch Kennzeichnung am Ende für weitere Anfragen herausnimmt.

Gruß,
Holger

----------


## elgato74

Hallo Holger, ok super, dennoch tausend Dank !!!!

----------

