Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot aktualisieren und via Mail senden

Forumthread: Pivot aktualisieren und via Mail senden

Pivot aktualisieren und via Mail senden
21.05.2008 18:51:00
Dustbin2001
Hallo zusammen,
ich versuche mich mal wieder mehr oder weniger erfolgreich an VBA.
Folgender Hintergrund:
Ich habe eine Excel-Tabelle mit zwei Tabellenblättern, wobei ein Tabellenblatt die Datenquelle ist und das andere Tabellenblatt eine Pivot-Tabelle dieser Datenquelle. Nun habe ich zwei Steuerbuttons auf dem Datenquellenblatt eingefügt. Der eine Button soll die Pivot Tabelle aktualisieren, der andere soll dann die Pivot Tabelle kopieren, in eine neue Worksheet einfügen, in einem bestimmten Ordner speichern und diese als E-Mail Anhang an eine Person via Mail versenden.
So weit so gut - und beide Makros funktionieren auch mehr oder weniger. Allerdings bin ich noch nicht ganz zufrieden und hätte gerne noch ein paar weitere Features.
Steuerbutton "Pivot aktualisieren":
Die Pivot Tabelle soll nach dem aktualisieren mit einem Passwort schreibegschützt werden, da die Person die diese bekommt zwar die Summen sehen darf, aber nicht wie sich diese zusammensetzen (was ja über einen Doppelklick in der Pivot Tabelle möglich wäre).
Steuerbutton "Pivot senden":
Die Datei (also die Pivot Tabelle in einer neuen Excel Datei) soll in einem ganz bestimmten Ordner gespeichert werden mit einem bestimmten Dateinamen. Der Dateiname befindet sich dabei in Zelle A1.
Bevor das ganze jedoch per Mail verschickt wird, hätte ich gerne noch eine Kontrollfrage, so in die Richtung "Wollen Sie wirklich die Datei versenden" - JA - NEIN. Allerdings habe ich keine Ahnung wie man das einbauen kann.
Ich hoffe ich konnte meine Problematik deutlich machen und hoffe auf Vorschläge!
Hier die Makros: Pivot senden:

Sub MailSenden()
Application.ScreenUpdating = False
On Error Resume Next
Dim empfänger As String
Dim i As Integer
Dim aws As String
Dim olapp As Object
For i = 1 To 1
Sheets(i).Activate
empfänger = Sheets(i).Range("D1").Value
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
aws = ActiveWorkbook.FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
Set Rng = Selection
.To = empfänger
'.CC = "" 'Optional Kopie an
'.BCC = "" 'Optional Blindkopie an
.Subject = Range("A1")
.HtmlBody = "
Hallo, 
dies ist ein Test.
.attachments.Add aws .Display SendKeys "%s", True 'Mail sofort senden ActiveWorkbook.Close Set olapp = Nothing End With Next i Sheets(1).Activate Application.ScreenUpdating = True End Sub


Pivot aktualisieren:


Sub PivotAktualisieren()
' PivotAktualisieren Makro
Sheets("Pivot Test").Select
Range("B20").Select
ActiveSheet.Unprotect
Range("B14").Select
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True
Sheets("test").Select
End Sub


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot aktualisieren und via Mail senden
21.05.2008 19:11:38
Daniel
Hallo
zum Thema Pivot-Schützen
wenn du die Pivot-Tabelle zum versenden in eine andere Datei kopierst, dann kannst du doch einfach in der neuen Datei mit KOPIEREN - INHALTE EINFÜGEN - WERTE die Pivot-Struktur zerstören und der Empfänger bekommt nur noch die nackten Zahlen, ohne jede weiteren zusammenhänge.
die Datei wäre dann auch deutlich kleiner und belastet die Server weniger
der Code wäre dann hier einzufügen:

ActiveWorkbook.ActiveSheet.Copy
with activesheet.usedrange
.copy
.pastespecial xlpastevalues
end with
ActiveWorkbook.SaveAs ActiveSheet.Name
...


noch besser wäre es natürlich, die Datei als PDF zu drucken und dann dieses zu versenden.
ne Kontrollabfrage baut man so in den Code ein:


Select Case MsgBox("Wollen sie wirklich Senden?", vbYesNo + vbQuestion, "Sicherheitsabfrage") _

Case vbYes
'--- Hier den Code zum Mailversand einfügen
Case Else
'--- Hier den Code einfügen, der laufen soll, wenn nicht gesendet wird
End Select
'--- hier dann der Restliche Code, der sowieso noch laufen muss


Gruß, Daniel

Anzeige
AW: Pivot aktualisieren und via Mail senden
21.05.2008 19:33:00
Dustbin2001
Hallo Daniel,
danke für die prompte Antwort.
Daran hatte ich noch gar nicht gedacht. Eigentlich könnte man die Pivot Struktur wirklich in der neuen Tabelle zerstören. Macht Sinn. Dein zweiter Vorschlag mit PDF, lässt sich so etwas auch über ein Marko verwirklichen (wie gebe ich im Makro an dass er ein bestimmtes Dateiformat verwenden soll?).
Ok, das mit der Sicherheitsabfrage vor dem Senden habe ich hinbekommen und es funktioniert. Danke!
Hast Du auch eine Lösung wegen dem Speicherort? Bei mir wählt es immer den Ordner wo die eigentliche Datei gespeichert ist!
Danke u. Gruß
Dustbin2001

Anzeige
AW: Pivot aktualisieren und via Mail senden
21.05.2008 19:50:00
Daniel
Hi
zum Speichern musst du halt den ganzen Dateipfad mit angeben, also

ActiveWorkbook.SaveAs "C:\Deinpfad\" & ActiveSheet.Name


die erstelleng des PDFs steuert man normalerweise über den Ausdruck, dh. du musst, falls ihr das bei euch installiert habt, den PDF-Generator im Druckermenü auswählen und dann die Seite ausdrucken.
wie das per Makro geht und wie euer PDF-Drucker heißt, kannst du mit dem Makrorecorder rausfinden.
allerdings hab ich hierbei keine Anhnung wie man dann den Mailversand automatisiert.
Gruß, Daniel

Anzeige
AW: Pivot aktualisieren und via Mail senden
21.05.2008 20:33:59
Renee
Hi Dustbin,
Mit Excel 2007 kannst du mit diesem Add-In ganz einfach einen .SaveAs *.pdf sichern. Da brauchste keinen PDF-Printer.
GreetZ Renée
;
Anzeige
Anzeige

Infobox / Tutorial

Pivot Tabelle aktualisieren und via E-Mail versenden


Schritt-für-Schritt-Anleitung

  1. Pivot Tabelle aktualisieren

    • Füge einen Button in dein Excel-Datenblatt ein und nenne ihn "Pivot aktualisieren".
    • Nutze den folgenden VBA-Code, um die Pivot Tabelle zu aktualisieren:
    Sub PivotAktualisieren()
       Sheets("Pivot Test").Select
       ActiveSheet.Unprotect
       ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
       ActiveSheet.Protect
    End Sub
  2. Pivot Tabelle per E-Mail versenden

    • Erstelle einen weiteren Button mit der Bezeichnung "Pivot senden".
    • Verwende diesen VBA-Code, um die Pivot Tabelle in eine neue Arbeitsmappe zu kopieren und sie als E-Mail zu versenden:
    Sub MailSenden()
       Dim empfänger As String
       empfänger = Sheets("Datenblatt").Range("D1").Value
       ActiveSheet.Copy
       ActiveWorkbook.SaveAs "C:\Deinpfad\" & ActiveSheet.Name
       ' E-Mail-Versand
       ' (Hier den Code für den E-Mail-Versand einfügen)
    End Sub
  3. Passwortschutz hinzufügen

    • Um die Pivot Tabelle nach dem Aktualisieren zu schützen, kannst du den Schutz im PivotAktualisieren-Makro aktivieren.
  4. Sicherheitsabfrage einfügen

    • Verwende den folgenden Code, um eine Sicherheitsabfrage einzufügen:
    Select Case MsgBox("Wollen Sie wirklich die Datei versenden?", vbYesNo + vbQuestion, "Sicherheitsabfrage")
       Case vbYes
           ' Hier den Code zum Mailversand einfügen
       Case Else
           ' Code, der ausgeführt wird, wenn nicht gesendet wird
    End Select

Häufige Fehler und Lösungen

  • Fehler: Pivot-Tabelle verschwindet beim Aktualisieren

    • Stelle sicher, dass du die Pivot Tabelle korrekt referenzierst. Überprüfe den Namen der Pivot Tabelle in deinem VBA-Code.
  • Fehler: E-Mail wird nicht gesendet

    • Überprüfe die E-Mail-Adresse in Zelle D1. Stelle sicher, dass die Outlook-Anwendung korrekt eingerichtet ist.
  • Fehler: Passwortschutz funktioniert nicht

    • Achte darauf, dass du die Protect-Methode richtig anwendest und dass die Arbeitsmappe nicht schreibgeschützt ist.

Alternative Methoden

  • Pivot Tabelle ohne Datenquelle versenden

    • Du kannst die Pivot Tabelle in eine neue Arbeitsmappe kopieren und die Struktur mit "Inhalte einfügen - Werte" zerstören, damit der Empfänger nur die Zahlen sieht.
    ActiveWorkbook.ActiveSheet.Copy
    With ActiveSheet.UsedRange
       .Copy
       .PasteSpecial xlPasteValues
    End With
  • Export als PDF

    • Eine Alternative ist, die Pivot Tabelle als PDF zu speichern. Dies kannst du mit einem PDF-Drucker oder einem speziellen Add-In für Excel erledigen.

Praktische Beispiele

  • Pivot Tabelle aktualisieren und per E-Mail versenden

    • Du kannst die beiden oben genannten Makros kombinieren, um einen vollständigen Workflow zu erstellen, der die Pivot Tabelle aktualisiert und sie dann automatisch versendet.
  • Sicherheitsabfrage vor dem Senden

    • Integriere die Sicherheitsabfrage in den Mail-Versand-Code, um sicherzustellen, dass der Benutzer die E-Mail bestätigen muss.

Tipps für Profis

  • Nutze Fehlerbehandlung in deinen Makros, um unerwartete Fehler abzufangen.
  • Experimentiere mit Benutzerformularen, um die Benutzeroberfläche für die Eingabe von E-Mail-Adressen und Dateinamen zu verbessern.
  • Verwende Relative Zellreferenzen, um deine Makros flexibler zu gestalten und sie auf verschiedenen Tabellenblättern anwendbar zu machen.

FAQ: Häufige Fragen

1. Wie kann ich die Pivot Tabelle manuell aktualisieren? Du kannst die Pivot Tabelle manuell aktualisieren, indem du mit der rechten Maustaste auf die Pivot Tabelle klickst und "Aktualisieren" auswählst.

2. Gibt es eine Möglichkeit, die Pivot Tabelle als PDF zu speichern? Ja, du kannst die Pivot Tabelle als PDF speichern, indem du entweder einen PDF-Drucker verwendest oder ein Add-In für Excel installierst, das diese Funktionalität bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige