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

Einzelnes Tabellenblatt per Email versenden!

Einzelnes Tabellenblatt per Email versenden!
20.07.2004 09:30:17
DonFiala
Hallo zusammen,
habe mir mit viel Mühe folgendes Makro zusammengeklaut, aufgezeichnet und nachbearbeitet. Das geschützte Tabellenblatt wird in eine Neue Excel Datei unter einem im Ursprungstabellenblatt festgelegten Namen&Datum gespeichert!
Der Blattschutz wird hierfür aufgehoben! Der ertse Teil des Makros funktioniert soweit einwandfrei!
Dann soll dieses neue Tabellenblatt als Outlook Anhang versendet werden (Ideal wäre wenn ich wie mit dem Speichernamen im Excel einen Email Namen festlegen könnte) Leider wird immer die riesige Ursprungsdatei in den Anhang gepackt! Nehme mal an das liegt daran dass das Makro auch in der URsprungsdatei liegt?!
Weiss jmd. Rat? Das kann doch für Leute die net so planlos sind wie ich net so schwer sein?
Vielen Dank
ActiveSheet.Select
ActiveSheet.Copy
Cells.Select
ActiveSheet.Unprotect "Passwort"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
_

Dim DName As String, Dateiname As String, Pfad As String
Pfad = "\\Server\Firmendaten"
DName = Range("R2")

Dateiname = Pfad & "\" & DName & Format(Now, "YYYY.MM.DD") & ".xls"
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!


ActiveWorkbook.SaveAs Filename:=Dateiname
ActiveSheet.Select
'

Sub Excel_Workbook_via_Outlook_Senden()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
InitializeOutlook = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "irgendwer@provider"
.Subject = "Testmeldung von Excel2000 " & Date & Time
.attachments.Add AWS
.Body = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelnes Tabellenblatt per Email versenden!
Ramses
Hallo
Du musst die Zeile
AWS = ThisWorkbook.FullName
gegen
AWS = Den_Speichernamen_deiner_neuen_Tabelle
austauschen
Gruss Rainer
AW: Einzelnes Tabellenblatt per Email versenden!
20.07.2004 10:44:10
DonFiala
Alles Klar,
vielen Dank! Habe
AWS = Pfad & "\" & DName & Format(Now, "YYYY.MM.DD") & ".xls"
kopiert und damit klappts. Dann habe ich noch das QutApp.Quit deaktiviert und
noch
Dim D2Name As String
eingefügt sowie
.To = D2Name STATT .To = "irgendwer@provider"
Damit kann ich jedes Tabellenblatt dem jeweiligen im Tabellenblatt hinterlegten Empfänger zumailen! Vielen Dank! Hätt nie gedacht dass ich das jemals hinbekomme!
Anzeige
Merci :-)
Ramses
Hallo
nachdem der ursprüngliche Code ja von mir ist ;-))
Gruss Rainer
AW: Merci :-)
20.07.2004 12:08:49
DonFiala
Hallo,
nach dieser kompetenten Hilfe darf ich Dich vielleicht noch ein letztes mal nerven!
Hab noch ein paar kleinigkeiten im (sicher von mir immer noch zu sehr aufgeblähten) Makro verändert! So wird vom ersten Teil des Makros die Datei in der (Layout) Form erzeugt in der ich es haben möchte. Dachte zwar ich kann auf den Grossteil des ersten Makros verzichten aber irgendwie klappt das nicht also lasse ich das auch so.
Die Datei wird später auch geschlossen und in den Anhang vom Outlook gepackt!
Nur was mich richtig fertig macht und damit die ganze bisherige Arbeit "fast" zerstört
ist die Tatsache dass in der Datei im Anhang die in den Ursprungsdateien ausgeblendeten Zellen zu sehen sind. Und da das mal 20 hässliche Zellen und mal 80 sind ist das naja, sehr sehr sehr unangenehm! :-(
Da gibts doch sicher nen Befehl mit "False" den ich irgendwo einfügen kann? Ich hoffe inständig dass es da ne Lösung gibt, bin seit Stunden an diesem zu 99% fertigen Makro!!
1000 Mrd. Dank !

Sub email()
ActiveSheet.Select
ActiveSheet.Copy
Cells.Select
ActiveSheet.Unprotect "DonFiala"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.protect "DonFiala"
Dim DName As String, Dateiname As String, Pfad As String
Pfad = "\\Server\Firmendaten\0_FCC-Kunden\1_Kunden Liebrich\Lorinser\3_Balanced_Scorecard\ZE"
DName = Range("R2")
Dateiname = Pfad & "\" & DName & Format(Now, "YYYY.MM.DD") & ".xls"
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!
ActiveSheet.Select
ActiveWindow.Close SaveChanges:=0
' 

Sub Excel_Workbook_via_Outlook_Senden()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
Dim D2Name As String
D2Name = Range("R3")
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = Pfad & "\" & DName & Format(Now, "YYYY.MM.DD") & ".xls"
' AWS = ThisWorkbook.FullName
InitializeOutlook = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = D2Name
' .To = "D2Name"
.Subject = "Zielerreichungsgespräch " '& Date
.attachments.Add AWS
'.Body = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
' OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

Anzeige
AW: Merci :-)
20.07.2004 12:44:55
DonFiala
Hmm,
ganz so einfach wie ich dachte is es wohl doch nicht! Is noch irgendwie der Wurm drin!
Die Makros sind "zu unabhängig" voneinander! Ich glaube das logischste Vorgehen wäre
dass der erste Teil des Makros, der das kleine Tabellenblatt aus der Ursprüngsdatei kopiert (und gespiechert) dann (monatlich, kontextbezogen) gefüllt wird und erst dann, nach einem Klick auf den Email Button (Makro) verschickt wird.
Irgendwie hab ich bisher 2 unabhängige Dateien! Der erste Teil der Datei klappt gut!
Aber wenn ich dann das neue Tabellenblatt fülle und auf Email senden gehe, hab ich wieder ein leeres Blatt mit den unnütz eingeblendeten Zellen! Hoffe auf Hilfe und Suche weiter! Vielen Dank
Anzeige
AW: Merci :-) - Final
20.07.2004 14:22:16
DonFiala
Also,
habe jetzt das Makro nur leicht verändert in der Art dass das vorher Speichern auch bei der Email Variante eingebaut wird (Allerdings in einem eigenen Ordner; is besser wegen Überschreibungsprompt). Dadurch hab ich das Problem mit den eingeblendeten Zeilen nicht mehr!
Alle anderen Probleme sind z.T. auch konzeptionell!
So werden die Blätter wohl erher zunächt Kommentarlos per Email versandt, wodurch es nicht wichtig ist den Text aus welchem editierten Blatt auch immer per Makro zu kopieren!
Wenn man editieren will kann man auch das Attachment öffnen!
Alle anderen Veränderungen kann man nach dem automatischen "Speichern unter" befehl vornehmen! Beim beenden wird man ja dann nach Speicher, ja nein gefragt...
Das einzige was man natürlich eben nicht machen kann ist erneut den Button zu benutzen,
da Excel ja sonst versucht die Datei unter einem bereits geöffneten Namen zu speicher...
Vielen dank auf jeden Fall! Ich komme wieder :-)
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige