24.01.2021, 21:14
Alles funktioniert noch nicht. Die Profile muss ich noch anpassen. Da ist noch einiges zu tun.
![]() Forum des Excel-Verein 2015 e.V. |
Das Clever-Excel-Forum-Treffen
findet vom 19.09. - 21.09.2025 in Bad Arolsen statt. Zu den Infos kommt Ihr oben über den Link. |
VBAHTML auf 64bit-Office
|
24.01.2021, 21:14
Alles funktioniert noch nicht. Die Profile muss ich noch anpassen. Da ist noch einiges zu tun.
"OPENFILENAME" scheint in der 64-bit-Version nicht zu laufen. Es erscheint weder der Dialog noch eine Fehlermeldung. Egal in welcher Datei der Code steht. Der Code rennt durch (auch die vielen Beispielcodes aus dem Internet). Kennt jemand dieses Problem und eine Lösung?
25.01.2021, 09:46
Hallo Rene,
der OpenFileName funktioniert auch unter 64Bit. Hatte erst vor kurzem hier ein Beispiel gepostet. https://www.clever-excel-forum.de/Thread...#pid220868 Aber es ist ein Detail zu beachten, für dessen Herausfindung ich damals auch länger gebraucht hatte. Die StruktureSize-Angabe muss mit LENB() angegeben werden. .lStructSize = LenB(SpeichernAls) Habe das jetzt in Deinem Tool nicht getestet, aber probiere es mal aus. Viele Grüße Karl-Heinz
25.01.2021, 10:59
Danke! Jetzt erscheint der Dialog. Aber jetzt kracht es bei "UTFOutput", keine Ahnung weshalb.
25.01.2021, 12:02
Versuche es mit:
Code: Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ( _ ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As LongPtr, _ ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, _ ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As LongPtr) As Long Das passt zu Deiner Sub. Obwohl in der Wn64-Declareliste ByVal lpWideCharStr As String steht, ist für Deine Sub m.E. ByVal lpWideCharStr As LongPtr angesagt. viele Grüße Karl-Heinz
25.01.2021, 12:20
Danke! Das probiere ich dann später aus. Aber typisch MS, nicht mal eine vernünftige Fehlermeldung.
![]()
25.01.2021, 13:10
Eben getestet.Stürzt immernoch ab.
25.01.2021, 14:04
Ich hab ein meiner Bastelkiste, eine ähnliche, aber leicht abweichende Variante.
Kannst Du ja mal testen, ob die bei Dir durchläuft und auch das gewünschte Ergebnis bringt. Ansonsten bin ich jetzt nicht der Fachmann für diese Funktion. Code: Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ( _ ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As LongPtr, _ ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, _ ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As LongPtr) As Long Sub UTF8Output(Datei As String, T As String, Optional BOM As Boolean = False) Dim tmp As String, l As Long, FF As Integer Dim tt As String If Len(Datei) = 0 Or Len(T) = 0 Then Exit Sub l = WideCharToMultiByte(65001, 0, StrPtr(T), -1, 0, 0, 0, 0) 'Anzahl Zeichen ermitteln tmp = Space$(l) WideCharToMultiByte 65001, 0, StrPtr(T), -1, tmp, l, 0, 0 If Dir$(Datei) <> "" Then Kill Datei FF = FreeFile Open Datei For Binary As #FF Put #FF, , tmp Close #FF End Sub Sub Test() Dim T As String T = "düses ist än nöier Teßt" UTF8Output "C:\Users\voltm\Desktop\UTFTest.txt", T End Sub _________
viele Grüße Karl-Heinz
Das funktioniert. Allerdings wird ein "White Space" eingefügt, welches in Notepad++ als "Null" mit schwarzem Hintergrund angezeigt wird. Merkwürdiger Weise hat mein Code in einer separaten Datei funktioniert, allerdings mit lauter "Null" mit schwarzem Hintergrund, also vollkommen falscher Inhalt.
Und damit hat sich auch das FTP-Problem gelöst (musste ja schiefgehen wenn keine Datei vorhanden ist :blus: ).
25.01.2021, 17:15
Die Word-Version habe ich eben auch angepasst. Funktioniert bei mir. https://www.rholtz-office.de/counters/ge...php?id=305
|
|