Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Kopieren von Verknüpfungen als Werte





Frage

Hallo Zusammen Ich habe eine Tabelle die Formeln enthält. Bzw die Zellen sind Zellbezüge aus anderen Tabellen. Diese Datei wird wöchentlich unter einen anderen Namen abgespeichert. Wenn ich nun per makro datei speichern unter erledigen lass, speichert er die Datei wieder mit den Zellbezügen. Ich benötige aber in der abgespeicherten Datei nur noch die Werte, da sich die Daten in der Datei, auf welche sich die Daten beziehen, wieder neu beschrieben wird. Jetzt wäre mir als Lösung noch eingefallen, dass ich meine Tabelle kompl kopiere und wieder als Wert einfüge und danach "speichern unter". Nun meine Frage: Gibt es eine einfachere Lösung??? Welche z.B. bei dem save as Befehl sagt, dass er nur die Werte abspeichern soll?? Danke gez. Hardwarehacker

Antwort 1 von Saarbauer

Hallo,

mit "Kopieren" und anschliessend "Inhalte einfügen" "Werte"

müsste deinen Vorstellungen entsprechen und wäre als Makro auszuführen

Gruß

Helmut

Antwort 2 von Hardwarehacker

ja das mache ich ja im moment hatte ich ja auch oben schon erwähnt.

Meine Frage ist ob ich es in dem Befehl "save as" mit einbinden kann.
Bzw eine alternative zu deinem Vorgeschlagenen gibt.


Danke

gez.
Hardwarehacker

Antwort 3 von Ahnan

Hallo,

ich schon wieder ! So habe ich das für mich gelöst (Brauche ich auch des öfteren): Ich lasse das folgende Makro "über" meine Mappe mit den Verknüpfungen laufen:


Sub Alle_Links_umwandeln()
Dim Blatt As Worksheet
Dim Zelle As Range
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Activate
Set Zelle = Cells.Find(What:="[", After:=ActiveCell, _
LookIn:=xlFormulas, lookat:=xlPart, _
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)
While TypeName(Zelle) <> "Nothing"
Zelle.Activate
Zelle.Formula = Zelle.Value
Set Zelle = Cells.FindNext(After:=ActiveCell)
Wend
Next Blatt
End Sub


Dieses Makro wandelt alle externe Verknüpfungen in allen Tabellenblättern der aktiven Mappe in Festwerte um. Dieses Makro lege ich auf einen Button plus diese Zeile:

[b]
ActiveWorkbook.SaveAs "C:\WINDOWS\Desktop\" & "Sicherung Mappe vom " & Format(Now, "DD.MM.YY") & "_" & Format(Now, "hh.mm.ss") & " Uhr" & ".xls"


Damit sind in der Kopie schonmal nur Festwerte.
Dann darf in dieser Kopie natürlich kein Code vorhanden sein (Also der obige Code ist ja nun auch in der Kopie). Deshalb lösche ich mit einem Makro sämtlichen Code aus der Kopie:


Sub Sämtlichen_Code_löschen()
Dim VBA_Code
With ActiveWorkbook.VBProject
For Each VBA_Code In .VBComponents
Select Case VBA_Code.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(VBA_Code.Name)
Case 100
With VBA_Code.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
Sheets("Tabelle1").Shapes("CommandButton" & 1).Delete
ActiveWorkbook.Save
End Sub


Diese Zeile im obigen Makro:


Sheets("Tabelle1").Shapes("CommandButton" & 1).Delete


wird gebraucht, um den Button, mit dem ich die Kopie (in der Originaldatei) erstellt habe, ebenfalls zu löschen ! Und natürlich muss die Kopie noch gespeichert werden, damit am Ende nur Festwerte, ohne VBA-Code und Button in der erstellten Kopie vorhanden sind.

Also insgesamt sieht mein Code dann so aus:


Sub Kopie_ohne_Verknüpfungen()
Dim Blatt As Worksheet
Dim Zelle As Range
Dim VBA_Code

For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Activate
Set Zelle = Cells.Find(What:="[", After:=ActiveCell, _
LookIn:=xlFormulas, lookat:=xlPart, _
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)
While TypeName(Zelle) <> "Nothing"
Zelle.Activate
Zelle.Formula = Zelle.Value
Set Zelle = Cells.FindNext(After:=ActiveCell)
Wend
Next Blatt

ActiveWorkbook.SaveAs "C:\WINDOWS\Desktop\" & "Sicherung Mappe vom " & Format(Now, "DD.MM.YY") & "_" & Format(Now, "hh.mm.ss") & " Uhr" & ".xls

With ActiveWorkbook.VBProject
For Each VBA_Code In .VBComponents
Select Case VBA_Code.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(VBA_Code.Name)
Case 100
With VBA_Code.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
Sheets("Tabelle1").Shapes("CommandButton" & 1).Delete
ActiveWorkbook.Save
End Sub[/b]

Was du angleichen musst:
Den Pfad (Save as) für die Kopie u. den Buttonnamen (bei mir Button1 in Tabelle1), mit dem du das Makro startest.
Also mir leistet das Makro wertvollen Dienst.

Vielleicht hilfts

Gruss

Mir leistet das Makro wertvollen Dienst.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: