Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Pivottabelle als neue Datei (nicht als Pivot) speichern und Format übertragen, Blatt und Dateiname aus einer Zelle (nur einen Teil) übernehmen.

Frage Microsoft Microsoft Office

Mitglied: winget

winget (Level 1) - Jetzt verbinden

07.10.2014, aktualisiert 08.10.2014, 4182 Aufrufe, 13 Kommentare, 2 Danke

Hallo zusammen,
ich suchen nach einer VBA Lösung, die mir fogendes ermöglicht:

1. Pivottabelletabelle soll als eine neue Datei gespeichert werden, wobei das Format (Fett, Kursiv, Farbe etc) soll beibehalten werden.
2. Die Dateiname und Blattname soll aus z.B. Zelle A1 (aber nur die letzten 8 Zeichen) ausgelesen werden.

Vielen Dank im Voraus

BILD
Mitglied: colinardo
07.10.2014, aktualisiert 08.10.2014
Hallo winget,
das lässt sich machen, hier der Beispiel-Code. Anzupassen ist das Sheet (Zeile 4) auf dem die Pivottabelle liegt und der Name der Pivottabelle (Zeile 6). Der Code kopiert dann den Bereich der Pivotabelle in eine neue Arbeitsmappe (dabei wird nicht die Pivottabelle ansich kopiert sondern nur die Werte und Formate der Zellen in der Pivot, so wie du es wolltest), und speichert diese im selben Verzeichnis wie die aktuelle Mappe (das kannst du aber in Zeile 22 abändern)
01.
Sub ExportPivotTable() 
02.
    Dim ws As Worksheet, newWB As Workbook, p As PivotTable, strNewName As String 
03.
    'Tabellenblatt definieren auf dem die Pivottabelle liegt 
04.
    Set ws = Sheets(1) 
05.
    'Pivottabelle anhand Ihres Namens referenzieren 
06.
    Set p = ws.PivotTables("PivotTable1") 
07.
    'Gesamtbereich der Pivottabelle kopieren 
08.
    p.TableRange2.Copy 
09.
    'Neue Arbeitsmappe erstellen 
10.
    Set newWB = Workbooks.Add 
11.
    'Füge die Pivottabell als reine Daten mit Formatierung in die neue Mappe ein 
12.
    With newWB.Sheets(1).Range("A1") 
13.
        .PasteSpecial Paste:=xlPasteValuesAndNumberFormats 
14.
        .PasteSpecial Paste:=xlPasteFormats 
15.
        .PasteSpecial Paste:=xlPasteColumnWidths 
16.
    End With 
17.
    'Name der neuen Arbeitsmappe aus Zelle A1 des Worksheets auslesen (letzte 8 Zeichen der Zelle) 
18.
    strNewName = Right(ws.Range("A1").Value, 8) 
19.
    'Name des Sheets setzen 
20.
    newWB.Sheets(1).Name = strNewName 
21.
    'Neue Arbeitsmappe im selben Verzeichnis wie diese speichern 
22.
    newWB.SaveAs ThisWorkbook.Path & "\" & strNewName & ".xlsx" 
23.
    'neue Mappe schließen 
24.
    newWB.Close True 
25.
End Sub
Weitere Kommentare findest du im Code

Grüße Uwe
Bitte warten ..
Mitglied: winget
08.10.2014 um 10:36 Uhr
Hi Uwe,
wie immer sind deine Lösungen Klasse.
Ich habe nur ein kleines Problem.
In der Zeile 1-2 befindet sich mein Kopfbereich (die Daten sind statisch).
Wie kann ich das lösen?

Dein Code habe ich entsprechend angepasst, so dass die Daten erst ab Zelle A3 eingefügt werden.

Schon mal vielen Dank
Gruß
Paul
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 10:40 Uhr
Zitat von winget:
In der Zeile 1-2 befindet sich mein Kopfbereich (die Daten sind statisch).
Wie kann ich das lösen?
erklär mal ... wo? in der Pivot oder woanders ?
Bitte warten ..
Mitglied: winget
08.10.2014 um 10:55 Uhr
Ja. In der Pivottabelle >in der Sheet(1)<

Zur Verdeutlichung:
A1:E2 (statische Daten) > Kopfbereich
A3:E97(Pivot Daten - dynamisch) ist aber durch ("PivotTable1") definiert bzw. referenziert.

Die Zeile 12 habe ich bereits in (A3) geändert.

Danke noch mal
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 11:01 Uhr
Zitat von winget:
Zur Verdeutlichung:
A1:E2 (statische Daten) > Kopfbereich
Ist das Der Kopfbereich bzw. der Page-Bereich der Pivot ? und was willst du damit jetzt, willst du den nicht übernehmen oder doch ??

p.TableRange2.Copy 
kopiert die Pivot inklusive Kopfdaten (wenn ein Pivot-Page-Filter aktiviert ist)
p.TableRange1.Copy 
und das nur die Tabellendaten der Pivot
Bitte warten ..
Mitglied: winget
08.10.2014 um 11:01 Uhr
Ich will mit übernehmen!
Das ist der Page-Bereich der Pivot!
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 11:06 Uhr
Zitat von winget:

Ich will mit übernehmen!
Das ist der Page-Bereich der Pivot!
der wird automatisch durch die Range Eigenschaft TableRange2 mit übernommen, wenn es tatsächlich der Pagebereich ist (geht hier einwandfrei, ansonsten mach mal ein Bild)
p.TableRange2.Copy
Bitte warten ..
Mitglied: winget
08.10.2014, aktualisiert um 12:04 Uhr
Hi Uwe,
ich konnte über die Seite nich hochlanden.
Ich habe das Bild bei dropbox hochgeladen. Siehe Original-Beitrag

ob mit p.TableRange2.Copy oder p.TableRange1.Copy wird immer der Bereich (Pivobereich) A3:E26 kopiert und in die neue Datei eingefügt.

Danke
Paul
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 12:20 Uhr
ich hatte mit Pagebereich, den Kriterienbereich der Pivottabelle gemeint das ist was anderes als du vermutlich dachtest .....
egal du änderst Zeile 8 folgendermaßen ab:
ws.Range(p.TableRange2.Offset(-2, 0), p.TableRange2).Copy
und dein geändertes A3 kannst du wieder auf A1 ändern, bzw. dort wohin du die Tabelle im neuen Sheet platzieren willst.

Grüße Uwe
Bitte warten ..
Mitglied: winget
08.10.2014 um 12:27 Uhr
Kopieren funktioniert jetzt schon mal super.
Das Format für den "Kriterienbreich" wird aber nicht übertragen.

Aber das Funktioniert auch nicht, wenn man manuell die koplette Pivotabelle als Werte in einer anderen Tabelle überträgt und das das Format für die komplette Tabelle.
Für den Kriterienbereich muss man separat markieren und das Format übertragen.

Grüße
Paul
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 12:47 Uhr
Zitat von winget:

Kopieren funktioniert jetzt schon mal super.
Das Format für den "Kriterienbreich" wird aber nicht übertragen.
Die Formatierung musst du in der Pivottabelle nochmal wiederholen damit die Formate übertragen werden, nur selber eingefügte Formatierungen werden hierbei übertragen, die Pivot ist da leider besonders zu betrachten...wenn ich noch ein Workaround finde melde ich mich...
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 13:17 Uhr
Als Workaround kannst du es nach deinem gepostetem Bild so machen (hier wird die Formatierung des Detailbereiches dann mit übertragen):
01.
Sub ExportPivotTable() 
02.
    Dim ws As Worksheet, newWB As Workbook, p As PivotTable, strNewName As String 
03.
    'Tabellenblatt setzen auf dem die Pivottabelle liegt 
04.
    Set ws = Sheets(1) 
05.
    'Pivottabelle anhand Ihres Namens refernzieren 
06.
    Set p = ws.PivotTables("PivotTable1") 
07.
    'Bereich der Pivottabelle kopieren 
08.
    p.TableRange1.Copy 
09.
    'Neue Arbeitsmappe erstellen 
10.
    Set newWB = Workbooks.Add 
11.
    'Füge die Pivottabelle als reine Daten mit Formatierung in die neue Mappe ein 
12.
    With newWB.Sheets(1).Range("A3") 
13.
        .PasteSpecial Paste:=xlPasteValuesAndNumberFormats 
14.
        .PasteSpecial Paste:=xlPasteFormats 
15.
        .PasteSpecial Paste:=xlPasteColumnWidths 
16.
    End With 
17.
    'Kopfzeilen übertragen 
18.
    ws.Range("1:2").Copy newWB.Sheets(1).Range("A1") 
19.
     
20.
    'Name der neuen Arbeitsmappe aus Zelle A1 des Worksheets auslesen (letzte 8 Zeichen der Zelle) 
21.
    strNewName = Right(ws.Range("A1").Value, 8) 
22.
    'Name des Sheets setzen 
23.
    newWB.Sheets(1).Name = strNewName 
24.
    'Neue Arbeitsmappe im selben Verzeichnis wie diese speichern 
25.
    newWB.SaveAs ThisWorkbook.Path & "\" & strNewName & ".xlsx" 
26.
    'neue Mappe schließen 
27.
    newWB.Close True 
28.
End Sub
Bitte warten ..
Mitglied: winget
08.10.2014 um 14:37 Uhr
Das funktioniert Super...
Vielen Dank noch mal
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Excel VBA Datei auswählen, dateipfad und dateiname ohne Format speichern, und in anderem Format speichern
gelöst Frage von Momo2016VB for Applications1 Kommentar

Hallo, ich bin noch relativ neu in VBA und bräuchte eure Hilfe. Und zwar möchte ich vom Benutzer eine ...

Batch & Shell
Teile eines Dateinamens ändern mit Batch Datei
gelöst Frage von fffffuuuuuuuhhhhBatch & Shell4 Kommentare

Hallo, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Interpret - Titel _xxxxxx000.mp3 die x stehen für eine ...

Batch & Shell
INI Datei via Batch auslesen, verändern und nur einen Teil übernehmen in neue Datei
gelöst Frage von NovalyBatch & Shell2 Kommentare

Hallo Brauch mal Hilfe , hab schon einiges hier gefunden aber nichts klappt wie ich es genau möchte. folgendes: ...

Microsoft Office
Excel Zellen übernehmen
gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich möchte Daten von einem Tabellenblatt per Makro auf ein anderes übernehmen. Jetzt habe ich folgendes gemacht Sub ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing7 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...