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

Schreibschutz bei kopieren, speichern, mailen

Schreibschutz bei kopieren, speichern, mailen
Christiane
Hallo,
ich habe versucht ein einzelnes Tabellenblatt zu kopieren, zu speichern
und dann per Mail zu versenden.
Hier der Code:

Sub Blatt_senden()
Sheets("Rechnung").Copy
ActiveWorkbook.SaveCopyAs Filename:="G:\Rechnungen\" & ThisWorkbook.Name
Application.Dialogs(xlDialogSendMail).Show
Application.DisplayAlerts = True
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub

Nun habe ich aber 2 Probleme:
1. Wenn das Blatt versandt wird, bekommt der Empfänger die Datei
schreibgeschützt.....so steht es dann zumindest oben in der Excel-Leiste.
Ist das immer so oder kann ich den Schreibschutz aufheben?
2. Ich würde gerne die Datei mit dem vorher abgespeicherten Namen versenden
und nicht mit Mappe1.xls in der Anlage. Welche Zeile fehlt mir den zwischen
dem
ActiveWorkbook.SaveCopyAs Filename:="G:\Rechnungen\" & ThisWorkbook.Name
und dem
Application.Dialogs(xlDialogSendMail).Show
Ich hab schon soviel rumprobiert, ich komm einfach nicht drauf.
Kann mir jemand von den hilfsbreiten Profis bei meinen beiden Problemen helfen
bzw. weiß jemand Rat?

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

Betreff
Benutzer
Anzeige
AW: Schreibschutz bei kopieren, speichern, mailen
16.02.2006 08:22:12
marcl
Hallo Christiane,
ich habe es so geregelt. Ist aber nicht die Superlösung:

Sub Makro1()
Sheets("Rechnung").Select
Cells.Select
Selection.Copy
Workbooks.Add
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
pfadname = "G:\Rechnungen\" & ThisWorkbook.Name
Range("a1").Select
ActiveWorkbook.SaveAs Filename:=pfadname
Dim objExcelWD As Excel.Window
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
Dim intRow As Integer, intCounter As Integer
Dim strFile As String, strFile2 As String, strRecipient As String, strSubject As String
Dim bolStatusBar
bolStatusBar = Application.DisplayStatusBar
Set objOutlook = CreateObject("Outlook.Application")
strRecipient = "Dein Empfänger@Mail.de"
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add(strRecipient)
objOutlookRecip.Type = olTo
Set objOutlookAttach = .Attachments.Add(pfadname)
On Error Resume Next
.Subject = "Dein Betreff"
objOutlookRecip.Resolve
End With
Set objOutlook = Nothing
objOutlookMsg.Display
Application.StatusBar = False
Application.DisplayStatusBar = bolStatusBar
ActiveWorkbook.Close
Kill pfadname
Application.DisplayAlerts = False
Application.Quit
End Sub

Gruß
marcl
Anzeige
AW: Schreibschutz bei kopieren, speichern, mailen
16.02.2006 08:52:55
Christiane
Guten Morgen Marcl,
dank für deine Hilfe und Mühe die du dir gemacht hast......ich weiß selbst das man da
immer viel Zeit mit verbringen kann.
Habe deinen Code eingetragen aber es schmeißt mir immer bei folgenden Punkt ne
Fehlermeldung raus:
Dim objOutlook As Outlook.Application
Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert.
Leider bringt mir auch der untere Teil mit dem Outlook nicht viel, da ich nie einen
bestimmten eMail Empfänger habe sondern diese meisten variabel sind und die Mitarbeiter
diese aus ihrem Adressbuch einfügen möchten. Deshalb sollte auch der Teil
Application.Dialogs(xlDialogSendMail).Show irgendwie bleiben.
Gruß Christiane
Anzeige
Lösung teilw. gefunden, wie gebe ich Ziellaufwerk
16.02.2006 09:34:47
Christiane
Hallo nochmal,
habe auf einer englischen Seite teilweise eine Lösung für mein Problem gefunden.
Ich habe nur von VBA nicht viel Ahnung. Kann mir jemand sagen, wie ich noch den
Speicherort bzw. Ziellaufwerk G.\Rechnungen eingeben kann.
Hier ist der Code:

Sub Blatt_senden()
On Error GoTo Terminator
Application.ScreenUpdating = False
Dim shtName As String
shtName = ActiveSheet.Name
Sheets("Rechnung").Copy
ActiveWorkbook.SaveAs Filename:=Application.GetSaveAsFilename("Copy of " & _
ThisWorkbook.Name, "Microsoft Excel-Arbeitsmappe, *.xls")
Application.DisplayAlerts = False
Application.Dialogs(xlDialogSendMail).Show
With ActiveWorkbook
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Terminator:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Anzeige
Hurra......Lösung gefunden !!
16.02.2006 11:04:36
Christiane
Hallo,
hab gerade die Lösung gefunden und es funktioniert.
Der Code sieht nun wie folgt aus (für die, die ein ähnliches Problem haben):

Sub Blatt_senden()
On Error GoTo Terminator
Application.ScreenUpdating = False
Dim shtName As String
shtName = ActiveSheet.Name
Sheets("Rechnung").Copy
Const Pfad As String = "g:\Arbeitsdaten\Rechnungen\"
ActiveWorkbook.SaveAs Filename:=Application.GetSaveAsFilename("Copy of " & _
ThisWorkbook.Name, "Microsoft Excel-Arbeitsmappe, *.xls")
Application.DisplayAlerts = False
Application.Dialogs(xlDialogSendMail).Show
With ActiveWorkbook
.Close False
End With
Terminator:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Gruß
Christiane
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige