Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige