Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Excel 2010 per makro tabellenblatt in neue Datei

Betrifft: Excel 2010 per makro tabellenblatt in neue Datei von: heinz
Geschrieben am: 08.09.2014 13:38:00

hallo zusammen,

ich habe eine datei, die aus ca. 20 tabellenblättern besteht.
diese müssen allerdings jeweils in eine eigene datei kopiert werden.

aktuell nutze ich hierfür folgendes makro:

Sub BlaetterEinzelnSpeichern()
    Dim strVerzeichnis As String
    Dim shBlatt As Worksheet

    strVerzeichnis = "c:\user\desktop\" 'mit "\" am Ende !!!
    For Each shBlatt In ActiveWorkbook.Worksheets
        If shBlatt.[A6] <> "" Then
            shBlatt.Copy
            ActiveWorkbook.SaveAs strVerzeichnis & "\2014-08 " & ActiveSheet.[A6].Value & " _
Blatt1.xlsx"
            ActiveWorkbook.Close False
        Else
            MsgBox shBlatt.Name, vbOKOnly + vbCritical, "Fehlender Dateiname in A6 in Blatt "
        End If
    Next
End Sub

Allerdings ist mein problem, dass mit diesem makro immernoch eine verknüpfung zur usprungsdatei bestehen bleibt, die ich aktuell manuell entferne (verknüpfung löschen).

Perfekt wäre es, wenn zukünftig die verknüpfung automatsich entfernt wird, allerdings sollten bestehende formeln erhalten bleiben.

wäre es möglich dies in das makro zu integrieren?

vielen dank vorab für eure hilfe!

  

Betrifft: AW: Excel 2010 per makro tabellenblatt in neue Datei von: fcs
Geschrieben am: 08.09.2014 14:28:40

Hallo Heinz,

das Löschen de Verknüpfungen ist kein Problem. Aller dings wird in jeder Formel mir einer Verknüpfung immer die Formel durch den Zellwert ersetzt. Die Formeln werden also überschrieben.

Gruß
Franz

Sub BlaetterEinzelnSpeichern()
    Dim strVerzeichnis As String
    Dim shBlatt As Worksheet, varItem

    strVerzeichnis = "c:\user\desktop\" 'mit "\" am Ende !!!
    For Each shBlatt In ActiveWorkbook.Worksheets
        If shBlatt.[A6] <> "" Then
            shBlatt.Copy
            
            With ActiveWorkbook
              varItem = .LinkSources(Type:=xlExcelLinks)
              If Not IsEmpty(varItem) Then
                For Each varItem In .LinkSources(Type:=xlExcelLinks)
                  .BreakLink Name:=varItem, Type:=xlLinkTypeExcelLinks
                Next
              End If
            End With
            ActiveWorkbook.SaveAs strVerzeichnis & "2014-08 " & ActiveSheet.[A6].Value _
                  & "Blatt1.xlsx", FileFormat:=51
            ActiveWorkbook.Close False
        Else
            MsgBox shBlatt.Name, vbOKOnly + vbCritical, "Fehlender Dateiname in A6 in Blatt "
        End If
    Next
End Sub



  

Betrifft: AW: Excel 2010 per makro tabellenblatt in neue Datei von: heinz
Geschrieben am: 08.09.2014 16:09:54

Hallo Franz,

vielen lieben dank, das funktioniert perfekt!
Das die Formeln der Verknüpfungen weg sind ist kein problem, mir ging es nur um Summenformeln etc, die sich nicht auf die verknüpfungen bezogen haben :)

eine frage noch.
was müsste ich ändern, um mit dem code *.xlsm Dateien erstellen zu können?


  

Betrifft: AW: Excel 2010 per makro tabellenblatt in neue Datei von: fcs
Geschrieben am: 08.09.2014 17:02:02

Hallo Heinz,

hier anpassen:

            ActiveWorkbook.SaveAs strVerzeichnis & "2014-08 " & ActiveSheet.[A6].Value _
                  & "Blatt1", FileFormat:=52

Die Dateinamens-Erweiterung kann man weglassen, Excel fügt sie automatisch an entsprechend dem Dateiformat.

Gruß
Franz


  

Betrifft: AW: Excel 2010 per makro tabellenblatt in neue Datei von: heinz
Geschrieben am: 09.09.2014 17:14:13

Hallo Franz,

und klappt wieder perfekt.
vielen lieben dank!

thema is durch :)


 

Beiträge aus den Excel-Beispielen zum Thema "Excel 2010 per makro tabellenblatt in neue Datei"