1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo an alle,

wie ich gesehen habe sind hier genau die Spezialisten unterwegs die ich für mein Problem suche.
Ich habe eine Excel Tabelle in welcher ich ab Zeile 7 Daten eintrage. Jetzt möchte ich eine etwas komplexere
Funktion durchführen. Beim Drücken des eingefügten Funktionsbuttons möchte ich diese Datei in einem Speziellen
Laufwerk (o:\....) unter dem Namen welcher in der Zelle M3 & N3 steht speichern. Zudem möchte ich dass die neue Datei gleich
als Anhang an eine E-Mail (Outlook) angehängt wird und in der ursprünglichen Datei die Datensätze ab Zeile 7 gelöscht werden.
Ich habe das mit dem Speichern hin bekommen und würde vielleicht auch das mit dem löschen hin bekommen aber das mit der
E-Mail…
Ich weiß nicht ob das überhaupt geht aber es wäre eine super große Arbeitserleichterung.

Win7 / Office 2010

Gruß
Sebastian

8 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Sebastian,
wie sieht dein Makro zum Speichern aus?
Oder uploadl eine Musterdatei, und füg den Link ins Forum ein.

Gruß
fedjo
0 Punkte
Beantwortet von
Hier der Befehl:

Sub SaveandSend()
'
' SaveandSend Makro
'

'

Sub speichern_unter()

ActiveWorkbook.SaveAs "O:\Orderconf USA" & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls gespeichert.", , "OK"

End Sub
0 Punkte
Beantwortet von
Ergänzung:

Durch das Speichern der Daten unter der neuen Bezeichnung wird die Ausgangsdatei ja nicht verändert was das mit dem Löschen der Daten hinfällig macht.
Mir gehlt somit nur die Funktion des Sendens der neune Datei als E-Mail Anhang ab.
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Sebastian,

da ich selbst nicht mit Outlook arbeite, habe ich mal unter Google nachgeschlagen und diesen Adresse gefunden, die mir als sehr geeignet vorkam.

Vielleicht hilft Dir eines der dort aufgeführten Makros.

www.online-excel.de/excel/singsel_vba.php?f=86


In diesem Sinne.. have a nice Day... LG Helmut
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Sebastian,
vielleicht so:
Sub Mappe_versenden()
Dim objOL As Object
Dim objMail As Object
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Application.ScreenUpdating = False
With objMail
.To = "" 'Deine E-Mail Adresse"
.Subject = "Aktuelle Umsatzzahlen"
.Body = "Dein Text"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
Application.ScreenUpdating = True
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von
So, jetzt bin ich schon ein ganzes Stück weiter und bis hierher funktioniert auch alles aber vielleicht habt ihr ja den Rest der Lösung für mich.

Folgenden Befehl habe ich jetzt:

Sub SaveandSend()
'
' SaveandSend Makro
'

'

Sub speichern_unter()


ActiveWorkbook.SaveAs "O:\Orderconf USA\" & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls gespeichert.", , "OK"


Dim objOL As Object
Dim objMail As Object
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Application.ScreenUpdating = False
With objMail
.To = "Test@Test.com"
.Subject = "Orderconfirmation"
.Body = "Please find attached the order confirmation for above mentioned PO"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
Application.ScreenUpdating = True
End Sub


Wer kann mir dies jetzt so umbauen dass als erstes eine Prüfung abläuft ob Zelle N3 belegt ist ansonsten Fehlermeldung und keine weiteren Aktionen.
Zweitens möchte ich dass die Mal nicht automatisch abgesendet wird sondern als Entwurf offen auf dem Screen erscheint...
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
If Range("N3") ="" Then Exit Sub

Dim objOL As Object
Dim objMail As Object
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Application.ScreenUpdating = False
With objMail
.To = "Test@Test.com"
.Subject = "Orderconfirmation"
.Body = "Please find attached the order confirmation for above mentioned PO"
.Attachments.Add ActiveWorkbook.FullName
.Display
'.Send
End With
Application.ScreenUpdating = True
End Sub
0 Punkte
Beantwortet von
Ich bin echt froh dass es doch viele Spezialisten gibt die einem weiter helfen.... Danke an alle hier ... jetzt macht das Ding alles was ich wollte.

Hier noch die letzte Version:


Sub SaveandSend()
'
' SaveandSend Makro
'

'

Sub speichern_unter()

If Range("N3") = "" Then Exit Sub

ActiveWorkbook.SaveAs "O:\Orderconf USA\" & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("M3").Value & ActiveSheet.Range("N3").Value & ".xls gespeichert.", , "OK"


Dim objOL As Object
Dim objMail As Object
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Application.ScreenUpdating = False
With objMail
.To = "test@test.com"
.Subject = "Orderconfirmation" & ActiveSheet.Range("N3")
.Body = "This is an automatic created E-Mail. Please find attached the order confirmation for above mentioned PO"
.Attachments.Add ActiveWorkbook.FullName
.Display
'.Send
ActiveWorkbook.Close
End With
Application.ScreenUpdating = True
End Sub


Gruß
Sebastian
...