Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle Dateien aktualisieren!

Alle Dateien aktualisieren!
14.10.2007 22:58:00
Roman
Hallo,
habe ein Problem. Folgendes: Habe drei Excel Dateien die untereinander verknüpft sind.
D.h. in Datei [1] werden Die Daten eingegeben.
Die Zellen von Datei [1] sind mit Datei [2] verknüpft.
In Datei [2] werden über mehrere KWs der Monatsabschluss berechnet.
Die errechneten Daten die in den KW Tabellen stehen werden dann verknüpft in Datei [3]
In Datei [3] ist nun eine Mappe die alle Monatsabschlüsse auflistet.
Hat das jemand verstanden? - hoffentlich....
Wenn nun Daten in der Datei [1] eingegeben werden dann aktualisiert Excel nicht über [2] zu [3].
Excel macht das nur wenn alle Dateien [1] & [2] geöffnet wurden. Da es sich aber um 48 Dateien
im Netzwerk handelt, ist ein öffnen unmöglich!
Gibt es eine Möglichkeit Excel per VB alle verknüpften Dateien zu aktualisieren ohne Sie zu öffnen?
Habe schon das Netz durchsucht un die Tipps probiert - aber alles ohne Erfolg.
Excel / Einstellungen / Berechnungen / Automatisch (F9)
ActiveWorkbook.UpdateLinks....
Wer kann helfen?
Gruß Roman

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Dateien aktualisieren!
14.10.2007 23:06:11
Josef
Hallo Roman,
ohne öffnen geht's meiner Meinung nach nicht.
Gruß Sepp

AW: Alle Dateien aktualisieren!
14.10.2007 23:16:00
Klaus
Hi,
ich suche selber schon seit geraumer Zeit nach einer passenden Lösung. Aber ohne Öffnen geht es auf gar keinen Fall. Denn Excel ist ein Tabellenkalkulationsprogramm und keine Datenbank.
Wenn es sehr kleine Exceldateien sind, sollte ein Öffnen mittels VBA-Code über ein schnelles Netzwerk kein grösseres Problem sein. Aber wenn die alle schon mehrere MB gross sind, sehe eher schwarz.
Du könntest allerdings über Excel mittels ADO oder DAO auf zentrale Access-Datenbanken zugreifen.
Gruss
Klaus

Anzeige
AW: Alle Dateien aktualisieren!
14.10.2007 23:17:55
fcs
Hallo Roman,
mir ist kein weg bekannt, Verknüpfungen zu aktualisieren, ohne die Dateien zu öffnen.
Es sollte aber möglich sein, die Aktualiserungen per VBA in 2 Schleifen abzuarbeiten.
Nachdem die Dateneingabe in den Dateien[1] abgeschlossen ist, kannst du in einer Schleife die Dateien[2] öffnen, die Links aktualiseren, die Datei neu berechnen, die Datei speichern und wieder schließendie Datei.
Anschließend machst du das gleiche mit den Dateien[3].
Die entsprechende Prozedur erstellst du am besten in einer separaten Datei.
Gruß
Franz

Hier mal ein Ansatz
14.10.2007 23:33:01
Josef
Hallo Roman,
ein Ansatz, wie man das lösen könnte. Der Code gehört in die Datei [3].
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub UpdateAllLinks()
Dim res As Long

On Error Resume Next
Application.ScreenUpdating = False

With ThisWorkbook
    
    res = upLink(.LinkSources)
    
    If res <> 0 Then .UpdateLink Name:=.LinkSources
    
End With

Application.ScreenUpdating = True

End Sub


Private Function upLink(lSource As Variant) As Long
Dim objWB As Workbook
Dim intC As Integer, res As Long

If Not IsEmpty(lSource) Then
    For intC = 1 To UBound(lSource)
        Set objWB = Workbooks.Open(lSource(intC))
        upLink (objWB.LinkSources)
        If res <> 0 Then objWB.UpdateLink Name:=objWB.LinkSources
        objWB.Close True
    Next
    upLink = -1
End If

End Function

Gruß Sepp

Anzeige
kleines Update
14.10.2007 23:43:49
Josef
Hallo nochmal,
in der Funktion war noch ein Fehler.
Private Function upLink(lSource As Variant) As Long
Dim objWB As Workbook
Dim intC As Integer, res As Long

If Not IsEmpty(lSource) Then
    For intC = 1 To UBound(lSource)
        Set objWB = Workbooks.Open(lSource(intC))
        res = upLink(objWB.LinkSources)
        If res <> 0 Then objWB.UpdateLink Name:=objWB.LinkSources
        objWB.Close True
    Next
    upLink = -1
End If

End Function

Gruß Sepp

Anzeige
AW: Hier mal ein Ansatz
17.10.2007 17:39:50
Roman
Danke für Eure Hilfe erstmal.
Sepp kannst Du mir mal kurz erklären was Dein Code macht?
Ich habe mal zum Testen ein Macro geschrieben das alle 23 Dateien öffnet, speichert und wieder schließt.
Nur das Problem ist das die Dateien auf dem Server sind und ich nicht ausschließen kann das eine oder
mehrere Dateien geöffnet sind.
Sepp, ist mit deinem Code das Problem auch zu umgehen?
Gruß Roman

AW: Hier mal ein Ansatz
17.10.2007 18:26:36
Josef
Hallo Roman,
Probleme sollten geöffnete Dateien nicht bereiten. Wenn der User der die Datei gerade bearbeitet nicht gespeichert hat, dann erhälst du allerdings den Wert der nach der letzten Speicherung enthalten war. Ggf. erhälst du, nachdem der User die Datei geschlossen hat, eine Info das die Datei zur Verfügung steht.
Gruß Sepp

Anzeige
AW: Hier mal ein Ansatz
17.10.2007 18:44:00
Roman
Sepp, werde es probieren am Wochenende.
Gruß Roman

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige