Neue Datei nur mit Werten

Hallo zusammen, ich hab mal wieder ein Problem.

Ich hab eine sehr große Datei (z.B. Formeln.xls), die viele Formeln und Zellbezüge zu anderen Dateien enthält. Da viele Kollegen sich diese Datei anschauen müssen und dies aufgrund ihrer Größe sehr lange dauert sie zu laden,wollte ich über ein Makro eine neue Datei (z.B. Werte.xls) erstellen bzw. füllen lassen , die nur die Werte aller Tabellenblätter enthält und nicht die Formeln mit übernimmt.

Ich hab schon überall gesucht, doch leider nur Infos gefunden, wie ich in der gleichen Datei in ein anderes Tabellenblatt kopieren kann.

Ich hoffe von euch kann mir jemand helfen.

Danke im Voraus

Gruß Sandra

Moin, Sandra,

zeichne doch mal die Aktionen Bearbeiten > Kopieren > Inhalte einfügen > nur Werte mit dem Makrorekorder auf und schau, was der daraus gemacht hat.

Gruß Ralf

Grüezi Sandra

Ich hab eine sehr große Datei (z.B. Formeln.xls), die viele
Formeln und Zellbezüge zu anderen Dateien enthält. Da viele
Kollegen sich diese Datei anschauen müssen und dies aufgrund
ihrer Größe sehr lange dauert sie zu laden,wollte ich über ein
Makro eine neue Datei (z.B. Werte.xls) erstellen bzw. füllen
lassen , die nur die Werte aller Tabellenblätter enthält und
nicht die Formeln mit übernimmt.

Kopiere die folgenden Zeilen in die PERSONL.XLS und starte dann das Makro während die gewünschte Mappe offen ist.
Die Mappe wird gespeichert (um keine Daten zu verlieren), dann als neue Mappe gespeichert und alle Formeln mit Werten überschrieben.

Sub Mappe\_Sichern()
With ActiveWorkbook
 .Save
 .SaveAs .Path & "\Werte"
End With
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
 With ws.UsedRange.Cells
 .Value = .Value
 End With
Next ws
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Nachfrage
Grüezi Thomas,

.SaveAs .Path & „\Werte“
meinst du sicher so?
.SaveAs .Path & „\Werte.xls“

Gruß
Reinhard

Grüezi Reinhard

Grüezi Thomas,

.SaveAs .Path & „\Werte“
meinst du sicher so?
.SaveAs .Path & „\Werte.xls“

Nein, das meinte ich explizit nicht - so übernimmt Excel biem speichern nämlich die voreingestellte Extension (jedenfalls bei xl2007 ist das der Fall).

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

.SaveAs .Path & „\Werte“
meinst du sicher so?
.SaveAs .Path & „\Werte.xls“

Nein, das meinte ich explizit nicht - so übernimmt Excel biem
speichern nämlich die voreingestellte Extension (jedenfalls
bei xl2007 ist das der Fall).

Grüezi Thomas,

aha, ich muß zugeben ich habe bei SaveAs noch nie probiert die Endung wegzulassen.
Ich gehe jetzt aufgrund deiner Worte einfach mal davon aus, wenn ich die Endung weglasse so hängt Excel (alte Versionen) von sich aus xls an *annehm*
Aber kein Thema, kann ich ja schnell testen.

Bei 2007 wird wohl aufgrund von Makros entschieden obs als xlsx oder xlsm gepeichert wird.
Gebe ich bei SaveAs die Endung „xls“ vor wird es in der alten Version gespeichert.

Wenn ich das falsch sehe so korrigiere mich bitte.

Und weil ich von dir ja nur lernen kann, sei bitte so nett und sage mir hier was der Unterschied zwischen Text und String ist in Excel?

Danke ^ Gruß
Reinhard

Grüezi Reinhard

.SaveAs .Path & „\Werte“
meinst du sicher so?
.SaveAs .Path & „\Werte.xls“

Nein, das meinte ich explizit nicht - so übernimmt Excel biem
speichern nämlich die voreingestellte Extension (jedenfalls
bei xl2007 ist das der Fall).

aha, ich muß zugeben ich habe bei SaveAs noch nie probiert die
Endung wegzulassen.

Ja, das fiel mir auch erst vorhin mal ein - und siehe da es klappte :smile:

Ich gehe jetzt aufgrund deiner Worte einfach mal davon aus,
wenn ich die Endung weglasse so hängt Excel (alte Versionen)
von sich aus xls an *annehm*
Aber kein Thema, kann ich ja schnell testen.

IMO wird die Endung der Quellmappe angehängt, was aber erst ab xl2007 relavant ist.

Bei 2007 wird wohl aufgrund von Makros entschieden obs als
xlsx oder xlsm gepeichert wird.
Gebe ich bei SaveAs die Endung „xls“ vor wird es in der alten
Version gespeichert.

Die .SaveAs-Methode hat ja noch einige weitere Parameter, unter anderem eben den Filetypen. Wird dieser weggelassen (wie oben getan) nimmt Excel den Standard-Typen der im Moment voreingestllt ist. Dieser wiederum ist abhängig von der momentan aktiven Mappe.

Wenn ich das falsch sehe so korrigiere mich bitte.

Und weil ich von dir ja nur lernen kann, sei bitte so nett und
sage mir hier was der Unterschied zwischen Text und String ist
in Excel?

String klingt halt sehr sophisticated :wink:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Dankeschön, o.w.T.

Danke für eure vielen Tips bisher, werde es gleich mal versuchen. hab mitlerweile auch schon einen code gefunden, der mir jedoch momentan noch anmerkt, dass die verschiedenen bereiche unterschiedliche größen haben, und deswegen nichts kopiert werden kann.

der ausschnitt sieht so aus:

ThisWorkbook.Sheets(„DB-Zuordnung“).Cells.Copy
Workbooks(„neu_schluessel.xls“).Sheets(„DB-Zuordnung“).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'fügt nur die Werte ein

gestern hats noch funktioniert, seit dem hab ich aber nichts mehr geändert. was ist an dem code falsch?

Grüße Sandra

Ich hab meinen Fehler gefunden, hatte irgendeine Zelle in der Zieldatei markiert, sodass der Platz nicht mehr gereicht hat, wenn ich statt

ThisWorkbook.Sheets(„DB-Zuordnung“).Cells.Copy
Workbooks(„neu_schluessel.xls“).Sheets(„DB-Zuordnung“).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False 'fügt nur die Werte ein

ThisWorkbook.Sheets(„DB-Zuordnung“).Cells.Copy
Workbooks(„neu_schluessel.xls“).Sheets(„DB-Zuordnung“).Select
Range(„A1“).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False 'fügt nur die Werte ein

mache, funktionierts wieder.

Danke nochmal an alle.

ThisWorkbook.Sheets(„DB-Zuordnung“).Cells.Copy
Workbooks(„neu_schluessel.xls“).Sheets(„DB-Zuordnung“).Select
Range(„A1“).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False 'fügt nur die Werte ein

hallo Sandra,

Select braucht man sehr selten, lasse es gleich weg.

Sub tt()
ThisWorkbook.Sheets("DB-Zuordnung").Cells.Copy
With Workbooks("neu\_schluessel.xls").Sheets("DB-Zuordnung")
 .Range("A1").PasteSpecial Paste:=xlValues, Operation:=xlNone, \_
 SkipBlanks:=False, Transpose:=False 'fügt nur die Werte ein
End With
End Sub

Gruß
Reinhard