Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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

Tabellenblätter speichern

Tabellenblätter speichern
05.01.2009 09:15:00
Zoran
Hallo zusammen.
Frohes Neues Jahr !!!!
Kann mir jemand mit einem Makro weiterhelfen. Folgendes Problem/Idee habe ich:
Ich möchte das alle markierten Tabellenblätter in separaten Excel-Dateien (Dateiname = Tabellenblattname) als Werte (inkl. Formatierung) gespeichert werden. Speicherort soll entweder frei gewählt werden können oder der Desktop sein.
Vielen Dank im Voraus.
LG
Zoran

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter speichern
05.01.2009 10:47:00
Hajo_Zi
Hallo Zoran
das Forum hat auch eine Suchfunktion.

AW: Tabellenblätter speichern
05.01.2009 10:49:01
Tino
Hallo,
teste mal diesen Code.
Die Tabellen werden mit dem Tabellennamen auf dem Desktop gespeichert.
Ist diese Datei vorhanden, wird diese überschrieben.
Sub StartSpeichern()
Dim NeueDatei As Workbook
Dim myTab As Worksheet
Dim ObjShell As Object
Dim Desktop As String

Set ObjShell = CreateObject("WScript.Shell")
Desktop = ObjShell.SpecialFolders("Desktop") & "\"

With Application
 .ScreenUpdating = False
 .DisplayAlerts = False
    
    For Each myTab In ThisWorkbook.Worksheets
     
     myTab.Copy
     Set NeueDatei = ActiveWorkbook
     NeueDatei.SaveAs Desktop & myTab.Name & ".xls"
     NeueDatei.Close False
     
    Next myTab
 
 .ScreenUpdating = True
 .DisplayAlerts = True
End With
End Sub


Gruß Tino

Anzeige
AW: Tabellenblätter speichern
05.01.2009 11:29:00
Tino
Hallo,
bin heute nicht richtig ausgeschlafen, habe mir Deine Frage nochmals Durchgelesen.
Du möchtest ja nur die aktivierten Tabellen und auch nur die Werte keine Formeln.
Hier die Korrigierte Version für den Desktop
Sub StartSpeichern()
Dim NeueDatei As Workbook
Dim myTab As Worksheet
Dim ObjShell As Object
Dim Desktop As String
Dim myArea
Set ObjShell = CreateObject("WScript.Shell")
Desktop = ObjShell.SpecialFolders("Desktop") & "\"

With Application
 .ScreenUpdating = False
 .DisplayAlerts = False
    
    
    For Each myTab In ThisWorkbook.Windows(1).SelectedSheets
 
     myTab.Copy
     Set NeueDatei = ActiveWorkbook
     NeueDatei.ActiveSheet.UsedRange.Value = NeueDatei.ActiveSheet.UsedRange.Value
     NeueDatei.SaveAs Desktop & myTab.Name & ".xls"
     NeueDatei.Close False
     
    Next myTab
 
 .ScreenUpdating = True
 .DisplayAlerts = True
End With
End Sub


PS: habe bei Josef abgekuckt. ;-)
Gruß Tino

Anzeige
AW: Tabellenblätter speichern
05.01.2009 13:12:22
Zoran
Hallo zusammen.
Irgendetwas stimmt noch nicht ganz !!!
1. Sehe ich nur ein leeres Tabellenblatt bei Ausführung des Makros
2. Der Name der Datei heisst immer Tabelle 1 und nicht wie das Tabellenblatt vorher hieß.
Was muss am Code noch geändert werden?
Vielen Dank nocheinmal.
LG
Zoran
AW: Tabellenblätter speichern
05.01.2009 13:34:00
Tino
Hallo,
habe es nochmal getestet, kann ich leider nicht nachvollziehen.
Gruß Tino
AW: Tabellenblätter speichern
05.01.2009 13:41:00
Reinhard
Hi Zoran,
ich habe den Code getestet, funktioniert perfekt.
Gruß
Reinhard
AW: Tabellenblätter speichern
05.01.2009 13:46:00
Zoran
Hallo Tino.
Ich glaube ich habe das Problem erkannt.
Er speichert dauernd das Tabellenblatt von meiner Personl.xls (ist gespeichert unter XLSTART), wo ich das Makro importiert habe und nicht das Tabellenblatt von der gewünschten Datei die ich noch zusätzlich geöffnet habe.
Wie kann ich das umgehen?
Vielen Dank
LG
Zoran
Anzeige
AW: Tabellenblätter speichern
05.01.2009 13:57:00
Tino
Hallo,
ohne zu testen, ersetze ThisWorkbook durch Workbooks("DeineExceldatei.xls")
Gruß Tino
AW: Tabellenblätter speichern
05.01.2009 14:24:00
Tino
Hallo,
lösche noch die Zeile
Dim myArea
die war beim testen übrig geblieben.
Gruß Tino
AW: Tabellenblätter speichern
05.01.2009 17:45:28
Zoran
Vielen Dank für deine schnelle Hilfe....
AW: Tabellenblätter speichern
05.01.2009 13:57:00
Reinhard
Hi Zoran,
For Each myTab In ActiveWorkbook.Windows(1).SelectedSheets
Gruß
Reinhard
AW: Tabellenblätter speichern
05.01.2009 17:45:53
Zoran
Vielen Dank für deine schnelle Hilfe....
AW: Tabellenblätter speichern
05.01.2009 10:57:08
Josef
Hallo Zoran,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub saveSheetsToFile()
    Dim objWS As Worksheet
    Dim strPath As String
    
    On Error GoTo ErrExit
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
    
    strPath = BrowseForFolder("C:\")
    
    If strPath <> "Falsch" Then
        For Each objWS In ThisWorkbook.Windows(1).SelectedSheets
            objWS.Copy
            With ActiveWorkbook
                With Sheets(1)
                    .UsedRange = .UsedRange.Value
                End With
                .SaveAs strPath & "\" & objWS.Name & ".xls"
                .Close
            End With
        Next
    End If
    
    ErrExit:
    
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description, Title:="Fehler"
    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
End Sub

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
    'Function purpose: To Browser for a user selected folder.
    'If the "OpenAt" path is provided, open the browser at that directory
    'NOTE: If invalid, it will open at the Desktop level
    
    Dim ShellApp As Object
    
    'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _
        BrowseForFolder(0, "Please choose a folder", 0, OpenAt)
    
    'Set the folder to that selected. (On error in case cancelled)
    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0
    
    'Destroy the Shell Application
    Set ShellApp = Nothing
    
    'Check for invalid or non-entries and send to the Invalid error
    'handler if found
    'Valid selections can begin L: (where L is a letter) or
    '\\ (as in \\servername\sharename. All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1)
        Case Is = ":"
            If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
        Case Is = "\"
            If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
        Case Else
            GoTo Invalid
    End Select
    
    Exit Function
    
    Invalid:
    'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False
    
End Function

Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige