Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

csvDatei öffnen

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csvDatei öffnen
17.10.2005 09:44:38
bst
Morgen Korl,
im einfachsten Fall so:
Option Explicit

Sub ReadCSVFile()
Dim fname
Dim csv As CSVFile
fname = Application.GetOpenFilename("CSV-Dateien,*.csv,Alle Dateien,*.*")
If fname = False Then Exit Sub
Set csv = New CSVFile
csv.Read ActiveSheet.Range("A1"), CStr(fname)
End Sub

Wenn Du die eingelesenen Felder nicht automatisch in Text umwandeln möchtest, sondern
auf der zuvor festgelegten Formatierung belassen möchtest, nimm vor dem csv.Read noch
sowas:
csv.UseItem = csvUseValue
Dir ist schon klar, daß sich dieses Teil noch im Entwicklungsstadium befindet ?
cu, Bernd
Anzeige
AW: csvDatei öffnen
17.10.2005 09:58:11
Korl
Hallo Bernd,
Danke für Deine schnelle Antwort. Mir ist schon klar, daß dieses Teil noch im Entwicklungsstadium ist. Ob ich es endgültig nehmen werde weis ich noch nicht, möchte halt nur einen Weg finden die "" aus den Zellen los zu werden.
Dieses csv.UseItem = csvUseValue soll ich das im vorhandenen "Sub ReadfromCSVSimple(fname As String, Optional FS As String = ";")" einbauen oder wo sollte ich damit abbleiben?
gruß Korl
AW: csvDatei öffnen
17.10.2005 10:47:06
bst
Hi Korl,
Nein. Vergiß das ReadfromCSVSimple wenn Du CSV-Dateien mit Anführungzeichen um die Werte drumrum einlesen möchtest. Das geht damit ganz einfach nicht. (Deshalb auch das 'Simple'.)
Ich meinte das Teil der letzten Mail bzw. sowas wie unten:
Das reicht vollkommen aus, wenn Du das Klassenmodul benutzt.
Siehe auch hier: https://www.herber.de/bbs/user/27550.xls
cu, Bernd
--
Option Explicit

Sub ReadCSVFile()
Dim fname
Dim csv As CSVFile
fname = Application.GetOpenFilename("CSV-Dateien,*.csv,Alle Dateien,*.*")
If fname = False Then Exit Sub
Set csv = New CSVFile
csv.UseItem = csvUseValue
csv.Read ActiveSheet.Range("A1"), CStr(fname)
End Sub

Anzeige
AW: csvDatei öffnen
17.10.2005 10:44:59
Korl
Hallo Bernd,
wenn man lesen kann... ist man doch im Vorteil ;-)
Mein Code sieht jetzt so aus:

Sub ReadCSVFile()
Dim wksE As Worksheet
Dim x As String
Dim Pfad As String, fname As String, strFolders As String
Dim csv As CSVFile
Set wksE = Worksheets("Einlesen")
Pfad = wksE.Range("K32")
fname = Application.GetOpenFilename("CSV-Dateien,*.csv,Alle Dateien,*.*")
ChDrive Left$(Pfad, 1)
ChDir Pfad
If fname = "Falsch" Then Exit Sub
Set csv = New CSVFile
csv.UseItem = csvUseValue
csv.Read ActiveSheet.Range("A1"), CStr(fname)
'LeseFunktion aufrufen
'ReadfromCSVSimple CStr(fname)
End Sub

Tja, die "" sind weg.
Was kann mit dem Einlesen nach dieser Methode noch passieren?
Gruß Korl
Anzeige
AW: csvDatei öffnen
17.10.2005 10:56:53
bst
Hi Korl,
&gt Was kann mit dem Einlesen nach dieser Methode noch passieren?
Zu viele Spalten und/oder zu viele Zeilen werden nicht überprüft, VBA läuft einfach in einen Fehler.
Wenn Du "csvUseValue" benutzt kann es Dir passieren daß Excel Werte anders interprätiert als Dir lieb ist. Also z.B. 'US-Zahlen wie 1.2' in ein Datum umwandelt. Texte die mit = oder + anfangen werden als Formel interprätiert usw,...
cu, Bernd
AW: csvDatei öffnen
17.10.2005 11:02:21
Korl
Hallo Bernd,
also muß ich vorher die CSV-Dateien umwandeln in Text-Dateien und dann einlesen?
Läßt sich das auch mittels Code erledigen, den man dann wiederum vor dem Einlesen - Code schaltet?
Oder muß ich jede CSV-Datei manuel umwandeln.
Gruß Korl
Anzeige
AW: csvDatei öffnen
17.10.2005 11:20:34
bst
Hi Korl,
Das weiß ich nicht, da ich Deine CSV-Datei nicht kenne :-)
Die Routine von mir liest - OHNE csvUseItem = csvUseValue - die einzelnen Werte schon
richtig ein, liefert aber absichtlich alles als reinen Text. Umformatieren mußt Du die Spalten danach selber. Woher soll man/VBA auch wissen was z.B. ein "1.2" in einem Feld einer Datei von 2002 bedeuten soll, den 1.2.2002, den 1.2.2006 oder halt 1 Komma 2 oder vielleicht doch Kapitel 1 Abschnitt 2 ?
Alternativ kannst Du auch "csvUseItem = csvUseValue" benutzen. Dann überlasse ich die
Interprätion einfach Excel. Das heißt für Dich, daß Du u.U. ZUVOR die Spalten korrekt formatiert haben mußt, damit eben kein Murks dabei herauskommst.
cu, Bernd
Anzeige
AW: csvDatei öffnen
17.10.2005 11:50:29
Korl
Hallo Bernd,
was Du schreibst ist mir schon einleuchtend, ich meine einen anderen Weg.
Die CSV-Dateien im Datei-Explorer das Format in "TXT" umwandeln und dann einlesen.
Damit werden zwar die Umlaute nicht ordentlich erkannt aber das wäre mir dann egal.
Kann man diesen Vorgang mit einem Makro erstellen?
Gruß Korl
AW: csvDatei öffnen
17.10.2005 12:24:37
bst
Hi Korl,
wir reden irgendwie aneinander vorbei ...
Eine CSV-Datei ist bereits eine Textdatei. Man brauchst sie nicht erst zu wandeln.
Einzig Excel (versionsabhängig!) hält CSV-Dateien für was Besonderes und erwartet u.U. beim Öffnen 'amerikanische' Trennzeichen. Bei 'normalen Textdateien' kommt hier halt der Assi und man kann sich die gewünschten Einstellungen heraussuchen.
Wenn Du denn mit dem Einlesen von 'normalen Textdateien' zurecht kommst (Warum hast Du denn da plötzlich ein Umlautproblem ?) mach's doch einfach so:
- Benenne die Datei um von .CSV in .TXT
- Lese sie ein.
Laß beim 2. Schritt den Rekorder mitlaufen und gut.
Siehe auch im alten Thread meine allererste Antwort hierzu:
https://www.herber.de/index.html?https://www.herber.de/forum/archiv/676to680/t679282.htm
cu, Bernd
Anzeige
AW: csvDatei öffnen
17.10.2005 15:31:51
Korl
Hallo Bernd,
entschuldige bitte, das ich mich ein wenig dusselig angestellt habe.
>>Siehe auch im alten Thread meine allererste Antwort hierzu:
https://www.herber.de/index.html?https://www.herber.de/forum/archiv/676to680/t679282.htm Ich bin von Anfang an mitgegangen und hatte die selben Probleme wie der Andreas.
Ich werde Deinen funktionierten Code benutzen und in Online-Excel die Entwicklung des Klassenmoduls beobachten.
Bernd habt Dank für Deine Geduld, Mühe und Zeit die Du mir geopfert hast.
Schöne Grüße aus Mecklenburg
Gruß Korl
Anzeige
AW: csvDatei öffnen
18.10.2005 07:17:24
bst
Morgen Korl,
Bitteschön.
Schöne Grüße aus dem Schwabenländle,
Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige