Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Vorm Zellen löschen Formeln in Werte

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
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige