Blatt kopieren ohne VBA und ohne Formeln

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 15:54:02

allo,
ich habe eine Exceldatei mit sehr viel Code drinnen. Unter anderen werden makros ausgeführt beim Öffnen der Datei.
Nun habe ich versucht, ein Tabellenblatt ohne jegliche Formeln und VBA Code in eine neue Datei zu kopieren.
Dazu nachfolgender Code.

Private Sub CommandButton42_Click()
Dim DateVon As Date, DateBis As Date
Dim i&
If ComboBox1.Value = "" Or ComboBox2.Value = "" Then
MsgBox "Bitte Anfangdatum und/oder Enddatum festlegen"
Else
DateVon = CDate(ComboBox1.Value)
DateBis = CDate(ComboBox2.Value)
Worksheets("Aufstellung").Unprotect Password:="sp"
Worksheets("Lager BSK").Unprotect Password:="sp"
With ThisWorkbook.Worksheets("Aufstellung")
.Cells(2, 41) = "ACHTUNG: Neue Datensätze sind BLAU schattiert!"
.Cells(2, 41).Font.ColorIndex = 32
    i = .Cells(.Rows.Count, 70).End(xlUp).Row
    If i >= 16 Then
        For i = 16 To i
            If .Cells(i, 70).Value <= DateBis And .Cells(i, 70).Value >= _
                DateVon Then
                .Cells.EntireRow(i).Interior.Color = RGB(159, 182, 205)
            Else
                .Cells.EntireRow(i).Interior.ColorIndex = xlNone
            End If
        Next i
    End If
End With
With ThisWorkbook.Worksheets("Lager BSK")
.Cells(2, 41) = "ACHTUNG: Neue Datensätze sind BLAU schattiert!"
.Cells(2, 41).Font.ColorIndex = 32
    i = .Cells(.Rows.Count, 70).End(xlUp).Row
    If i >= 16 Then
        For i = 16 To i
            If .Cells(i, 70).Value <= DateBis And .Cells(i, 70).Value >= _
                DateVon Then
                .Cells.EntireRow(i).Interior.Color = RGB(159, 182, 205)
            Else
                .Cells.EntireRow(i).Interior.ColorIndex = xlNone
            End If
        Next i
    End If
End With
End If
Worksheets("Aufstellung").Protect Password:="sp"
Worksheets("Lager BSK").Protect Password:="sp"
End Sub
Aber mein Problem dabei ist, dass bilder nicht mitkopiert werden.
Ich hätte auch probiert die Datei einfach insgesamt zu kopieren. Aber wenn ich dieses makro ausführe, wird die Datei erstellt und danach kommen Fehlermeldungen da in der neuen Datei die bezüge nicht mehr passen, da ich nur ein Tabellenblatt habe.
In erster Linie genau bei den Makros, die am Anfang beim start gestartet werden.
Hat hierzu jemand eine Idee?

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 09.11.2015 16:00:48
Hallo,
Hat hierzu jemand eine Idee?
Ja
1. Das Blatt kopieren
2. Den Inhalt kopieren und als Werte einfügen
3. als .xlsx speichern
Gruß
Rudi

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 16:03:20
Danke.
soweit komme ich gar nicht.
nach dem kopieren der Datei, werden ja die Makros ausgeführt.
Das speichern würde ja manuell erfolgen.

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 09.11.2015 16:11:06
Ich verstehe nicht, was du willst.
In deinem Code sehe ich keine Kopieraktion.

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 16:14:08
so wie ich es jetzt mache, werden Bilder nicht übernommen.
Wenn ich aber die Bilder mit übernehmen möchte, sprich die Datei einfach kopieren dann werden immer meine Codes mit kopiert und dabei bekomme ich Fehler dann in der neuen Datei.

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 16:24:17
Das wäre mein anderer Code.
Sub FUK_IBN()

Dim shZiel As Worksheet
Dim shQuelle As Worksheet

Set shQuelle = ThisWorkbook.Sheets("Aufstellung") 'Quellsheet festlegen

Workbooks.Add 'neue Mappe
shQuelle.Copy Before:=ActiveWorkbook.Sheets(1) 'Kopieren des Quellsheets in die neue Mappe ( _
noch sind Formelbezüge drinn)

Set shZiel = ActiveWorkbook.Sheets("Aufstellung")
shZiel.Cells.Copy 'gesamten Bereich der Kopie kopieren
shZiel.Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False 'nur Werte wieder einfügen

'Spalten entfernen
shZiel.Columns("FA:FC").Delete
shZiel.Columns("ER:EY").Delete
shZiel.Columns("BQ:EL").Delete

Application.DisplayAlerts = False
ActiveWorkbook.Sheets("Tabelle1").Delete 'Standardblatt aus neuer Mappe entfernen
Application.DisplayAlerts = True
End Sub Hier ist es immer so, dass zwar die Datei erzeugt wird, aber dann kommt der Fehler.
Variable nicht definiert.
Es wird dann im Code Steuerelemente markiert (Name meiner Userform)

Private Sub Worksheet_Activate()
    Steuerelemente.Show 0
End Sub
Wie löse ich das Problem?

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 09.11.2015 16:39:10
ich habe doch geschrieben: als .xlsx speichern.
Dann sind die Makros weg.
Gruß
Rudi

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 16:46:12
da ist mir klar.
Ich führe mein Makro aus. Die Datei wird zwar erstellt.
Aber es gibt dann zwischendurch den Fehler, weil in der neuen Datei der Code

Private Sub Worksheet_Activate()
    Steuerelemente.Show 0
End Sub
versucht wird ausgeführt zu werden. Die Userform ist aber nicht mehr da.
Deshalb stoppt mein Makro.
Verstehst du jetzt.
Wenn ich den Code vorher in der Stammdatei lösche, geht alles.
Ich brauche aber diesen Code in der Stammdatei, da ich nur möchte, dass die Userform angezeigt wird wenn ich ein bestimmtes Tabellenblatt anklicke.
Jetzt mein Problem verstanden?

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 09.11.2015 16:51:54
aha!
Schalte die Ereignisverarbeitung ab.
Application.EnableEvents = False
'KopierCode
Application.EnableEvents = True
Gruß
Rudi

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 09.11.2015 17:07:58
Super Danke.
nun funktioniert es.
Hasst du noch einen Tipp, wie ich nach dem Erstellen der Datei sofort das Speichern unter Feld aufrufen kann und die .xlsx-Datei schon vorgegeben ist?

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 09.11.2015 21:10:39
Hallo,
bspw.

With Application.FileDialog(msoFileDialogSaveAs)
.FilterIndex = 1
 If .Show = -1 Then
  ActiveWorkbook.SaveAs .SelectedItems(1)
 End If
End With
Gruß
Rudi

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: matthias
Geschrieben am: 10.11.2015 07:31:11
Besten Dank.
Funktioniert super.
Kann man die Meldung nach dem Speichern noch unterdrücken, sodass automatisch ohne diese Meldung als Xlsx gespeichert wird.

Bild

Betrifft: AW: Blatt kopieren ohne VBA und ohne Formeln
von: Rudi Maintaire
Geschrieben am: 10.11.2015 09:08:48
Hallo,
Application.displayalerts = FALSE
'SpeicherCode
Application.displayalerts = TRUE
Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Blatt kopieren ohne VBA und ohne Formeln"