Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
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
Inhaltsverzeichnis

Registerkarte exportieren

Registerkarte exportieren
17.06.2013 12:11:03
Herbert
Hallo,
ich hatte vor ein paar Jahren Hilfe für den Export einer Registerkarte im .csv-Format. Die Werte wurden nach C:\temp geschrieben und mit Tabulator getrennt.
Nun wollte ich das gleich mit Semikolon-getrennten-Werten durchführen. Leider erscheint beim Ausführen des Buttons die Meldung "Typen unverträglich". Die Zeile " strTxt = Join(strTmp, strSep)" ist markiert.
Hier der urprüngliche Code mit Trenner Tabulator (wie heißt Semikolon?)
Private Sub CommandButton1_Click()
Dim strSep As String, strDat As String, _
iCols As Byte, iRows As Integer, _
iR As Long, strTxt As String, strTmp, _
strPfad As String
strPfad = "c:\temp\"
Reset
With ActiveSheet
iRows = .UsedRange.Rows.Count
iCols = .UsedRange.Columns.Count
strSep = vbTab
strDat = strPfad & ActiveSheet.Name & "_" & Format(Date, "YYYYMMDD") & ".csv"
Open strDat For Output As #1
For iR = 1 To iRows
strTmp = .Range(.Cells(iR, 1), .Cells(iR, iCols))
strTmp = WorksheetFunction.Transpose(WorksheetFunction.Transpose(strTmp))
strTxt = Join(strTmp, strSep)
Print #1, strTxt
Next iR
Close #1
End With
End Sub
Bin über jede Hilfe sehr dankbar.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registerkarte exportieren
17.06.2013 12:34:51
Peter
Hallo Herbert,
Du füllst den Separator ja auch mit vbTab und nicht mit Semikolon.
strSep = ";" wäre evtl. hiflreich.
Gruß Peter

AW: Registerkarte exportieren
17.06.2013 13:17:04
Herbert
Danke für die Hilfe. Folgender Code erzeugt zwar eine Datei, die aber leider leer ist:
Private Sub CommandButton1_Click()
Dim strSep As String, strDat As String, _
iCols As Byte, iRows As Integer, _
iR As Long, strTxt As String, strTmp, _
strPfad As String
strPfad = "c:\temp\"
Reset
With ActiveSheet
iRows = .UsedRange.Rows.Count
iCols = .UsedRange.Columns.Count
strSep = ";"
strDat = strPfad & ActiveSheet.Name & "_" & Format(Date, "YYYYMMDD") & ".csv"
Open strDat For Output As #1
For iR = 1 To iRows
strTmp = .Range(.Cells(iR, 1), .Cells(iR, iCols))
strTmp = WorksheetFunction.Transpose(WorksheetFunction.Transpose(strTmp))
Print #1, strTxt
Next iR
Close #1
End With
End Sub

Anzeige
AW: Registerkarte exportieren
17.06.2013 13:24:27
Luschi
Hallo Herbert,
in Deinem ersten Posting gab es noch diese Vba-Zeile:
strTxt = Join(strTmp, strSep)
Die fehlt jetzt und sorgt eigentlich dafür, daß die Daten des doppelt gedrehten Arrays
auch in die Datei geschrieben werden können (so werden es eben imnmer nur Leerzeilen!).
Gruß von Luschi
aus klein-Paris

AW: Registerkarte exportieren
17.06.2013 13:32:27
Herbert
Wieder hinzugefügt. Funktioniert. Vielen Dank!

AW: Registerkarte exportieren
18.06.2013 11:34:54
Herbert
Hallo,
ich habe noch eine Frage zum Code, der jetze so aussieht und funktioniert:
Private Sub CommandButton1_Click()
Dim strSep As String, strDat As String, _
iCols As Byte, iRows As Integer, _
iR As Long, strTxt As String, strTmp, _
strPfad As String
strPfad = "c:\temp\"
Reset
With ActiveSheet
iRows = .UsedRange.Rows.Count
iCols = .UsedRange.Columns.Count
strSep = ";"
strDat = strPfad & ActiveSheet.Name & "_" & Format(Date, "YYYY_MM_DD") & ".csv"
Open strDat For Output As #1
For iR = 1 To iRows
strTmp = .Range(.Cells(iR, 1), .Cells(iR, iCols))
strTmp = WorksheetFunction.Transpose(WorksheetFunction.Transpose(strTmp))
strTxt = Join(strTmp, strSep)
Print #1, strTxt
Next iR
Close #1
End With
End Sub
Ich würde gern vor dem Export eine Frage nach dem Speicherort einbauen (derzeit C:\temp fest hinterlegt). Weiterhin soll danach eine Meldung "exportiert" erscheinen, die mit OK geschlossen werden soll, damit der Benutzer eine Rückmeldung erhält.
Ich habe schon ein wenig mit MSGBox experimentiert, leider wenig Erfolg gehabt :-(.
Eventuell gibt es hier nochmals Hilfestellung.
Danke.

Anzeige
AW: Registerkarte exportieren
18.06.2013 16:47:25
Rudi
Hallo,
Private Sub CommandButton1_Click()
Dim strSep As String, strDat As String, _
iCols As Byte, iRows As Integer, _
iR As Long, strTxt As String, strTmp, _
strPfad As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Datei wählen"
If .Show = -1 Then strPfad = .SelectedItems(1)
End With
If strPfad  "" Then
Reset
With ActiveSheet
iRows = .UsedRange.Rows.Count
iCols = .UsedRange.Columns.Count
strSep = ";"
strDat = strPfad & ActiveSheet.Name & "_" & Format(Date, "YYYY_MM_DD") & ".csv"
Open strDat For Output As #1
For iR = 1 To iRows
strTmp = .Range(.Cells(iR, 1), .Cells(iR, iCols))
strTmp = WorksheetFunction.Transpose(WorksheetFunction.Transpose(strTmp))
strTxt = Join(strTmp, strSep)
Print #1, strTxt
Next iR
Close #1
End With
MsgBox "Exportiert", vbInformation, "Gebe bekannt ..."
Else
MsgBox "Abbruch", vbInformation, "Gebe bekannt ..."
End If
End Sub
Gruß
Rudi

Anzeige
... ";" ...! ;-> Gruß owT
17.06.2013 12:36:56
Luc:-?
:-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige