Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datei verschicken ohne Makri

Betrifft: Datei verschicken ohne Makri von: Martin
Geschrieben am: 29.09.2014 10:03:13

Liebe Kollegen,

kann ich aus Excel die aktuelle Mappe ohne makro per Button verschicken (Hintergrund die Makroeinstellungen sind in der Firma etwas restriktiv).

Danke
Martin

  

Betrifft: AW: Datei verschicken ohne Makri von: Martin
Geschrieben am: 29.09.2014 10:18:29

Hallo Martin,

in den Excel-Optionen unter "Anpassen" kannst du den entsprechenden Befehl auswählen und in die Symbolleiste für den Schnellzugriff ablegen.

Viele Grüße

Martin


  

Betrifft: AW: Datei verschicken ohne Makri von: fcs
Geschrieben am: 29.09.2014 11:20:14

Hallo Martin,

wenn du die aktive Datei ohne Makros versenden willst, dann musst du sie zunächst in einem Makrofreien Format speichern.
Damit dies ohne Störungen an der Originaldatei funktioniert wird zunächst eine Kopie gespeichert und diese dann für den Versand aufbereitet.

Nachfolgend ein entsprechendes Makro.
Den Versand der Datei kannst du dann ins Makro integrieren, oder mit den in Excel integrierten Standardfunktionen ausführen.


Gruß
Franz

'Erstellt unter Excel 2010
Sub SendCopyNoMakros()
  Dim wkbThis As Workbook, wkbCopy As Workbook
  Dim strCopy As String, strMailFile As String
  
  'Datei-Kopie ohne Makros erstellen - funktioniert ab Excel 2007
  Set wkbThis = ActiveWorkbook
  'Temporäre Kopie der aktiven Datei erstellen
  strCopy = wkbThis.Path & Application.PathSeparator & "tmp" & wkbThis.Name
  wkbThis.SaveCopyAs Filename:=strCopy
  With Application
    .EnableEvents = False
    .ScreenUpdating = False
  End With
  'Temporäre Kopie öffnen
  Set wkbCopy = Application.Workbooks.Open(Filename:=strCopy)
  'Temporäre Kopie ohne Makros speichern
  strMailFile = wkbThis.Path & Application.PathSeparator _
        & Left(wkbThis.Name, InStrRev(wkbThis.Name, ".") - 1) 'Name der Maildatei
  Application.DisplayAlerts = False
  wkbCopy.SaveAs Filename:=strMailFile, FileFormat:=51
  'Mail-Datei schließen und wieder öffnen - dann wird VBA-Projekt auch nicht mehr angezeigt
  wkbCopy.Close
  Application.DisplayAlerts = True
  Set wkbCopy = Application.Workbooks.Open(Filename:=strMailFile)
  'temporäre Kopie der aktiven Datei wieder löschen
  VBA.Kill strCopy
  
  With Application
    .EnableEvents = True
    .ScreenUpdating = True
  End With
  
  MsgBox "Datei ohne Makros bereit für Versand"
  'Mailversand
  'wkbCopy.SendMail Receipients:=Array("Test@Test.de", "Test2@Test.de"), _
      Subject:="Testdatei  - Stand:" & Format(Date, "YYYY-MM-DD"), _
      Returnreceipt:=False
  
  'wkbCopy.Close savechanges:=False
  
End Sub