Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Xls to CSV mit makro

Frage Entwicklung VB for Applications

Mitglied: aiwa002

aiwa002 (Level 1) - Jetzt verbinden

29.09.2011, aktualisiert 22:14 Uhr, 9458 Aufrufe, 2 Kommentare

Hallo,

ich muss eine Excel Datei automatisch per Batch Job in eine CSV Datei umwandeln.
Natürlich das Ganze voll automatisch.
Das ganze soll über ein Makro in Excel umgesetz werden.

Hierzu habe ich bereits zwei Möglichkeiten mit Problemen

1. Möglichkeit

Problem:
Leider werden hier als Trennzeichne "," verwendet.
Es werden jedoch ";" als Trennzeichen benötigt!
01.
Private Sub Workbook_Open() 
02.
    ChDir "c:\temp" 
03.
    Workbooks.Open Filename:="c:\temp\test.xls" 
04.
    ActiveWorkbook.SaveAs Filename:="c:\temp\test.csv", _ 
05.
    FileFormat:=xlCSV, CreateBackup:=False 
06.
End Sub

2. Möglichkeit

Problem:
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
01.
Sub Sheet_Nach_CSVDatei() 
02.
'hierbei bleibt die Formatierung der Zellen so wie sie angezeigt wird. 
03.
'Es muss alles so formatiert sein wie es später In der CSV sein soll. 
04.
Dim vntFileName As Variant 
05.
Dim lngFn As Long 
06.
Dim rngRow As Excel.Range 
07.
Dim rngCell As Excel.Range 
08.
Dim strDelimiter As String 
09.
Dim strText As String 
10.
Dim strTextCell As String 
11.
Dim bolErsteSpalte As Boolean 
12.
Dim rngColumn As Excel.Range 
13.
Dim wksQuelle As Excel.Worksheet 
14.
 
15.
strDelimiter = ";" 'deutsches CSV-Format: ";", Englishes CSV-Format: "," 
16.
 
17.
vntFileName = Application.GetSaveAsFilename("Test.csv", _ 
18.
    FileFilter:="CSV-File (*.csv),*.csv") 
19.
If vntFileName = False Then Exit Sub 
20.
 
21.
Set wksQuelle = ActiveWorkbook.Worksheets("Tabelle1")  'Beispiel oder: = ActiveSheet 
22.
 
23.
lngFn = FreeFile 
24.
Open vntFileName For Output As lngFn 
25.
 For Each rngRow In wksQuelle.UsedRange.Rows  
26.
  strText = "" 
27.
  bolErsteSpalte = True 
28.
  For Each rngCell In rngRow.Columns 
29.
   strTextCell = rngCell.Text 'Text! inclusive dem NumberFormat der Zelle 
30.
   If InStr(1, strTextCell, strDelimiter, 0) Then '## wenn alle Zellen mit " " eingeschlossen werden sollen zeile auskommentieren 
31.
    'bewirkt das Werte die den Delimiter enthalten (was eigentlich nicht sein sollte) mit " " eingeschlossen werden 
32.
    strTextCell = Chr(34) & strTextCell & Chr(34) 
33.
   End If '## 
34.
   If bolErsteSpalte Then 
35.
    strText = strTextCell 
36.
    bolErsteSpalte = False 
37.
   Else 
38.
    strText = strText & strDelimiter & strTextCell 
39.
   End If 
40.
  Next 
41.
  Print #lngFn, strText 
42.
 Next 
43.
Close lngFn 
44.
  
45.
End Sub
Ich hoffe ihr könnt mir hier weiterhelfen!

Gruß
aiwa002

[Edit Biber] Zeilennummer drancodeformatiert. [/Edit]
Mitglied: bastla
29.09.2011 um 11:43 Uhr
Hallo aiwa002!
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
Dann ersetze einfach die entsprechende Stelle im Code (ich hätte ja die Zeilennummer(n) angegeben, wenn Du eine passende Formatierung verwendet hättest) durch
vntFileName = "c:\temp\test.csv"
Grüße
bastla
Bitte warten ..
Mitglied: aiwa002
29.09.2011 um 11:55 Uhr
Hat super geklappt, Danke!

Kann manchmal so einfach sein
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...