Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Beim speichern von XLSX, automatisch auch speichern aller Arbeitsblätter als CSV-UTF8
#1
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
Antworten Top
#2
Klicken!
Ausprobieren.
Freuen.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
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!
Antworten Top
#4
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:
  • n8lauscher
Antworten Top
#5
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
Antworten Top
#6
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)
Antworten Top
#7
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)
Antworten Top
#8
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
Antworten Top
#9
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 Wink



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)
Antworten Top
#10
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 
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste