Kollision mit anderem Workbook
20.03.2013 11:44:34
Markus
das nachfolgende VBA funktioniert bestens und ersellt mir beim Schliessen eine "Csv-Sicherung".
Mein Problem:
Starte ich Excel mit einer weiteren Excel-Tabelle, dann passiert es hie und da,
dass von anderen Tabellen eine *_csv-Datei geschrieben werden.
Das möchte ich verhindern.
Es darf nur vom Blatt "Gesamt_Liste" eine *.csv-Datei erstellt werden.
Danke im Voraus für Hilfe
Markus
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim intFileNumber As Integer
Dim myWsh As Worksheet
Dim lngRow As Long
Dim vntArray As Variant
Dim strText As String
Const strSep As String = ";"
Sheets("Gesamt_Liste").Select
With Range("A1").CurrentRegion
For lngRow = 1 To .Rows.Count
vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText _
& vbCrLf _
& IIf(lngRow = .Rows.Count, Join(vntArray, ";"), Join(vntArray, strSep))
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
Open _
.Path & "\" _
& Left(.Name, InStrRev(.Name, ".") - 1) & "_aktuell" _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber