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

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


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
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

314 Forumthreads zu ähnlichen Themen


Halli Hallo,
ich habe eine kurze frage. und war geht es darum, dass die spalte a untersucht werden sollen. es sollen alle werte der tabelle (zeilen) kopiert werden, bis in der spalte a der wert 0 ist.
Im Folgenden habe ich eine Beispieldatei drangehangen. https://www.herber.de/bbs/user/...
Anzeige

Hallo zusammen,
ich möchte nur das Arbeitsblatt "Vorlage" über das Dialog "Speichern unter" speichern. Als Dateiname soll Name der aktive Datei_ + Weitergabe.xls vorgeschlagen werden.
Beispiel für Dateiname: Berechnungsblatt_2008_Weitergabe.xls
In der gespeicherte Datei sollen erstm...

Hallo!
Ich habe folgendes Problem:
über einen Commandbutton kopiert der User ein Blatt in eine neue Datei, die so dann gleich geschlossen werden soll. Hier erscheint dann der Dialog "Wollen Sie speichern? - ja - nein - abbrechen -". Ich hätte nun aber gern, dass gleich der Dialog "Speic...
Anzeige

Hallo,
suche eine Lösung für folgendes Szenario:
1)Nutzer mit Leseberechtigung öffnet ExcelTabelle.
2)Makro speichert aktuellen Benutzernamen in eine externe Datei.
3)Benutzer macht Änderungen an der Datei.
4)Durch klick auf einen Button in der Excel-Tabelle wird diese mit...

Hallo,
habe schon viel im Forum gesucht, komme aber mit meinem Problem nicht weiter.
habe eine Datei mit Namen z.b. test.xls
in Zelle b8 steht ein Datum, im Format TT.MM.YYYY zum Beispiel 01.03.2009
ich möchte per Makro die "Datei speichern unter" den alten Namen um das Datum de...

Hallo Leute, schönen Guten Morgen.
KAnn man folgenden Code so umdrehen, das der Inhalt der Zelle D4 vor dem Blattnamen abgespeichert wird,
ActiveWorkbook.SaveAs SavePath & "\" & ActiveSheet.Name & " " & ThisWorkbook.Sheets("Bestandsübersicht").Range("D4").Value & "....

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige