Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei "umspeichern" - VBA

Forumthread: Datei "umspeichern" - VBA

Datei "umspeichern" - VBA
21.09.2008 14:46:00
Wolfgang
Hallo,
mit untenstehendem Code werden Daten aus einer tmp-Datei importiert. Es wird immer die zuletzt generierte Datei angesprochen. Seit geraumer Zeit wird nun diese tmp-Datei in einem UTF-8-Format "geliefert", welches dazu führt, dass die Umlaute nicht sauber importiert werden. Nun kam mir die Idee, ob nicht eine Möglichkeit besteht, diese jeweilige Datei entweder neu zu speichern in ANSI oder direkt das Format von UTF in ANSI zu konvertieren. Wäre so etwas denkbar ? - Herzlichen Dank schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

Public Sub TestT()
Dim strUser As String, strPath As String, strhelp As String
' Dein Teil für den UserNamen
strUser = Environ("Username")
strUser = Trim$(Replace(strUser, "GST", ""))
' Zusammenbauen des Pfades aus Vorgabepfad und UserName
strPath = "C:\WINDOWS\Temp\" & strUser & "\Temp"
If Dir(strPath, vbDirectory) = "" Then
MsgBox "Das angegebene Verzeichnis existiert nicht!", vbCritical
Exit Sub
End If
Sheets("Daten").Activate
' Nun noch das TEXT; davor & Aufruf der Function die die neuste Tmp Datei als String zurückgibt. _
_
strhelp = FindNewestTemp(strPath)
If strhelp  "" Then
strPath = "TEXT;" & strhelp
Else
MsgBox "Es wurde keine TMP Datei im angegebenen Verzeichnis gefunden!", vbCritical
Exit Sub
End If
' Und nun nur noch importieren, fertig !!!
With ActiveSheet.QueryTables.Add(Connection:=strPath, Destination:=Range("A1"))
.Refresh
' ChDrive "C"
End With
End Sub



Public Function FindNewestTemp(strPath As String) As String
Dim strFile As String
Dim datNewestDate As Date
Dim myFileSystemObject, myFiles
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
For Each myFiles In myFileSystemObject.GetFolder(strPath).Files
If UCase(myFileSystemObject.GetExtensionName(strPath & myFiles.Name)) = "TMP" Then
If myFiles.DateCreated > datNewestDate Then
datNewestDate = myFiles.DateCreated
strFile = myFiles.Name
End If
End If
Next myFiles
If strFile  "" Then
FindNewestTemp = strPath & strFile
Else
FindNewestTemp = ""
End If
End Function


Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei "umspeichern" - VBA
22.09.2008 08:48:00
Jürgen
Hallo Wolfgang,
es sollte reichen, in dem Makro die Angabe des Zeichencodes hinzuzufügen:
' Und nun nur noch importieren, fertig !!!
With ActiveSheet.QueryTables.Add(Connection:=strPath, Destination:=Range("A1"))
.TextFilePlatform = -535 'steht für UTF-8
.Refresh
' ChDrive "C"
End With
Gruß, Jürgen
Anzeige
Danke Jürgen
23.09.2008 20:32:20
Wolfgang
Hallo Jürgen,
Danke für Deine Rückmeldung und Ausarbeitung. Ich habe versucht, Deinen Code umzusetzen irgendwie funktioniert das nicht - Fehlermeldung, Projekt (?) nicht vorhanden. - Zwischenzeitlich habe ich einen anderen Weg angedacht und versucht, ihn zu realisieren. Der sauberste und schnellste Weg wäre sicherlich dabei, die temp-Datei direkt im Ordner umzuwandeln oder im Hintergrund zu öffnen, um dann als ANSI wieder abzuspeichern. Das scheint aber wohl irgendwie nicht realisierbar zu sein. In dem Sinne nochmals herzlichen Dank und sorry, dass ich mich jetzt erst wieder zurückmelde.
Gruß - Wolfgang
Anzeige
AW: Danke Jürgen
24.09.2008 01:08:00
Jürgen
Hallo Wolfgang,
eigentlich habe nichts anderes getan als Deinem Code die Zeile
.TextFilePlatform = -535
hinzuzufügen. Das ist meiner Meinung nach auch der sauberste Weg - wozu die Dateien umständlich umformatieren, wenn man den Zeichencode beim Import angeben kann?!
Gruß, Jürgen
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige