Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Blatt als CSV speichern und zurück
10.03.2005 02:14:12
MichaV
Guten Morgen,
wäre schön, wenn mir jemand auf die Sprünge helfen könnte:
Ich möchte ein Tabellenblatt als csv- exportieren. Dazu speichere ich es per Button- Klick folgendem Code. Durch SaveAs wird die FileFormat- Eigenschaft auf xlCSV gesetzt. Ich möchte aber xlWorkbookNormal beibehalten, weil der Benutzer nach weiterer Arbeit die Mappe als xls speichern soll. Da FileFormat aber schreibgeschützt ist fällt mir nichts besseres ein, als noch einmal zu speichern, aber als xlWorkbookNormal.


      
Private Sub CommandButton1_Click()
Dim strAlterName As String
strAlterName = Me.Name 
'Blattnamen merken
ChDrive ActiveWorkbook.Path 'Arbeitsverzeichnis auf Verzeichnis, in dem Excel- Datei liegt
ChDir ActiveWorkbook.Path
On Error GoTo fehler
ActiveWorkbook.SaveAs FileFormat:=xlCSV, CreateBackup:=
False
   
Sheets(2).Name = strAlterName 
'alten Namen wiederherstellen, weil dieser durch Speichern als CSV geändert

ActiveWorkbook.SaveAs FileFormat:=xlWorkbookNormal 
'nur, um das Workbook wieder als xls zu kriegen
Exit Sub
fehler:
If Err Then MsgBox "Datei wurde nicht gespeichert"
Sheets(2).Name = strAlterName
End Sub 


Funktionieren tut das schon, aber ich finds ein bischen umständlich.
Wie krieg ich mein Blatt als csv exportiert, ohne die zusätzliche Speicherung als xlWorkbookNormal?
Vielen Dank für Eure Hilfe.
Micha

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt als CSV speichern und zurück
10.03.2005 06:09:00
Ramses
Hallo
Wenn du CSV haben willst, dann hast du CSV FileFormat :-)
Warum verwendest du nicht
ActiveWorkbook.SaveCopyAs
Gruss Rainer
AW: Blatt als CSV speichern und zurück
10.03.2005 08:02:33
MichaV
Hi Ramses,
weil bei ActiveWorkbook.SaveCopyAs FileFormat:=xlCSV, CreateBackup:=False die Fehlermeldung "Benanntes Argument nicht gefunden" kommt. Ist ja auch -lt. VBA- Hilfe - nicht vorgesehen.
Gruß- Micha
AW: Blatt als CSV speichern und zurück
10.03.2005 08:58:06
Heinz
Hallo Micha,
hier ein Besipiel:

Sub Write_Csv()
F = FreeFile(0)
fname = InputBox("Enter the filename with Path:", _
"Please Enter Output File Name:")
MsgBox "File Selected is: " & fname
If fname <> False Then
Open fname For Output As #F
Set Rng = ActiveCell.CurrentRegion
Debug.Print Rng.Address
FCol = Rng.Columns(1).Column
LCol = Rng.Columns(Rng.Columns.Count).Column
Frow = Rng.Rows(1).Row
Lrow = Rng.Rows(Rng.Rows.Count).Row
For i = Frow To Lrow
outputLine = ""
For j = FCol To LCol
If j <> LCol Then
outputLine = outputLine & Cells(i, j) & ";"
Else
outputLine = outputLine & Cells(i, j)
End If
Next j
Print #F, outputLine
Next i
Close #F
End If
End Sub

oder einfacher:

Sub csvSpeichern()
exportfile = "C:\test.csv"
Dateinummer = FreeFile
Set TB = ThisWorkbook.Worksheets(1)
Open exportfile For Output As #Dateinummer
For z = 1 To TB.UsedRange.Rows.Count
If Cells(z, 2).Value = Text Then SL = 10 Else SL = 6
For s = 1 To SL
TMP = TMP & CStr(TB.Cells(z, s).Text) & ";"
Next s
TMP = Left(TMP, Len(TMP) - 1)
Print #Dateinummer, TMP
TMP = ""
Next z
Close #Dateinummer
End Sub

Gruß
Heinz
Anzeige
AW: Blatt als CSV speichern und zurück
10.03.2005 09:11:49
bst
Morgen,
oder auch einfach so.
cu, Bernd
--
Option Explicit

Private Sub CommandButton1_Click()
Dim newname As String
newname = "d:\daten\" & ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=newname, FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub

AW: Blatt als CSV speichern und zurück
10.03.2005 09:22:50
MichaV
Hi Ihr beiden,
vielen Dank! Das ActiveSheet.Copy hat mir gefehlt. Das "selber-schreiben" der csv- Datei wollt ich ja gerade vermeiden, das macht Excel alleine schon ganz super.
Schönen Tag noch!
PS: FileFilter
10.03.2005 09:36:04
MichaV
Hallo,
eine kleine Frage noch, ist mir beim Rumprobieren aufgefallen:
Beim DateiÖffnen oder -Schließen Dialog kann man den FileFilter definieren. Das geht in VB auch mit mehreren Kriterien und sieht so aus: FileFilter="Text (*.txt)|*.txt|Bilder (*.bmp;*.ico)|*.bmp;*.ico"
In VBA funzt das nicht, kenn jemand eine Lösung für die Anzeige von mehreren Dateifiltern unter Verwendung von GetOpenFilename oder GetSaveFilename?
Gruß! -Micha
Anzeige
AW: PS: FileFilter
10.03.2005 09:47:23
bst
Hallo,
versuch mal sowas. Wenn Du damit allerdings Deine gerade abgespeicherten CSV-Datei
öffnen willst mache Dich auf eine unangenehme Überrraschung bereit.
Das wird nämlich ziemlich sicher nicht besonders gut funktionieren :-(
cu, Bernd
--
Option Explicit

Sub OpenMe()
Dim fname As Variant
Dim myFilter As String
myFilter = "Textdateien (*.txt),*.txt,Alle Dateien,*.*)"
fname = Application.GetOpenFilename(myFilter, , "Hallöchen")
If fname = False Then Exit Sub
MsgBox fname, vbInformation, "Öffne mich"
End Sub

AW: PS: FileFilter
10.03.2005 09:52:08
MichaV
Hi Bernd,
aber für den neu eingebauten Speicher- Dialog ist es doch hervorragend! Warum find ich sowas in der VBA- Hilfe nicht?
Vielen Dank und Gruß- Micha
Anzeige
AW: PS: FileFilter
10.03.2005 10:13:03
bst
Hallo Micha,
Speichern ist hier nicht das Problem. Sondern das Öffnen einer CSV-Datei.
Wie der Filefilter für mehrere Dateien zu setzen ist steht in meiner VBA-Hilfe nun schon drinne :-)
cu, Bernd

207 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige