Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 14:18:05
28.04.2024 13:43:14
Anzeige
Archiv - Navigation
1020to1024
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
Inhaltsverzeichnis

Speichern ohne Makros

Speichern ohne Makros
28.10.2008 18:24:09
Paul
Ich habe mir folgendes Makro mit eurer freundlichen Unterstüzung zusammengebastelt und es funktioniert fast alles (speichern, mailen, anhängen) so wie ich es möchte, nur ein Problem kann ich nicht lösen:
Ich möchte, dass die Datei die hier unter E:\LB gespeichert wird, keine Makros enthält.
Alle diesbezüglichen Einträge im Forum konnte ich bisher nicht umsetzen daher jetzt hier das gesamte Makro mit der Bitte, die Speicherprozedur anzupassen!

Sub Lackbericht()
Dim OApp As Object, OMail As Object
Dim strAtt As String
Dim attAdd As Boolean
Dim n As String, n1 As String
n = Range("F8").Value
n1 = Range("H8").Value
n2 = Range("G53").Value
Range("i53").Select
ActiveCell.FormulaR1C1 = "=NOW()"
ActiveSheet.SaveAs Filename:="E:\LB\" & "LB-" & n & "-" & n1 & "-" & n2 & ".xls" '
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("a7").Select
Dim var
var = [h8]
On Error GoTo ErrExit
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OApp = CreateObject("Outlook.Application")
OApp.Session.Logon
Set OMail = OApp.CreateItem(0)
With OMail
.To = "tt.ttt.de" 'Empfänger
.Subject = "LB-" & ActiveSheet.Range("f8").Value & "-" & ActiveSheet.Range("h8").Value
.Attachments.Add ActiveWorkbook.FullName
Do
strAtt = Application.GetOpenFilename("Alle Dateien (*.*),*.*")
If strAtt  "Falsch" Then
.Attachments.Add strAtt
attAdd = True
End If
If Not attAdd Then
If MsgBox("Wollen Sie die Datei wirklich ohne weitere Anlagen versenden?", _
36, "Mailanhang") = 7 Then strAtt = ""
End If
Loop While strAtt  "Falsch"
.Display 'oder .Send um die Mail gleich zu versenden
End With
ErrExit:
Set OMail = Nothing
Set OApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Speichern ohne Makros
28.10.2008 19:34:00
Erich
Hallo Paul,
in Version1 habe ich mal angemekrt/geändert, was mir so aufgefallen ist,
in Version2 wird das Blatt ohne Makros gesichert.
Ich hoffe, dass ich nichts verschlimmbessert habe...
Reicht das so aus?

Option Explicit      ' immer zu empfehlen
Sub Lackbericht1()
Dim OApp As Object, OMail As Object
Dim strAtt As String
Dim attAdd As Boolean
Dim n As String, n1 As String
'  Dim var              ' überflüssig
Dim n2 As String     ' fehlte
n = Range("F8").Value
n1 = Range("H8").Value
n2 = Range("G53").Value
Range("i53") = Now
'   Range("i53").Select
'   ActiveCell.FormulaR1C1 = "=NOW()"
ActiveSheet.SaveAs Filename:="E:\LB\" & "LB-" & n & "-" & n1 & "-" & n2 & ".xls"
'   Selection.Copy
'   Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("a7").Select               ' Ist das Select überhaupt erforderlich?
'   var = [h8]                      ' Der Wert von H8 steht schon in n1
On Error GoTo ErrExit
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OApp = CreateObject("Outlook.Application")
OApp.Session.Logon
Set OMail = OApp.CreateItem(0)
With OMail
.To = "tt.ttt.de" 'Empfänger
.Subject = "LB-" & n & "-" & n1
.Attachments.Add ActiveWorkbook.FullName
Do
strAtt = Application.GetOpenFilename("Alle Dateien (*.*),*.*")
If strAtt  "Falsch" Then
.Attachments.Add strAtt
attAdd = True
End If
If Not attAdd Then
If MsgBox("Wollen Sie die Datei wirklich ohne weitere Anlagen versenden?", _
36, "Mailanhang") = 7 Then strAtt = ""
End If
Loop While strAtt  "Falsch"
.Display 'oder .Send um die Mail gleich zu versenden
End With
ErrExit:
Set OMail = Nothing
Set OApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Sub Lackbericht2()
Dim OApp As Object, OMail As Object
Dim strAtt As String
Dim attAdd As Boolean
Dim n As String, n1 As String
Dim n2 As String
Dim rngR As Range
n = Range("F8").Value
n1 = Range("H8").Value
n2 = Range("G53").Value
Range("i53") = Now
Set rngR = ActiveSheet.UsedRange
Workbooks.Add xlWBATWorksheet
With ActiveWorkbook
rngR.EntireColumn.Copy Range(Cells(1, rngR.Column).Address)
.SaveAs Filename:="E:\LB\" & "LB-" & n & "-" & n1 & "-" & n2 & ".xls"
'     .Close                     ' falls gewünscht
End With
On Error GoTo ErrExit
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OApp = CreateObject("Outlook.Application")
OApp.Session.Logon
Set OMail = OApp.CreateItem(0)
With OMail
.To = "tt.ttt.de" 'Empfänger
.Subject = "LB-" & n & "-" & n1
.Attachments.Add ActiveWorkbook.FullName
Do
strAtt = Application.GetOpenFilename("Alle Dateien (*.*),*.*")
If strAtt  "Falsch" Then
.Attachments.Add strAtt
attAdd = True
End If
If Not attAdd Then
If MsgBox("Wollen Sie die Datei wirklich ohne weitere Anlagen versenden?", _
36, "Mailanhang") = 7 Then strAtt = ""
End If
Loop While strAtt  "Falsch"
.Display 'oder .Send um die Mail gleich zu versenden
End With
ErrExit:
Set OMail = Nothing
Set OApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Speichern ohne Makros
29.10.2008 12:47:00
Paul
Hallo Erich, d
er Ansatz ist sehr gut, nur habe ich jetzt das Problem, dass in der Kopie die von den aktiven Sheet erzeugt wird, die Verknüpfungen in List-Feldern und Formeln, zu einem anderen sheet welches noch in der O-Datei ist, fehlt. Kann man die Datei nicht so kopieren, das nur Formate und Werte übernommen werden, d.h. ohne Formeln und List-Verknüfungen, dann denke ich währe das Szenario perfekt!
AW: Speichern ohne Makros
29.10.2008 13:07:00
Erich
Hi Paul,
dazu brauchst du in dem With-Block nur die Zeile mit "UsedRange.Value" zu ergänzen:

With ActiveWorkbook
rngR.EntireColumn.Copy Range(Cells(1, rngR.Column).Address)
.ActiveSheet.UsedRange = .ActiveSheet.UsedRange.Value             ' neu
.SaveAs Filename:="E:\LB\" & "LB-" & n & "-" & n1 & "-" & n2 & ".xls"
'     .Close                     ' falls gewünscht
End With

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Speichern ohne Makros
06.11.2008 13:46:00
Paul
Hallo Erich,
funktioniert perfekt, vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige