Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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 exportieren ohne Private Sub

Tabellenblatt exportieren ohne Private Sub
13.10.2023 07:46:19
JBR
Hallo,

ich möchte ein Tabellenblatt in eine neue xlsx-Datei exportieren, aber ohne die Private Subs.
Das Makro “Export“ läuft wie gewünscht, nur möchte ich nicht das Private Sub mit exportieren.

Viele Grüße,
Jörg

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 08:25:43
Oberschlumpf
Hi Jörg,

"Das Makro “Export“ läuft wie gewünscht, nur möchte ich nicht das Private Sub mit exportieren. "
ähhh?? Aber dann läuft Export ja doch nich wie gewünscht^^ :-)

Ich vermute, dein "Export" kopiert mit z Bsp Sheets(1).Copy (oder ähnlich) einfach Wunschblatt in neue Datei - aber da is dann eben alles mit dabei!

Du müsstest...
- neue Datei erstellen
- in Wunschblatt (alte Datei) nur den Bereich UsedRange kopieren
- und ab Wunschzelle in neue Datei einfügen
- jetzt neue Datei speichern = fertig

Hilfts?

Ciao
Thorsten
Anzeige
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 10:53:57
JBR
Hallo Thorsten,

der Tipp mit UsedRange war genau was ich gebraucht habe.
Jetzt wird nur das übernommen, was kopiert wurde.

Danke

Viele Grüße,
Jörg
büdde, büdde :-) und gerne - owT
13.10.2023 13:11:07
Oberschlumpf
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 08:55:17
Oberschlumpf
Hi Jörg,

eigtl hattest du das Gleiche doch schon hier gefragt:
https://www.herber.de/forum/messages/1949082.html

Wieso hilft dir meine Datei nun nicht mehr?

Ciao
Thorsten
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 09:16:37
JBR
Hallo Thorsten,

Dein Makro habe ich bei mir mit eingebaut und läuft genauso wie es soll.

Hintergrund:
Ich habe eine Excel-Datei mit einem “Haupttabellenblatt“ und einigen “Kunden-Tabellenblättern". Sobald die Daten im “Haupttabellenblatt“ eingetragen wurden können diese für die einzelnen Kunden exportiert (PDF oder xlsx) werden (jeder Kunde hat da andere Anforderungen).

Jetzt habe ich Private Sub Worksheet Activate() hinzugefügt um Voreinstellungen beim Tabellenblattwechsel zu machen. Und das ist das Problem.

Ich werde mal Deinen Tipp mit dem UsedRange ausprobieren, benutzte nämlich in der Tat den ActiveSheet.Copy ... Befehl.

Viele Grüße,
Jörg
Anzeige
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 09:41:33
JBR
Hallo Thorsten,

ich benutzte diesen Code um das Tabellenblatt in eine neue Datei zu exportieren.
Das “Original“Tabellenblatt hat einige ausgeblendete Spalten die in der neuen Datei nicht verfügbar sein sollen, deshalb habe ich auch "ActiveSheet.Copy Before:=ActiveSheet" erstmal nicht angezweifelt.




'Kopiert Tabelle in neue Arbeitsmappe, nur Werte, ausgeblendete Spalten und Formeln werden gel_scht

Dim wbOriginal As Workbook
Dim wbExport As Workbook
Dim wksExport As Worksheet
Dim Spalte As Integer
Dim shp As Shape
Dim AnhangXLXS As Variant

Application.EnableEvents = False
Application.ScreenUpdating = False

'Dupliziert aktuelles Tabellenblatt in Tabellenblatt Temp
ActiveSheet.Copy Before:=ActiveSheet
ActiveSheet.Name = "Temp"

'Variablen setzen
Set wbOriginal = ThisWorkbook
Set wksExport = wbOriginal.Worksheets("Temp") 'Tabelle die kopiert werden soll

' Datei Speichern falls nicht gespeichert
If wbOriginal.Saved = False Then
wbOriginal.Save
End If

wksExport.Unprotect ' Schreibschutz aufheben

wksExport.UsedRange.Value = wksExport.UsedRange.Value 'Formeln durch Werte ersetzen
wksExport.Copy 'Blatt in neue Arbeitsmappe kopieren
Set wbExport = ActiveWorkbook
Set wksExport = wbExport.Worksheets(1)
With wksExport

Sheets("Temp").Name = "Export" 'Blatt umbenennen

'Ausgeblendete Spalten l_schen
For Spalte = .UsedRange.Column + .UsedRange.Columns.Count To 1 Step -1
If .Columns(Spalte).Hidden = True Then .Columns(Spalte).Delete
Next
'Alle Spalten einblenden
.Cells.EntireColumn.Hidden = False
End With

'Alle Objekte löschen
For Each shp In ActiveSheet.Shapes
shp.Delete
Next shp

'Schreibschutz
ActiveSheet.Protect "123456", DrawingObjects:=False, Contents:=True, Scenarios:=False
ActiveSheet.EnableSelection = xlNoRestrictions

'Kopf und Fußzeile löschen
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
ActiveWindow.View = xlNormalView


fileSaveName = Application.GetSaveAsFilename(InitialFileName:=fileSaveName, FileFilter:="Microsoft Excel-Arbeitsmappe (*.xlsx), *.xlsx")
ActiveWorkbook.SaveAs Filename:=fileSaveName
wbExport.Close savechanges:=False

Application.DisplayAlerts = True


'zurueck zur Ausgangsdateidatei
wbOriginal.Activate
'Tabellenblatt Temp löschen
Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("Temp").Delete
Application.DisplayAlerts = True

Application.ScreenUpdating = True
Application.EnableEvents = True




Vielleicht ist es möglich den Code so zu erweitern, dass der Private Sub gelöscht wird.

Viele Grüße,
Jörg
Anzeige
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 11:34:30
Oberschlumpf
Hi Jörg,

vllt ist es auch möglich, dass du bitte per Upload Bsp-Datei mit Code und nicht nur Code zeigst.

Ciao
Thorsten
AW: Tabellenblatt exportieren ohne Private Sub
13.10.2023 11:42:08
JBR
Hallo Thorsten,

werde nächstes Mal dran denken.
Dein Hinweis war goldrichtig.

Danke und ein schönes Wochenende.
Jörg

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige