Registriert seit: 18.10.2016
Version(en): 2016
01.11.2018, 02:25
(Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2018, 02:25 von n8lauscher.)
Hallo,
ich habe eine Excel-Datei, die aus verschiedenen verknüpften Arbeitsblättern besteht.
Wenn ich in Arbeitsblatt 1 etwas ändere, hat dies auch Auswirkungen auf Arbeitsblatt 2 und 3.
Da ich die Daten die ich dort verwalte als CSV-UTF8 benötige speichere ich diese momentan dann jeweils pro Arbeitsblatt manuell.
Aber - das hat jedesmal zur Folge, dass aus der geöffneten Datei auch immer die csv-Datei wird.
Ich möchte aber eingentlich beim Speichern der XLSX - Datei automatisch erwirken, dass die Excel-Datei gespeichert wird und das alle Arbeitsblätter der XLSX-Datei dann jeweils mit dem Namen des Arbeitsblattes als CSV-UTF8 gespeichert wird.
Wie kann man dies lösen?
Hat hier jemand eine Idee?
Würde mich freuen!
DANKE
Registriert seit: 12.04.2014
Version(en): Office 365
Klicken!Ausprobieren.
Freuen.
Wir sehen uns!
... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 18.10.2016
Version(en): 2016
also bei meinem google wird mir da keine Lösung für Angeboten.
Wie ich eine CSV in UTF speicher habe ich ja verstanden.
Es geht darum beim Speichern automatisch:
XLSX - speichern
+ alle Arbeitsblätter als UTF8 - CSV
Trotzdem Danke für Deine Mühe!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
für so einfachere Aufgaben reicht oft auch der Makrorekorder. Du kannst damit Deine manuellen Aktionen in einem Makro aufzeichnen und anschließend einem Button zuweisen. Dann geht das da snächste mal auf Knopfdruck. wenn doch was nicht passt, können wir den Code analysieren und ggf. anpassen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• n8lauscher
Registriert seit: 18.10.2016
Version(en): 2016
Hallo Zusammen,
ich habe jetzt ein Makro gebastelt.
Das funktioniert auch wunderbar.
Code:
Sub CSV_UTF8()
sheet_name = ActiveSheet.Name
Dim CSVBook As Workbook
Set CSVBook = Workbooks.Add
ThisWorkbook.Sheets(sheet_name).Copy Before:=CSVBook.Sheets(1)
CSVBook.SaveAs Filename:="D:\pfad\" & sheet_name & ".csv" _
, FileFormat:=xlCSVUTF8, CreateBackup:=False, local:=True
CSVBook.Close
Aber wie bekomme ich es jetzt hin, das erzeugte CSV-File direkt auf den FTP zu transferieneren?
Habe hierzu folgendes Skript gefunden:
Code:
Function FTP_Upload_File(QuellDatei As String, ZielDatei As String, FTPServer As String, FTPBenutzer As String, FTPKennwort As String) As Long
Dim FTP As Inet
Dim ExecString As String
On Local Error GoTo FuncExit
'-----------------------------------------------------------------------
' Verbindungsaufbau
'-----------------------------------------------------------------------
Set FTP = New Inet
With FTP
.Protocol = icFTP
.RemoteHost = FTPServer
.Username = FTPBenutzer
.Password = FTPKennwort
'-------------------------------------------------------------------
' Upload
'-------------------------------------------------------------------
ExecString = "put " & Chr(34) & QuellDatei & Chr(34) & " " & Chr(34) & ZielDatei & Chr(34)
.Execute .URL, ExecString
Do While .StillExecuting
DoEvents
Loop
End With
FuncExit:
FTP_Upload_File = FTP.ResponseCode
Set FTP = Nothing
End Function
Kann mir jemand helfen, wie ich dieses Skript so ändern kann, dass es die erzeugte Datei direkt via FTP hochladen kann?
Ich bitte um Rückmeldung.
DANKE
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
im ersten Teil fehlt eventuell etwas Code? Da ist kein End Sub dabei,
Hast Du den Aufruf der Funktion schon hinbekommen und es hapert nur in der Function oder klemmt es schon beim Aufruf?
Da es sich um eine Funktion handelt, musst Du sie im Prinzip so aufrufen:
result=FTP_Upload_File(…)
und die darin enthaltenen Parameter mitgeben.
Beim ftp gibst Du lediglich die Namen der Dateien mit. Damit es funktioniert, musst Du aber ggf. noch das lokale und das Zielverzeichnis wechseln - lokal mit lcd und remote reicht cd.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
noch ein Hinweis:
Zitat:Damit es funktioniert, musst Du aber ggf. noch das lokale und das Zielverzeichnis wechseln - lokal mit lcd und remote reicht cd.
Den Verzeichniswechsel mit lcd und cd musst Du in der Funktion programmieren - hier sind die ftp-Kommandos gemeint.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 18.10.2016
Version(en): 2016
Guten Sonntag,
ich komme irgend wie nicht weiter.
Ich habe leider nicht verstanden, wie ich die Funktion denn dann zum speichern nutzen kann?
Wie muss die Funktion aufgerufen werden und wie lautet der Übergabe wert?
Ich bitte um Rückmeldung.
DANKE
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
hallöchen,
erst mal ein Teil vom Aufruf:
Dim Result as Long
result=FTP_Upload_File(sheet_name & ".csv", sheet_name & ".csv", Server, User, Passwort)
Server, User und Passwort musst Du natürlich mit den passenden Daten programmieren - die kenn ich ja nicht

In der Funktion dann eventuell noch die Sache mit em cd und lcd, schaue aber erst mal, was mit dem Aufruf passiert ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 29.09.2015
Version(en): 2030,5
Im Saveas dialogbox gibt es Raum für FTP sites.
Dann kannst du speichern wie z.B.
PHP-Code:
Thisworkbook.saveas ftp://www.snb.vba.eu/bestanden/beispiel.csv", xlCSVUTF8