Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
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
Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 15:54:02
matthias
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 = _
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 = _
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?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 16:00:48
Rudi
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

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

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

AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 16:14:08
matthias
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.

Anzeige
AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 16:24:17
matthias
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?

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

AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 16:46:12
matthias
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?

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

AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 17:07:58
matthias
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?

AW: Blatt kopieren ohne VBA und ohne Formeln
09.11.2015 21:10:39
Rudi
Hallo,
bspw.
With Application.FileDialog(msoFileDialogSaveAs)
.FilterIndex = 1
If .Show = -1 Then
ActiveWorkbook.SaveAs .SelectedItems(1)
End If
End With
Gruß
Rudi

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

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

336 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige