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

automatisch Dateinamen vergeben

automatisch Dateinamen vergeben
07.02.2007 21:32:46
Wrobel
Hi Excelprofis,
meine Kenntnisse in VBA sind nicht so gut, daher hoffe ich auf eure Hilfe bzgl. eines Codes welcher Arbeitsblätter per Outlook versendet.
Mein Problem ist, das der Dateiname jedesmal manuell vergeben werden muss, meine Idee ist es den Dateinamen aus der Zelle A1 zu entnehmen, anstatt jedesmal manuell einzugeben.
Ist dies möglich? Bin für jede Hilfe dankbar!
Der Code sieht folgendermaßen aus:

Sub Arbeitsblatt_versenden()
'aktives Tabellenblatt als Arbeitsmappe
'im Temporären Ordner speichern, als
'Anlage mit Outlook versenden und anschliesend löschen
Dim strPath As String
Dim strName As String
Dim strFile As String
strPath = "C:\Windows\Temp\" 'Pfad
strName = InputBox("Dateiname eingeben, xls wird automatisch vergeben")
If strName = "" Then Exit Sub
'strName = ActiveSheet.Name 'Tabellenname
strFile = strPath & strName & ".xls"
Application.ScreenUpdating = False
ActiveSheet.Copy
Cells.Select
Selection.Copy
Call Verknuepfungen_löschen
'Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
' False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
With ActiveWorkbook
.SaveAs strFile
Senden strFile 'Datei versenden
.Close
End With
Kill strFile 'Datei löschen
Application.ScreenUpdating = True
End Sub


Sub Senden(AWS As String)
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = " "
'.Subject = InputBox(strName) '"strName" ' "Betreffzeile Header"
.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
'.Send
End With
'OutApp.Quit
'Set OutApp = Nothing
'Set Nachricht = Nothing
End Sub


Sub Verknuepfungen_löschen()
ActiveSheet.Unprotect
On Error GoTo Errorhandler
Do
Cells.Find(What:=".XLS", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Loop
Errorhandler:
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: automatisch Dateinamen vergeben
07.02.2007 21:50:43
IngGi
Hallo Wrobel,
das sollte so gehen:
strName = Range("A1")
Gruss Ingolf
AW: automatisch Dateinamen vergeben
07.02.2007 22:03:37
Wrobel
Hi Ingolf,
danke dir für deine schnelle Antwort, funktioniert mit deinem Befehl.
Sag mal kann man auch ein festen Betreff und einen festen Text (Textfeld in der E-Mail) in den Code einzubauen? Wenn ja wie?
Ich muss jetzt immer den Betreff und den Text manuell eingeben nervt etwas.
Gruß
AW: automatisch Dateinamen vergeben
07.02.2007 22:28:10
IngGi
Hallo Wrobel,
im Makro "Senden" gibt es ja schon die Punkte
.To = ""
für den Betreff und
.Body = ""
für dem eMailtext. Schreib die entsprechenden Texte dafür einfach zwischen die Anführungszeichen (bei .Body alles was im Moment noch hinter dem "=" steht zunächst löschen).
Gruss Ingolf
Anzeige
Danke
08.02.2007 10:20:06
Wrobel
Dank dir für den Tipp! Gruß Wrobel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige