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

Tabellenblatt in neue Datei kopieren

Tabellenblatt in neue Datei kopieren
02.03.2021 17:04:13
Sebastian
Hier ein neues Problem, was wahrscheinlich wieder nur an einer kleinen Stelle (und Unwissenheit meinerseits) scheitert.
Ich möchte gern ein Tabellenblatt, in dem eine Tabelle definiert, Formeln und bedingte Formatierung enthalten sind, in eine neue Datei kopieren - es soll alles gleich sein, jedoch OHNE Formeln und bedingte Formatierung. Die resultierenden Zellfarben aus der BedForm sollen jedoch auch mit übernommen werden.
In Grundzügen funktioniert untenstehender Code schon ganz gut. Ich habe es auch schon geschafft, die Formeln zu entfernen, dabei ist mir jedoch auch die Tabelle komplett zerfallen. Zellfarben habe ich noch gar nicht kopieren können.
Option Explicit
Sub Kopie()
Dim wb As Workbook
Dim relativePath As String
relativePath = ThisWorkbook.Path & "\" & "Kopie.xlsx"
Set wb = Workbooks.Add
ThisWorkbook.Sheets("xxx").Copy Before:=wb.Sheets(1)
wb.SaveAs Filename:=relativePath
End Sub

Grüße,
Sebastian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt in neue Datei kopieren
02.03.2021 17:13:47
Daniel
Hi
das geht wahrscheinlich am einfachsten mit folgenden Schritten:
1. Blatt mit allem in eine neue Datei kopieren
2. diese Datei als HTML-Datei exportieren (Speichern Unter - HTML) und schließen
3. die HTML wieder öffnen und als Excel-Datei speichern
4. die HTML-Datei löschen
beim HTML-Export werden automatisch die Formeln durch Werte ersetzt und die Bedingten Formate in echte Formate gewandelt.
Gruß Daniel

AW: Tabellenblatt in neue Datei kopieren
02.03.2021 17:21:02
Sebastian
Problem ist immer, dass mir die bedingte Formatierung flöten geht.
Er kopiert leider die Zellfarbe nicht mit, die durch die BedForm erstellt wurde.
Falls sich dieser Schritt mit HTML umsetzen lässt: kann man das auch per Makro vereinfachen?

Anzeige
AW: Tabellenblatt in neue Datei kopieren
02.03.2021 17:33:34
Daniel
dann probier mal, ob du das einzelne Blatt auch ohne es vorher in eine andere Datei zu kopieren in die HTML exportieren kannst.
ansonsten musst du so vorgehen.
1. leeres Blatt in neuer Datei anlegen
2. Quellblatt kopieren
3. ins neue Blatt WERTE einfügen
4. ins neue Blatt FORMATE einfügen
5. Bedingte Formate im neuen Blatt löschen
6. mit einer Schleife über alle Zellen des Quellblatt laufen und die durch die Bedingten Formate erzeugten Formate in echte Formate übernehmen.
das geht aber nur für jede Zelle einzeln (kann man in einer Schleife machen) und auch nur für jedes Format einzeln.
Sieht also in etwa so aus:
For each Zelle in thisWorkbook.Worksheets("Quelltabelle").UsedRange.Cells
Workbooks("neuesWorkbook").Sheets(1).Range(Zelle.Address).Interior.Color = Zelle. _
DisplayFormat.Interior.Color
Next
wobei DisplayFormat das angezeigte Format der Zelle ist, egal ob es durch Bedingte oder normale Formatierung erzeugt wird.
Du brauchst dann für jeden Formatierungstyp, den du über bedingte Formatierung erstellst, eine eingene Zeile (Hintergrundfarbe, Schriftfarbe, Rahmen)
"neumodische" Bedingte Formate (Ampeln usw) kannst du natürlich nicht übertragen.
gruß Daniel

Anzeige
AW: Tabellenblatt in neue Datei kopieren
02.03.2021 17:44:26
Sebastian
Das Umwandeln zu HTML funktioniert direkt aus der Originaldatei heraus. Ich kann dann auch mit Excel die HTML öffnen, allerdings ist dann dort jegliche Zellstruktur weg, wo kein Inhalt war. Ist dann hauptsächlich durchgängig weiß. Oder gibt es einen anderen Weg als den meinen?
Im Moment bezieht sich die BedForm auch nur auf 3 Spalten der Tabelle. Vielleicht kann man da etwas vereinfachen.
Grüße,
Sebastian

AW: Tabellenblatt in neue Datei kopieren
02.03.2021 18:26:23
Daniel
Hi
HTML kennt wahrscheinlch "keine Hintergrundfarbe" nicht und macht dieses Zellen weiß (halt den Standard-Hintergrund)
dann werden die Hilfsrahmenlinien nicht angezeigt, nur echte Rahmenlinien.
du müsstest also echte Rahmenlinen verwenden oder alles was weis ist, wieder umfärben.
den alternativ-weg habe ich dir doch beschrieben.
Inhalte und Werte als Block kopieren
Bedingte Formate im Ziel löschen und dann per Schleife für jede betroffene Zelle die Bedingten Formate als echte Formate von der Quell- in die Zieltabelle übernehmen.
damit die Schleife auch nur über die Zellen mit bedingter Formatierung läuft, kannst du sie auch so starten:
for each Zelle in ThisWorkbook.Sheets("Quelltabelle").Cells.specialcells(xlCellTypeAllFormatConditions).Cells
rest dann wie gezeigt.
Zelle ist als Range zu dimensionieren.
Gruß Daniel
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige