Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

Formeln entfernen für bestimmte Bereiche

Formeln entfernen für bestimmte Bereiche
28.03.2019 16:57:14
T
Hallo zusammen,
ich möchte ein einzelnes Tabellenblatt neu speichern und die Formeln in bestimmten Zellen durch die Werte ersetzen.
Alle Formeln ersetzen gelingt wunderbar mit

Sheets("Blatt").Copy
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName, FileFormat:=xlOpenXMLStrictWorkbook
With ActiveSheet.UsedRange
.Value = .Value
End With
ActiveWorkbook.Close

Wenn ich im aktuellen Tabellenblatt in bestimmten Zellen die Formeln löschen möchte, funktioniert auch das mit

Sub FormelnWerte()
Range("B2").Select
Range("E28").Select
Range("F28").Select
Range("G28").Select
With ActiveSheet.UsedRange
.Formula = .Value
End With
End Sub

Ich wüsste also nicht warum folgender Code nicht funktioniert:

Sheets("Blatt").Copy
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName, FileFormat:=xlOpenXMLStrictWorkbook
Range("C17").Select
Range("J17").Select
Range("J18").Select
Range("J19").Select
Range("J21").Select
Range("D26").Select
Range("I26").Select
Range("B50").Select
Range("F30").Select
Range("F32").Select
Range("F33").Select
With ActiveSheet.UsedRange
.Formula = .Value
End With
ActiveWorkbook.Close

Wo ist mein Denkfehler?
Vielen Dank schon mal für die Hilfe

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formeln entfernen für bestimmte Bereiche
28.03.2019 17:04:07
Hajo_Zi
Du machsz immer für den benutzten Bereich ersetzen. Nicht für Deinen Bereich. Du musst UsedRange ersetzen.Durch so was Range("A1,C16,D17,E22,G20")

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Formeln entfernen für bestimmte Bereiche
28.03.2019 17:28:51
T
Der erste Satz ist mir nicht ganz klar.
Wenn ich UsedRange durch Range(a,b,c,d,e) ersetze, werden alle Formeln im markierten Bereich durch den Wert der ersten Zelle ersetzt.
Komischerweise passiert bei .Formula = .Value
Bei .Value = .Value gibt es einen 400 Fehler
Anzeige
AW: Formeln entfernen für bestimmte Bereiche
28.03.2019 17:54:36
Werner
Hallo,
so:
Public Sub bbb()
Sheets("Blatt").Copy
Range("C17,J17:J19,J21,D26,I26,B50,F30,F32:F33").Value = _
Range("C17,J17:J19,J21,D26,I26,B50,F30,F32:F33")
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName, FileFormat:=xlOpenXMLStrictWorkbook
ActiveWorkbook.Close
End Sub
Gruß Werner
AW: Formeln entfernen für bestimmte Bereiche
28.03.2019 22:24:02
T
Leider Nein.
Hierbei verändern sich die Werte im ALTEN Tabellenblatt so, dass in alle Zellen der Wert der ersten Zelle C17 übernommen wird.
Im neuen Tabellenblatt passiert nichts, alle Verweise werden übernommen.
AW: Formeln entfernen für bestimmte Bereiche
28.03.2019 23:54:09
Werner
Hallo,
bei mir nicht, was du machst weiß ich nicht. Hast du es denn überhaupt versucht mit dem Code?
Nach dem Sheets("Blatt").Copy ist die neue Datei die dadurch angelegt wird aktiv und auch dort, und nur dort, werden die entsprechenden Formeln durch ihre Werte ersetzt.
Gruß Werner
Anzeige
AW: Formeln entfernen für bestimmte Bereiche
29.03.2019 17:35:51
T
Hallo,
natürlich habe ich es probiert, sonst könnte ich ja nicht beschreiben, was passiert.
Habe jetzt deinen Code noch einmal frisch 1:1 in ein neues Makro kopiert... Das Resultat bleibt:
Die Neue Datei enthält alle Verweise, die Ursprungsdatei alle Werte aus der ersten Zelle.
Das ist ja gerade das was ich nicht verstehe und unter welcher Prämisse es auch mit meinem ursprünglichen Code hätte klappen müssen. Tut es aber nun mal nicht.
Nochmal:
Mit diesem Code

Sub ExportxlsxOhneVerweiseHebu()
Dim NeuerName As String, Speicherpfad As String
Speicherpfad = "C"
NeuerName = Range("Q2") & Range("C17")
Sheets("Blatt").Copy
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName, FileFormat:=xlOpenXMLStrictWorkbook
With ActiveSheet.UsedRange
.Value = .Value
End With
ActiveWorkbook.Close
End Sub
funktioniert es so, wie es der Code vermuten lässt. Nur ist das leider nicht, was ich brauche.
Und mit Range springt er - warum auch immer - in die Ursprungsdatei zurück.
Anzeige
AW: Formeln entfernen für bestimmte Bereiche
29.03.2019 06:38:46
Potter
Hallo TK,
vielleicht noch eine Alternative.
Wenn Du die Zellen markierst und dieser Markierung einen Namen(in meinem Bsp. ohneFormel) gibst, würde folgendes die Formeln durch den Wert ersetzen:
Sub Formel_Ersetzen()
Dim cell As Range
For Each cell In Sheets("Blatt").Range("ohneFormel")
cell.Formula = cell.Value
Next cell
End Sub
Grüße,
Potter
AW: Formeln entfernen für bestimmte Bereiche
29.03.2019 17:57:25
T
Yes!
So klappt es, vielen Dank!!
Kleine Zusatzfrage:
Beim exportieren bekomme ich 2 x MsgBox, einmal mit der Frage ob ich die Datei als Arbeitsmappe ohne Makros speichern möchte und dann beim Schließen, ob ich die Änderungen speichern möchte.
Gibt es eine Möglichkeit, die Anweisungen für beide Dialoge ins Makro zu schreiben, damit diese nicht mehr aufpoppen?
Nochmals vielen Dank.
Anzeige
AW: Formeln entfernen für bestimmte Bereiche
31.03.2019 08:22:01
Potter
Hallo TK,
ich gehe mal davon aus, dass Du Deine Änderungen speichern möchtest.
Mit
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\TK\Desktop\Test_" & Format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Close

speichert es Dir die Datei auf den Desktop von User TK mit Datum und Uhrzeit.
Grüße,
Potter

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige