Hi,
ich probiere eine xls in ein csv zu bekommen. Bisher hab ich folgendes gemacht:
Private Sub CommandButton1\_Click()
sOld = ThisWorkbook.FullName
sFile = sOld & ".csv"
Range("A5:N255").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=sFile, FileFormat:=xlCSV, \_
CreateBackup:=False
MsgBox "Datei unter " & ActiveWorkbook.FullName & " gespeichert"
End Sub
nun stört mich, dass ich beim neuen abspeichern den namen.xls.csv habe. ich möchte aber nur name.csv haben.
dann soll auch nicht die neue Datei geöffnet werden, sondern es soll im Hintergrund ablaufen.
wie kann ich die „Speichern Unter“ miteinbinden?
Vielen Dank
steffi
Hi, Steffi!
ich probiere eine xls in ein csv zu bekommen. Bisher hab ich
folgendes gemacht:
Private Sub CommandButton1_Click()
sOld = ThisWorkbook.FullName
nun stört mich, dass ich beim neuen abspeichern den
namen.xls.csv habe. ich möchte aber nur name.csv haben.
Lösche: sFile = sOld & „.csv“, statt dessen:
sFile = sOld
Mid$(sFile, len(sFile-2), 3)="csv"
Range(„A5:N255“).Select
…
dann soll auch nicht die neue Datei geöffnet werden, sondern
es soll im Hintergrund ablaufen.
Was meinst Du genau? Wenn Du die Anzeigen nicht haben willst, kannst Du mit
Application.ScreenUpdating = False
die Aktualisierung ausschalten. Pass aber bloß auf, dass Du sie wieder einschaltest, sonst sieht das ganze ziemlich komisch aus.
Um die CSV-Datei nicht mehr geöffnet zu haben, schließe sie doch einfach wieder am Ende.
wie kann ich die „Speichern Unter“ miteinbinden?
Was meinst Du damit?
Vielen Dank
steffi
Gruß, Manfred
nun stört mich, dass ich beim neuen abspeichern den
namen.xls.csv habe. ich möchte aber nur name.csv haben.
Lösche: sFile = sOld & „.csv“, statt dessen:
sFile = sOld
Mid$(sFile, len(sFile-2), 3)=„csv“
Range(„A5:N255“).Select
…
hier gibts ne Fehlermeldung: „Typen unverträglich (Fehler 13)“
dann soll auch nicht die neue Datei geöffnet werden, sondern
es soll im Hintergrund ablaufen.
Was meinst Du genau? Wenn Du die Anzeigen nicht haben willst,
kannst Du mit
Application.ScreenUpdating = False
die Aktualisierung ausschalten. Pass aber bloß auf, dass Du
sie wieder einschaltest, sonst sieht das ganze ziemlich
komisch aus.
Um die CSV-Datei nicht mehr geöffnet zu haben, schließe sie
doch einfach wieder am Ende.
stimmt, so gehts auch 
ActiveWorkbook.Close SaveChanges:=False
wie kann ich die „Speichern Unter“ miteinbinden?
Was meinst Du damit?
es gibt eine Möglichkeit, dass der User noch den Pfad aussuchen kann, wo er die neue csv hingespeichert haben möchte. Also mit dem „Speichern unter-Dialog“
Hi, Steffi!
nun stört mich, dass ich beim neuen abspeichern den
namen.xls.csv habe. ich möchte aber nur name.csv haben.
Lösche: sFile = sOld & „.csv“, statt dessen:
sFile = sOld
Mid$(sFile, len(sFile-2), 3)=„csv“
Range(„A5:N255“).Select
…
hier gibts ne Fehlermeldung: „Typen unverträglich (Fehler 13)“
Kann eigentlich nicht sein. Dimensioniere doch mal zu Beginn der Prozedur die Variablen als Strings:
Dim sOld as string
Dim sFile as string
Bei mir rennt das Ding eigentlich durch.
Wo/in welcher Zeile kommt der Fehler? Welche Verweise (unter VB „Extras“-„Verweise“) sind bei Dir eingebunden?
wie kann ich die „Speichern Unter“ miteinbinden?
Was meinst Du damit?
es gibt eine Möglichkeit, dass der User noch den Pfad
aussuchen kann, wo er die neue csv hingespeichert haben
möchte. Also mit dem „Speichern unter-Dialog“
Ah jetzt ja. Mea culpa. Schau mal unter dem „FileDialog“-Objekt in der Hilfe. Das sollte das können, was Du brauchst. Ich habe selbst eine eigene Klasse, mit der ich diese Dialoge aufrufe. Der Code ist aber etwas umfangreicher, so dass er hier eigentlich nicht hinpasst. Kannst Dich ja per Mail melden, wenn Du Interesse an dem haben solltest.
Gruß, Manfred
moin!
Kann eigentlich nicht sein. Dimensioniere doch mal zu Beginn
der Prozedur die Variablen als Strings:
Dim sOld as string
Dim sFile as string
Bei mir rennt das Ding eigentlich durch.
Wo/in welcher Zeile kommt der Fehler? Welche Verweise (unter
VB „Extras“-„Verweise“) sind bei Dir eingebunden?
okay, das hab ich jetzt gemacht. Nun bekomme ich ne neue Fehlermeldung:
„Fehler beim kompilieren: Variabel erforderlich - Zuweisung an diesen Ausdruck nicht möglich“
bleibt an der Berechnung von $Mid stehen an dem „-“
Private Sub CommandButton1\_Click()
Dim sOld As String
Dim sFile As String
sOld = ThisWorkbook.FullName
sFile = sOld
Mid$(sFile, Len(sFile - 2), 3) = "csv"
Range("A5:N255").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=sFile, FileFormat:=xlCSV, \_
CreateBackup:=False
MsgBox "Datei unter " & ActiveWorkbook.FullName & " gespeichert"
ActiveWorkbook.Close SaveChanges:=False
End Sub
folgende Verweise hab ich (bei excel 2000 mit vb 6.0):
VB for applications
ms excel 9.0 object lib
ole automation
ms office 9.0 object lib
ms forms 2.0 object lib
steffi
Hi, Steffi!
Mid$(sFile, Len(sFile - 2), 3) = "csv" ' Deine Zeile
^ Diese Klammer ist falsch, gehört nach vorn:
Mid$(sFile, Len(sFile) - 2, 3) = "csv" ' Deine Zeile
Dann sollte es laufen.
Gruß, Manfred
1 „Gefällt mir“
klappt!!
Hi Manfred,
vielen Dank, jetzt funktioniert es!!
steffi