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

Probleme beim Ersetzen bzw. mit Verknüpfungen

Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 12:55:41
Gordon
Moin,
lasse in meiner Startdatei (Datei1) ein Makro starten, woraus sich eine neue Datei erstellt.
In Datei1 liegt ein Blatt (Blatt "Vorlage") das 1zu1 rüber in die neue Datei (Blatt "Plan") kopiert wird. Dieses Blatt enthält Formeln, welche ihre Daten teilweise aus anderen Blättern ziehen. Die Bätter kommen aber auch 1zu1 in der neuen Datei vor.
Durch das kopieren entstehen Verknüpungen zu Datei1. Diese Verknüpfungen habe ich immer mit einer Replace-Anweisung gerlöscht. Hier mal der Code zum kopieren und ersetzen:

ThisWorkbook.Sheets("Vorlage").Cells.Copy ActiveWorkbook.Sheets("Plan").Cells
ActiveWorkbook.Sheets("Plan").Cells.Replace what:="Datei1.xls", Replacement:="", _
lookat:=xlPart, SearchOrder:=xlByRows, MatchCase:=False


Das hat auch immer ganz gut geklappt. Nun ist es aber so, dass die Datei1 immer wieder mal umbenannt wird. Das heißt, die die Verknüpfungen eine andere Bezeichungen haben als "Datei1.xls" und somit nicht verschwinden. Ich hatte schon versucht mit Workbook.Name zur arbeiten, aber das funktioniert leider bei der Replace-Anweisung nicht.
Hat jemand vielleicht 'nen guten Tipp wie ich das Problem lösen oder umgehen kann?
Beste Grüße
Gordon

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 14:04:52
Rainer
Schonmal versucht die absoluten Bezüge in relative Bezüge zumzuwandeln?
Z.B. so:

Sub Bezüge
Dim Zelle As Range
For Each Zelle In Selection
If Zelle.HasFormula = True Then
Zelle.Formula = Application.ConvertFormula _
(Zelle.Formula, xlA1, xlRelativ)
End If
Next Zelle
End Sub


Damit werden die absoluten Bezüge in relative Bezüge umgewandelt. Und relative Bezüge sollten Ihren Bezugspunkt mitverändern wenn der Bezugspunkt verändert wird.
Funktioniert auch andersrum, in dem Du einfach nur xlRelativ in xlAbsolute umwandelst. Dann werden aus relativen Bezügen eben absolute Bezüge.
Wäre es aber nicht sinnvoller die Verknüpfungen nach der Übertragung ganz raus zu nehmen und abzuändern in feste Werte, also Werte ohne Verknüpfung?
Könntest Du mit obigem Makro auch erreichen nur abändern in:
If Zelle.HasFormula = True Then
Zelle.Formula = Zelle.Value
End If
Das wäre was mir zum Thema so gerade einfällt. ;)
Gruß
Rainer

Anzeige
AW: Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 14:34:12
Gordon
Hallo Rainer,
danke dir schon mal für deine Mühe. Aber leider verstehe ich deinen Code nicht so ganz. Denn ich möchte nur die Verknüpfung verschwinden lassen. Wenn ich das ganze Blatt rüber kopiere sind Verknüpfungen da. Und dein Code macht sie leider nicht weg - egal ob sie relativ oder absolut sind. :(
Und um deinen zweiten Gedanken nochmal aufzugreifen: Nein, dass geht leider nicht, da die Formeln vorhanden bleiben müssen. Sie sollen sich halt nun auf die Blätter in der neuen Datei beziehen und nicht mehr auf die in der Ausgangsdatei.
Die Blätter auf die sie sich beziehen heißen auch genau so wie die in der Ausgangsdatei. Daher muss nur doe Verknüpfung zur alten Datei verschwinden. Ging bisher ja auch super mit "Replace", aber leider anscheinend nur wenn man im Code den Namen der Datei fest hinterlegt. Variabel geht es anscheinend nicht. :(
Anzeige
AW: Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 14:37:45
Rainer
Wenn es nur darum geht die Bezeichnung variabel zu halten, wäre es doch so am einfachsten:
Dim aktMappe As String
aktMappe = ActiveWorkbook.Name
Und dann in Deiner Replace Funktion anstatt Datei1.xls wird halt nach dem Inhalt der Variabele aktMappe gesucht und ersetzt.
Gruß
Rainer
AW: Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 14:48:23
Gordon
Genau,
das wollte ich ja schon, aber wenn ich das so mache bekomme ich folgende Fehlermeldung:

Laufzeitfehler '1004'
Die Formel enthält einen ungültigen Bezug zu einem externen Arbeitsblatt.
Überprüfen sie ob der Pfad, der Name der Arbeitsname und der Name des Bereiches oder des  _
Zellenbezuges, korrekt sind, und versuchen sie es erneut.


So wie ich das sehe, mag Excel keine Variabeln in seiner "Ersetzen" funktion. Hier mein Code-Stück:


Dim NameDatei as String
NameDatei = ThisWorkbook.Name
ActiveWorkbook.Sheets("Plan").Cells.Replace what:=NameDatei, Replacement:="", _
lookat:=xlPart, SearchOrder:=xlByRows, MatchCase:=False


Anzeige
AW: Probleme beim Ersetzen bzw. mit Verknüpfungen
19.04.2009 18:39:02
Rainer
Versuche es mal wie folgt:
Dim aktMappe As String
aktMappe = "[" & ActiveWorkbook.Name & "]"
Und dann Deine Replace-Anweisung ... ach ja und benutze in der Variabele bitte nicht "Name". Kann - muß nicht, aber kann - zu Problemen führen weil Excel sich vertut mit VBA-Syntax/Methoden (gibt auch die Methode 'Name').
Gruß
Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige