Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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
Vorm Zellen löschen Formeln in Werte
13.02.2021 12:35:00
RaMa
Hallo zusammen,
ich habe mir ein Makro zusammengebastelt, um automatisch eine E-Mail samt Excel-Anhang zu erstellen.
In der Excelmappe habe ich 1 Start- sowie 1 Enddatum, das wiederum durch verschiedene Formeln bearbeitet wird.
Wenn durch das Ausführen des Makros die E-Mail samt Anhang geöffnet wird, werden verschieden Buttons, Zeilen und Spalten gelöscht.
Leider wird dadurch ein Bezug gelöscht.
Mein Ziel/Wunsch: Der Bereich "F34:G35" soll in der Ursprungsdatei als Formel beibehalten werden, allerdings im E-Mail-Anhang als Wert angezeigt werden.
Leider wird durch mein Makro die Excel-Datei abgeändert und im E-Mail-Anhang wird ein Bezugsfehler angezeigt.
Mit folgendem Befehl komme ich nicht weiter:
Range("F34:G35").Copy
Range("F34:G35").PasteSpecial xlPasteValues
Anbei mein benutztes Makro:

Private Sub CommandButton3_Click()
Dim xOutApp As Object
Dim xOutMail As Object
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Temp" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
Application.DisplayAlerts = False
Range("F34:G35").Copy
Range("F34:G35").PasteSpecial xlPasteValues
ActiveSheet.Shapes.Range(Array("CommandButton1")).Delete
ActiveSheet.Shapes.Range(Array("CommandButton2")).Delete
ActiveSheet.Shapes.Range(Array("CommandButton3")).Delete
ActiveSheet.Shapes.Range(Array("CommandButton4")).Delete
ActiveSheet.Shapes.Range(Array("CommandButton5")).Delete
ActiveSheet.Rows("1:31").Delete
ActiveSheet.Columns("M:AA").Delete
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
Application.DisplayAlerts = True
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
With xOutMail
.GetInspector
.To = ""
.CC = ""
.BCC = ""
.Subject = ""
.Attachments.Add strDatei
.HTMLBody = "Hallo zusammen, 
anbei sende ich euch die Liste.
" & .HTMLBody .Display 'or use .Send End With '** Erzeugte Datei schließen Workbooks(Dir(strDatei)).Close '** Erzeugte Datei wieder löschen Kill (strDatei) On Error GoTo 0 Set xOutMail = Nothing Set xOutApp = Nothing End Sub

Vielen Dank vorab.
Grüße
Raphael

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vorm Zellen löschen Formeln in Werte
13.02.2021 12:58:53
onur
Du must schon
    ActiveSheet.Range("F34:G35").Copy
ActiveSheet.Range("F34:G35").PasteSpecial xlPasteValues

schreiben, da alle nicht näher spezifierten Verweise im Code sich auf das Blatt beziehen, IN DESSEN MODUL SICH DER CODE BEFINDET.
Ergänzend zu onur
13.02.2021 13:17:21
RPP63
Moin!
Da CommandButton3_Click, wird sich der Code im Klassenmodul der Tabelle befinden (ActiveX-Button).
Würde er sich in einem allgemeinen Modul (Modul1) befinden, würde sich Range("A1") tatsächlich auf das aktive Blatt beziehen.
In Deinem Code ist Range("A1") aber gleichbedeutend mit Me.Range("A1") also der Tabelle mit dem Code.
Gruß Ralf
Anzeige
AW: Ergänzend zu onur
13.02.2021 13:30:09
RaMa
Hallo zusammen,
oh man, da stand ich aber gewaltig auf dem Schlauch.
Vielen Dank euch zwei.
Grüße
Raphael

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige