Office: Beim öffnen einer CSV mittels VBA geht die Formatierung verloren

Helfe beim Thema Beim öffnen einer CSV mittels VBA geht die Formatierung verloren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Moin Ihr lieben, ich bin etwas erstaunt. Ich habe mir mal eine fette Lektüre über VBA geholt um mich etwas in diesem Punkt fortzubilden. Nun habe ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von joerg.winterstein, 3. Januar 2017.

  1. Beim öffnen einer CSV mittels VBA geht die Formatierung verloren


    Moin Ihr lieben,

    ich bin etwas erstaunt. Ich habe mir mal eine fette Lektüre über VBA geholt um mich etwas in diesem Punkt fortzubilden.

    Nun habe ich gerade mal getestet wie man die neuste Datei (csv) öffnet...
    Ist es normal das die ursprünglich Formatierung verloren geht?
    Ist das gewollt oder kann man das verhindern?

    Gruß Jörg

    :)
     
    joerg.winterstein, 3. Januar 2017
    #1
  2. CSV heisst Komma Separierte Werte. In Grunde eine einfache Text-Datei.
    Das Format geht also schon verloren, wenn die csv Datei erstellt wird.
    Du musst also anders herum denken und die importierte Tabelle per VBA nach Belieben gestalten.
     
    AndreaNoway, 4. Januar 2017
    #2
  3. Eine CSV ist eine Textdatei und enthält nur Plaintext, also einfach Text ohne alles wie Formatierung, Farbe und dgl.
     
  4. Beim öffnen einer CSV mittels VBA geht die Formatierung verloren

    Hallo Jörg,

    Excel interpretiert beim unspezifizierten Öffnen den Inhalt. So können Zahlenwerte z. B. als Datum / Uhrzeit interpretiert werden; Nachkommastellen werden nach landestypischer Schreibweise gelesen (Punkt oder Komma als Trenner) usw.

    Abhilfe:
    Entweder: Lies die csv als Textdatei ein (VB-Tec / Daten / Dateien / Einlesen - Beliebige Datei einlesen) und interprtiere die Daten dann im Code so, wie Du es für richtig erachtest
    oder: Nutze den Textimportassistenten von Excel und gib vor, welches Format für welche Spalte anzunehmen ist.

    Ein Makro mit dem Textimportassistenten (Makrorekorder!) sieht dann in etwa so aus:
    Code:
    Der rot markierte Teil gibt die Format der Spalten vor bzw. Dezimal- und Tausendertrenner

    Das ganze Thema "CSV-/Textdatei-Import" derart ausgiebig im Netz diskutiert, dass Du Dich nur mal ein bisschen umschauen musst.

    Grüße
    EarlFred
     
    EarlFred, 4. Januar 2017
    #4
  5. Moin Ihr lieben,

    ich habe mittlerweilen den ganzen Vormittag damit verbracht zu experimentieren und bin selber drauf gekommen, also wie man eine CSV im für mich richtigen Format öffnet.

    @EarlFred

    herzlichen Dank für deine Mühe, dein Lösungsansatz trifft es genauso wie ich es mir dachte.*dance

    Nun stehe ich vor einem Problem was meine Fähigkeiten bei weitem übersteigt und bräuchte da mal jemanden der mir da unter die Arme greifen kann. *confused.gif*

    Ich habe in mein Projekt Kasse einen Umsatzabgleich geplant,
    dazu soll eine CSV bzw. alle vorhanden CSV Datei(en) aus einem Ordner geöffnet,
    die 5 Spalten die im Tabellenblatt "Kontoumsätze" vorhanden sind importiert und welche ausschließlich aus dem Jahr sind, das im "Kassenübersicht" "D3" angebenen ist,
    anschließend die Umsätze "Sepa-Gutschrift" nach Datum der entsprechenden Person und dem dazugehörigen Monat zugeordnet werden.
    Es darf natürlich keine doppelten Einträge in "Kontoumsätze" geben.

    Im Moment habe ich dazu noch im 1 Tabellenblatt einen Button hinterlegt,
    dieses soll aber nachher beim öffnen der Kasse automatisch ablaufen.

    Mei ich hoffe mal, daß das jetzt nicht zu viel des guten und verständlich ist. *grins

    Oder soll ich dazu besser ein neues Thema erstellen?

    LG Jörg
     
    joerg.winterstein, 5. Januar 2017
    #5
  6. Hallo,

    nimm's mir nicht übel, aber: doch, ist es - vor allem für ein Forum, in dem kostenlos und freiwillig Hilfe angeboten wird.

    Und außerdem: Wenn es jetzt schon Dein Wissen übersteigt, kannst Du auch mit einer fertigen Lösung nichts anfangen, wenn sich auch nur eine Kleinigkeit ändert. Also: Selber machen macht schlau.

    BTW: Warum nimmt man nicht ein Datei-Format, das auf jedem Rechner standardmäßig unterstützt wird? Mein Rechner kann keine rar-Dateien öffnen.

    Grüße
    EarlFred
     
    EarlFred, 5. Januar 2017
    #6
  7. Moin EarlFred,

    sorry wenn sich mein Text etwas unhöflich anhörte, das war nicht so gemeint wie es vielleicht rüber kam. Natürlich kann jeder der hier Hilfe sucht sich glücklich schätzen über all die Hilfsbereitschaft die einem hier entgegengebracht wird und ich weiß daß das natürlich keine selbstverständlichkeit ist... Ich hatte heute Mittag nicht viel Zeit gehabt und den Text ohne großartig darüber nachzudenken getippt...

    Ich möchte mich bei allen die meinen Text ebenso als negativ oder unhöflich empfunden haben, aufrichtig entschuldigen.

    Zu dem anderen Teil...
    ja learning by doing ist schon der richtige Weg, ausser Frage.
    Aber ich lerne ebenso aus fertigen Dingen, in dem ich mit meinem Handbuch über VBA vorhandenes in Einzelteile.
    Ich habe hier in dem Buch schöne Dinge stehen, habe keine Ahnung wie man eine wahrscheinlich so komplexe Struktur zusammen baut.

    Mit dem Archiv... kannst Du eine Zip öffnen?
    Ich musste die beiden Dateien leider packen, da eine davon eine CSV ist und ich diese nicht einfach hochladen konnte.

    LG Jörg
     
    joerg.winterstein, 5. Januar 2017
    #7
  8. Beim öffnen einer CSV mittels VBA geht die Formatierung verloren

    "Ich lerne auch aus fertigen Dingen" kann man auch als "ich bin zu faul dazu" interpretieren.
    Ich kann Fred nur beipflichten. Das ist eine komplexere Aufgabe.
    Dennoch. Es sind die absoluten Basics, die man beherrschen muss.
    Es ist ein Unterschied, ob ich Daten erzeugen will oder ob vorhandene Daten "nur" an den richtigen Ort gestellt werden sollen.

    Fang doch einfach mal an. Nutze den Recorder, um zu sehen, was da eigentlich passiert. Dann kannst du anfangen, Fehlendes zu ergänzen. Mit einfachsten IF oder Schleifen.
    Bevor das nicht verstanden ist, ist das Makro wertlos, wenn es mal irgendwann nicht mehr das tut, was es soll und angepasst werden muss.

    Wenn du dabei bist und anstehst, helfen dir hier viele Leute innerhalb sehr kurzer Zeit. Willst du " nur aus Fertigen" lernen, musst du dir das Makro von einem Dienstleister kaufen.
     
    AndreaNoway, 5. Januar 2017
    #8
  9. Moin Andrea,

    ja klar kann man meine Art zu lernen auch als "Faulheit" interpretieren,
    was ich für mich aber klar verneinen muß. Ich sitze hier und habe meinen 949 Seiten dicken Wälzer vor mir und wühle mich durch Abschnitte. Das Buch zeigt einen schon sehr gut wie man was machen kann, aber nicht wie die Dinge in einen Zusammenhang bringt. Dazu scheint mir jedenfalls teils die richtige Phantasie zu fehlen.
    Und an der Stelle lerne ich aus "fertigen Sachen"... in dem ich Versuche das Gesamte zu zerlegen und versuche das für mich in den richtigen Einklang zu bringen. Ich bin im Programmieren nicht gerade das Genie, dafür gibt es andere Dinge die ich Dir (euch) am PC zeigen könnte die Ihr dann nicht mehr beherrschen werdet. Ebenso kann ich eine CNC gesteuerte Machine programieren, denn da gibt es klare Grenzen... Was kann die Maschine und was nicht. Bei VBA habe ich keine Ahnung, wo sind diese Grenzen und wir gehören die einzelen Dinge zusammen. Ok genug der Worte, es tut mir leid wenn hier anscheinend ein falscher Eindruck entsteht.

    Dann werde ich mal meine ursprüngliche Frage anders formulieren und versuchen den Weg weistestgehend selber zu finden.

    Wenn ich aus einer Datei ein Datum z.b. 01.12.2016 auslese und es in meiner Tabelle mit dem Namen "Dezember" hinterlegen will, muß ich es dann über einen String machen, oder als Text?

    Noch eine Frage...

    Kann man die ausgelesenen DATEN in eine Pivottabelle einfügen und wird die Spaltenlänge (Anzahl) dann automatisch angepaßt?

    LG Jörg
     
    joerg.winterstein, 5. Januar 2017
    #9
  10. Hallo Jörg,

    zuerst: Weder Deine Frage noch Deinen Ton erachte ich als unhöflich, wie kommst Du darauf?
    Allerdings erfordert die Beantwortung Deiner Frage ("Lastenheft") einen Aufwand, der von Helfern in einem freiwilligen / kostenlosen Forum (zumindest nicht von mir) nicht zu erwarten ist.
    Allein schon der Aufwand, sich durch die angearbeitete Mappe zu arbeiten, in der Massen für diese Aufgabe irrelevantes Zeug enthalten ist, ist mir zu hoch. Vielleicht wäre es sinnvoller gewesen, eine auf diese Aufgabe zugeschnittene Mappe zu erstellen?

    Ich finde keine Tabelle "Dezember". Ein String ist Text. Ich weiß nicht, was Du hier wissen willst. Willst Du wissen, wie Du das Blatt namens "Dezember" ansprichst oder wie Du ein Datum in eine Zelle einträgst oder wie Du den Monatsnamen aus einem Datumswert ausliest?

    Du hast im Blatt Kontoumsätze bereits eine intelligente Tabelle (Liste). Wenn Du die Daten hier einfügst, erweitert sich diese automatisch zeilenweise, sollte die Länge nicht ausreichen. Wenn Du in Deiner Pivot-Tabelle diese intelligente Tabelle als Grundlage nimmst, wird auch hier die Datenquelle entsprechend erweitert. Folge dazu mal den Links in meiner Signatur, die sich mit Pivot-Tabellen beschäftigen. Lass Dich von der alten Bezeichnung "Liste" nicht verwirren, die heißen jetzt eben "Tabellen".

    Wenn ich mir Deine restlichen Codes so anschauen: Du schaffst das auch alleine.

    Code:
    Grüße
    EarlFred
     
    EarlFred, 5. Januar 2017
    #10
  11. Nachtrag: Einlesen einer CSV, aufteilen, anaylsieren:

    Code:
    Die Frage, alle Dateien aus einem Ordner (ggf. mit Unterordnern) auszulesen, ist mit genügend Codebeispielen im Netz beantwortet.

    Grüße
    EarlFred
     
    EarlFred, 5. Januar 2017
    #11
  12. Moin EarlFred,

    ich habe die beiden Dateien so ausgewählt, damit man besser den Zusammenhang erkennt.

    Anscheinend habe ich das mit dem "Dezember" wohl schlecht erkärt.
    In den CSV Dateien stehen sowohl das Datum, die Überweisungsart, Begünstigter, der Verwendungszweck, als auch der Betrag.

    Diese für mich wichtigen 5 Spalten sollen in die Pivottabelle im Karteireiter "Kontoumsätze". Das wäre auch nicht das große Problem und das habe ich mittlerweile auch herausgefunden.

    Nun möchte ich aber wenn in der Spalte "B" z.b. "Sepa-Gutschrift" steht, das der dazu gehörige Name ausglesen wird und dann das Datum. Der nächste Schritt muß dann sein, die entsprechenden Daten der Zeile in die dazugehörigen Karteireiter (Namen der Mitglieder) zu exportieren.

    Der Knackpunkt für besteht darin:

    Das Datum aus Spalte A der ausgelesenen Zeile in den Monat "Januar, Februar,....." des Vereinsmitgliedes zu zuordnen.

    Wie bringt man so etwas in Einklang? Also wie bringt man VBA dazu z.b die Daten:

    10.12.2016; Sepa-Gutschrift; Mustermann, Max; Beitrag; 15;

    in den Karteireiter "Mustermann, Max" und der dazu gehörigen Zelle "C17" weil Monat "Dezember" einzutragen?


    Macht es mehr Sinn die Daten der CSV erst in den Karteireiter "Kontumsätze" zu bringen und danach den Übertrag zum Mitglied, oder geht so etwas auch in einem Rutsch?

    Gruß Jörg
     
    joerg.winterstein, 5. Januar 2017
    #12
  13. Beim öffnen einer CSV mittels VBA geht die Formatierung verloren

    Hallo Jörg,

    definiere "Sinn ergeben"...

    Hast Du Dir die beiden Mustercodes angesehen?
    Da demonstriere ich doch, wie ich (mag jeder anders machen, wenn er will) eine CSV einlesen und "zerstückeln" würde, um die Daten ggf. elementweise zu analysieren. Mit den gewonnenen Erkenntnissen kannst Du weitere Entscheidungen treffen. Die Methode ist auch bei großen Datenmengen mehr als performant, falls das von Interesse ist. Da ist das blattweise zerstückeln und zuordnen der Informationen entscheidender.

    Da Du anstelle des Monats-/Blattnamens eine Zeilennumer ansprechen willst (DAS muss man wissen, DAS gehört in Deine Frage, um sinnlose Arbeit für Helfer zu vermeiden), brauchst Du doch nur die Monatsnummer (Month(Datum)), um Dir daraus einen Offset zu ermitteln.

    Dass Du weißt, wie man ein Arbeitsblatt auswählt (nicht aktiviert), um dort in eine bestimmte Zelle etwas einzutragen, weißt Du, wenn ich mir Deine bisherigen Codes (so sie denn von Dir stammen) anschaue.

    Grüße
    EarlFred
     
    EarlFred, 5. Januar 2017
    #13
  14. Moin EarlFred,

    sorry bin unterwegs und hab das alles nur über Handy mitbekommen...
    Muß mich damit am WE beschäftigen, konnte also bis jetzt nur versuchen aus dem was ich daraus lesen konnte halbwegs schlau zu werden.

    Oh man... ich glaub ich muß mir wohl doch mal alle 949 Seite reinziehen. *biggrin.gif*

    Gruß Jörg
     
    joerg.winterstein, 6. Januar 2017
    #14
Thema:

Beim öffnen einer CSV mittels VBA geht die Formatierung verloren

Die Seite wird geladen...
  1. Beim öffnen einer CSV mittels VBA geht die Formatierung verloren - Similar Threads - öffnen CSV mittels

  2. Mehrere CSV-Dateien öffnen und in einer Tabelle einfügen

    in Microsoft Excel Hilfe
    Mehrere CSV-Dateien öffnen und in einer Tabelle einfügen: Vorweg: Ich habe dieselbe Frage vor ein paar Tagen auf www.office-loesungen.de gestellt und leider keine Antwort bekommen. Link dazu: http://www.*************************417147_0_0_asc.php Sollte...
  3. CSV Datei öffnen und mit Tab statt Komma als Trennzeichen speichern?

    in Microsoft Excel Hilfe
    CSV Datei öffnen und mit Tab statt Komma als Trennzeichen speichern?: Hallo Jungs und Mädels, ich habe ein Problem und zwar möchte ich eine CSV Datei verarbeiten welche Standardmässig mit Komma getrennt gespeichert ist. Soweit ist das ja kein Problem, nun hat die...
  4. CSV Dateien öffnen, Diagramm erstellen und als PDF speichern.

    in Microsoft Excel Hilfe
    CSV Dateien öffnen, Diagramm erstellen und als PDF speichern.: Hallo zusammen, ich möchte gerne CSV Dateien mit einem Makro öffnen, einige Daten kopieren, ein Diagramm erstellen und dann als PDF speichern. Ich habe das mal mit dem Recorder versucht. Das...
  5. Makro - externe Daten verarbeiten - Datei (csv) öffnen

    in Microsoft Excel Hilfe
    Makro - externe Daten verarbeiten - Datei (csv) öffnen: Hallo, ich fange gerade an mit Makros zu arbeiten und komme nun leider nicht weiter. Die Suche der bestehenden Threads hat zwar bereits einen Lösungsansatz geliefert - ich bekomme es leider...
  6. csv-Dateien in Excel öffnen und bearbeiten

    in Microsoft Excel Hilfe
    csv-Dateien in Excel öffnen und bearbeiten: Hallo, wie können csv-Dateien mit Excal 2003 geöffnet werden? Nach der Speicherung als xls-Datei müsste eine Weiterbearbeitung möglich sein. Danke für Tipps hbsuOH
  7. csv-Datei mit VBA öffnen - führende Nullen fehlen

    in Microsoft Excel Hilfe
    csv-Datei mit VBA öffnen - führende Nullen fehlen: Hallo, ich will eine csv Datei die mit Semikolon getrennt ist mit einem Makro öffnen. In dieser csv Datei befinden sich Zellen die mit Nullen beginnen zB.: 0005674;000000934 Wenn ich die Datei mit...
  8. 560 MB große csv Datei öffnen

    in Microsoft Excel Hilfe
    560 MB große csv Datei öffnen: Hallo zusammen, folgendes Problem: Wir haben hier auf der Arbeit eine csv Datei welche ca. 560 MB groß ist und vermutlich über 8 Millionen Zeilen besitzt. Gibt es eine Möglichkeit die mit...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden