Microsoft Excel

Herbers Excel/VBA-Archiv

Einzelne Registerkarte in neue Datei speichern | Herbers Excel-Forum


Betrifft: Einzelne Registerkarte in neue Datei speichern von: Herbert brun
Geschrieben am: 14.10.2008 11:46:43

Hallo Experten,

ich möchte per Button eine einzelne Registerkarte meiner Excel-Datei im Format: "Text (Tabstopp-getrennt)(*.txt)" abspeichern. Die neue Datei soll im Ordner C:\temp erscheinen. Der Name der neuen Datei ist eigentlich egal.

Wäre für jeden Vorschlag dankbar.

Danke und Gruß.

Herbert

  

Betrifft: AW: Einzelne Registerkarte in neue Datei speichern von: otto
Geschrieben am: 14.10.2008 11:55:50

Hi,

vielleicht so:

Sub Speichernunter()
Dim dateiPfad As String
Dim Name As String
    dateiPfad = "C:\temp\"
    Name = "Test"    
    Worksheets("Tabelle1").Copy
    Worksheets("Tabelle1").SaveAs Filename:=(dateiPfad &  Nummer) _
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub



gruß
otto


  

Betrifft: AW: Einzelne Registerkarte in neue Datei speichern von: Herbert brun
Geschrieben am: 14.10.2008 12:05:50

Hallo,

danke für die schnelle Hilfe. Bei Ausführung des Codes erscheint die Fehlermeldung: "Index außerhalb des gültigen Bereiches". Der Bereich:

Worksheets("Tabelle1").SaveAs Filename:=(dateiPfad & Nummer) _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

wird dabei gelb hinterlegt.


  

Betrifft: AW: Einzelne Registerkarte in neue Datei speichern von: Rudi Maintaire
Geschrieben am: 14.10.2008 12:06:43

Hallo,

Sub SaveAsTxt()
  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 = Chr(9)
    strDat = strPfad & ActiveSheet.Name & ".txt"
    
    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


Gruß
Rudi


  

Betrifft: Super! Vielen Dank! von: Herbert brun
Geschrieben am: 14.10.2008 12:20:17

Funktioniert spitze. Große Klasse. Würde ich auch gern so programmieren können.


Beiträge aus den Excel-Beispielen zum Thema "Einzelne Registerkarte in neue Datei speichern"