Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Angaben aus Pivot per VBA in E-Mail
#1
Hallo,

ich habe eine Tabelle die relativ viele Einträge beinhaltet. Mittels zweier Pivots werden die Werte ausgegeben die interessant sind (je nachdem welchen Filter man einstellt).

Teile dieser Pivots möchte ich in eine E-Mail einbringen (in den Text integrieren), welche mittels Makro erstellt werden soll und einen standardisierten Aufbau hat.

Hier gerate ich nun an zwei Probleme:

1. in der Pivot stehen Prozentzahlen die beim Einfügen in den E-Mailbody zu Dezimalzahlen werden (eigentlich auch logisch, ich blick nur nicht wie man das ändert)

2. die Pivot hat je nachdem was man im Filter einstellt, unterschiedlich viele Zeilen. ich möchte aber alle Zeilen in die E-Mail einfügen. Der betrachtete Bereich kann also mal 2 Zeilen und mal 15 Zeilen lang sein.

Mein Code sieht hier bisher folgendermaßen aus:



Code:
Sub Email()
Dim objOutlook As Object
Dim objMail As Object
Dim rng As Range
Dim KW As String
KW = Worksheets("Tabelle1").Cells(1, 5).Value
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
   .To = "[email="user1@beispiel.de"]user1@beispiel.de[/email]; [email="user2@beispiel.de"]user2@beispiel.de[/email]"
   .Subject = "Durchführung in KW " & KW
   .Body = "Hallo," & Chr(13) & _
           Chr(13) & _
           "in der letzten Kalenderwochen wurden folgende Ergebnisse erzielt:" & Chr(13) & _
           Chr(13) & _
           Range("J8").Value & ":" & " " & Range("K8").Value & "(" & Range("L8") & ")" & Chr(13) & _
           Chr(13) & _
           "in der nächsten Kalenderwoche werden folgende Bereiche behandelt:" & Chr(13) & _
           Chr(13) & _
           Range("O8").Value & Chr(13) & _
           Chr(13) & _
           "Viele Grüße"

   .Display
End With
End Sub

klingt eigentlich alles nicht so schwer, ich kriegs aber nicht hin.

hat hier jemand Lösungen für mich?

Danke und Gruß


Angehängte Dateien
.xlsm   Beispieldatei.xlsm (Größe: 24,29 KB / Downloads: 2)
Antwortento top
#2
Hallöchen,

Die Prozente könntest Du z.B. mit FORMAT(…) ausgeben lassen.

Die Zeilenzahl des letzten Eintrages könntest Du z.B. mit

lLastRow=Cells(Rows.Count,1).End(xlup).Row

feststellen. Hier wäre es anhand des letzten Eintrages in Spalte A, und dann wenn es zeilenweise gehen soll in einer Schleife abarbeiten, z.B.

For iCnt = 8 to lLastRow

Range("J" & iCnt).Value

Next
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hallo,

danke schonmal für die Lösungswege.

Das mit LastRow… war schonmal ein guter Hinweis. Daraus konnte ich was basteln. Danke.

Das mit Format verstehe ich noch nicht so ganz. Wo und wie baue ich das am besten ein? Ich hab ja die Pivot die mir Prozentwerte angibt. Wenn ich das per Makro in den Body einfüge, dann wird das ja zu Dezimalzahlen.  Also wo am besten Format einsetzen?

Danke und Gruß
Antwortento top
#4
Hallöchen,

du verarbeitest damit jeweils die Zelle der Zeile, wo die Prozentzahl steht, z.B.

Format(Range("A1"), "0.00 %")
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#5
(06.05.2020, 12:25)Blacko schrieb: 1. in der Pivot stehen Prozentzahlen die beim Einfügen in den E-Mailbody zu Dezimalzahlen werden (eigentlich auch logisch, ich blick nur nicht wie man das ändert)

Hallo, 19

ohne Format einfach so: 21

Code:
Range("J8").Text & ":" & " " & Range("K8").Text & "(" & Range("L8").Text & ")" & Chr(13) & _

Eventuell noch für dich interessant:

Referencing Pivot Table Ranges in VBA...

Dort siehst du wie man eine Pivot in VBA ansprechen kann.
________
Servus
Case
Antwortento top
#6
super, vielen Dank euch.
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste