gibt es eine Möglichkeit, den Hinweis beim speichern einer csv-Datei
( ... kann Merkmale enthalten, die mit CSV ... nicht kompatibel sind)
abzuschalten ?
Es nervt ein wenig, da ich mir bewusst bin, dass Formartiereungen etc.
nicht erhalten bleiben.
Vielen Dank Stefan.
geht es darum, beim speichern über vba makro diese meldung abzustellen
oder generell?
wenns bei vba ist könnte ich mir vorstellen, dass man es mit
Application.DisplayAlerts = False gefolgt von einem
Application.DisplayAlerts = True
nach dem speichern ausschalten kann. zumindest kann man so meldungen
wie "soll das blatt gelöscht werden?" oder "datei ist bereits
geöffnet" deaktivieren...
ansonsten muss wohl jemand anderes aushelfen. auf ein generelles
ausschalten dieser warnungen würde ich allerdings verzichten.
> geht es darum, beim speichern über vba makro diese meldung abzustellen
> oder generell?
an sich generell, aber ....
> wenns bei vba ist könnte ich mir vorstellen, dass man es mit
> Application.DisplayAlerts = False gefolgt von einem
> Application.DisplayAlerts = True
ist evtl. ein Kompromiss, wenn es funktioniert.
Probiere ich aus.
Danke Stefan.
habe dazu etwas schönes gefunden (VBA-Lösung):
hier das Original:
http://www.office-loesung.de/ftopic448756_0_0_asc.php
(gut, weil man das Trennzeichen wählen kann)
das ich ein wenig abgewandelt habe (Nutzung in Excel 2003):
(da ich ein festes Trennzeichen haben möchte + ein wenig Komfort beim
speichern.)
Sub SaveCSV()
' Speichert den Inhalt eines Arbeitsblatts als CSV-Datei
' ursprünglich von Ni...@Kaczenski.de
' 2011-04-11: geändert SP
' Ohne Gewähr!
On Error GoTo fehler
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strPfad As String
Dim strTrennzeichen As String
Dim strDateiname As String
Dim strSpeicherort As String
strTrennzeichen = ";"
strSpeicherort = "d:\temp\"
strDateiname = Replace(ActiveWorkbook.Name, ".xls", ".csv")
'Speicherdialog öffnen
strPfad = Application.GetSaveAsFilename(strSpeicherort &
strDateiname, "Excel-CSV, *.csv")
Set Bereich = ActiveSheet.UsedRange
Open strPfad For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in
Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" &
strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp =
Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
If strPfad = "Falsch" Then
MsgBox "Benutzerabbruch!", , "Status"
Kill (strPfad) ' die durch OPEN erstellte Datei löschen
Else
MsgBox "Datei wurde exportiert nach" & vbCrLf & strPfad, ,
"Status"
If Workbooks.Count > 1 Then
ThisWorkbook.Close False
Else
Application.Quit
End If
End If
fehler:
Select Case Err.Number
Case 0
'"keinen Fehler" abfangen
Case Else
MsgBox "Fehler Nr.............: " & Err.Number & vbLf & _
"Beschreibung.....: " & Err.Description, , "Ein
unerwarteter Fehler ist aufgetreten!"
End Select
End Sub