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

Kopieren von Formeln mit externen Links

Kopieren von Formeln mit externen Links
15.06.2009 10:03:59
Formeln
Hallo
was ich versuche zu machen ist folgendes:
I habe zwei Exceldateien. Eine (Quelle) welche viele Formeln mit externen Verweisen enthält. Ich muss die Formeln aus der Quelldatei in die Zieldatei kopieren. Das an sich stellt natürlich kein Problem dar. Jedoch werden die externen Verweise sofort aktualisiert, sobald ich die Formel in der Zieldatei eingefügt habe. Da die Verbindung zu dem Server auf dem diese extern verlinkten Dateien liegen sehr langsam ist dauert ein Update mehrere Sekunden.
Jedoch habe ich sehr viele Zellen die ich mittels einer Schleife durchlaufe und damit summiert sich die Zeit und das Makro würde viele Stunden benötigen. Ich muss jede dieser Zellen einzeln behandeln, da verschiedene Tests durchgeführt werden, abhängig von deren Inhalt, Formel, Zellhintergrund, usw.
Was ich also gerne machen würde ist, zuerst alle Formeln kopieren und am Ende Excel dazu zwingen all Links upzudaten und neu zu berechnen. Bis jetzt habe ich alles versucht, was mir in den Sinn kam. Manuelle Berechnung aktivieren, die Aktualisierung externer Links zu unterbinden, usw. Nichts hat bis jetzt funktioniert. Sobald ich die Formel, welche externe Verweise enthält, kopiere wird diese sofort aktualisiert.
Hat jemand eine Idee?
Hier ist der Code. Total simpel, nur die externen Verknüpfungen bereiten mit Kopfzerbrechen.
If .Range(rcell.Address).HasFormula Then 'Formel kopieren
rcell.FormulaLocal = .Range(rcell.Address).FormulaLocal
'
else
.
.
.
Danke
Uwe

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

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Formeln mit externen Links
15.06.2009 13:33:26
Formeln
Hallo Uwe,
wenn Du erst mal die automatische Berechnung während der Prozedur deaktivierst:

Sub Test()
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
'Deine Prozedur - Am Ende deiner Prozedur solltest Du diese aber wieder aktivieren
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub


Vielleicht hilft es ja.
Gruss
PointOfView (Oliver)

AW: Kopieren von Formeln mit externen Links
15.06.2009 14:31:34
Formeln
Hallo Oliver,
danke für deine Antwort, aber das habe ich schon versucht, ist eigentlich in einem Standard-Header bei mir drinnen.
Tatsächlich habe ich bereits folgendes versucht:

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.Interactive = False
wkbOrg.UpdateRemoteReferences = False
wkbTemplate.UpdateRemoteReferences = False
wkbOrg.UpdateLinks = xlUpdateLinksNever
wkbTemplate.UpdateLinks = xlUpdateLinksNever


Normale Formeln lassen sich damit beinflussen, jedoch wird trotz dieser Einstellungen eine Verbindung zu den verlinkten Dateien hergestellt und ausgewertet.
Dieses möchte ich aber unterbinden. Allerdings bin ich mir nicht sicher, ob es eine Einstellung gibt, die dies bewirkt.
Cu Uwe

Anzeige
AW: Kopieren von Formeln mit externen Links
15.06.2009 15:03:36
Formeln
Hallo Uwe,
lad doch mal zum besseren Verständnis eine Beispieldatei hoch. Musst Du die Formeln zwingend mitkopieren, oder kannst Du auch mit den Werten aus der Basisdatei arbeiten und in deiner Zieldatei dann diese Werte über Formeln in bspw. einer Nachbarspalte berechnen?
Gruss
PointOfView (Oliver)
AW: Kopieren von Formeln mit externen Links
15.06.2009 15:23:56
Formeln
Hallo Oliver,
prinzipiell ist mein Anliegen ganz simpel:
Eine Datei enthält Formeln mit einem Verweis auf ein anderes Blatt /bzw. mehrere Blätter. Z.B:

=WENN(SVERWEIS($A25;'\\Netzwerkpfad\[VerlinkteDatei.xls]Oktober'!$A$1:$AF$200;B$1;FALSCH)0; _
SVERWEIS($A25;'\\Netzwerkpfad\[VerlinkteDatei.xls]Oktober'!$A$1:$AF$200;B$1;FALSCH);"")


Ich habe nun ein Addin welches die Formeln von der einen Datei in eine andere kopiert. Jedesmal wenn eine dieser Formeln kopiert wird, wird diese sofort berechnet, sprich der externe Verweis wird aufgelöst. Da sich die Dateien auf einem Server im Firmennetz befinden, ist die Ausführung sehr langsam (mehrere Sekunden pro kopierter Formel). Da es sich um sehr viele Zellen handelt dauert die gesamte Ausführung schätzungsweise einen halben bis zu einem Tag.
Eine Beispieldatei habe ich nicht zu Hand. Müsste ich erst erstellen, denn es geht um mind. 3 Dateien. Eine Quell-, eine Zieldatei und eine auf die verlinkt wird.
Ich möchte eigentlich nur Excel davon abhalten sofort die externen Verweise aufzulösen sobald ich die Formel kopiere.
Danke
Uwe

Anzeige
AW: Kopieren von Formeln mit externen Links
16.06.2009 09:39:56
Formeln
In der Zwischenzeit habe ich nun einen Workaround gefunden.
Da es scheinbar keine Möglichkeit gibt Excel davon abzuhalten die externen Verweise sofort aufzulösen habe ich folgendes gemacht.
- Auslesen der verwendeten Verknüpfungen und speichern in einem Array
- Kopieren der referenzierten Dateien in einen lokalen Temp-Ordner
- Ändern der Verknüpfungen auf die lokalen Dateien
- Nun folgen anderen Schritte auch das Kopieren der der Formeln
- Am Ende werde alle Verknüpfungen wieder auf die ursprünglichen Werte gesetzt
Dieses Verfahren ist zwar deutlich aufwendiger und so etwas wollte ich vermeiden, aber es funktioniert. Sollte irgendjemand noch eine einfachere Möglichkeit kennen bitte mit mitteilen. Je weniger ich selbst programmieren muss, desto besser (Faulheit :-) )
Cu Uwe
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige