Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 396
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von CHFFrank2 vom 19.05.2017, 13:41 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


VBA automatisch File öffnen, aktualisieren und schliessen

 (312 Hits)

Hallo Zusammen,

Ich versuche mich gerade mal wieder mit VBA, komme aber gerade nicht mehr weiter und hoffe auf eure Hilfe.

Ich habe eine Exceldatei (Parent) welche Verlinkungen zu 2 anderen Dateien hat. Nun wollte ich, nach dem ich die Parent Datei öffne, dass die beiden anderen Dateien im Hintergrund geöffnet werden. Danach die Parent Datei aktualisiert, welche aus den beiden anderen gezogen wird. Im Anschluss sollen die beiden Dateien ungespeichert geschlossen werden.
Ich hatte vermutet dass dies keine sehr grosse VBA Herausforderung ist. Die automatische Öffnung und Schliessung funktioniert auch aber die Aktualisierung im Zwischenschritt klappt nicht.

Private Sub Workbook_Open()
Workbooks.Open "Helpfile1.xlsx"
Workbooks.Open "Helpfile2.xlsx"
ThisWorkbook("Parent.xlsm").Activate
ThisWorkbook.Worksheets("Daten").RefreshAll
Workbooks("Helpfile1.xlsx").Close False
Workbooks("Helpfile2").Close False
End Sub

Vorab schon mal vielen Dank für eure Vorschläge!
Frank


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von M.O. vom 19.05.2017, 16:42 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Frank,

wenn du eine Datei öffnen willst, dann musst du den gesamten Pfad angeben.

Dein Makro müsste also ungefähr so aussehen (Pfad anpassen):
Private Sub Workbook_Open()
Workbooks.Open "C:\Test\Helpfile1.xlsx"
Workbooks.Open "C:\Test\Helpfile2.xlsx"
With ThisWorkbook
 .Worksheets("Daten").RefreshAll
End With
Workbooks("Helpfile1.xlsx").Close (False)
Workbooks("Helpfile2.xlsx").Close (False)
End Sub

Oder falls die Helpfiles im gleichen Verzeichnis wie die Parent-Arbeitsmappe liegen:
Private Sub Workbook_Open()
Dim strPfad As String

strPfad = ThisWorkbook.Path
Workbooks.Open strPath & "\Helpfile1.xlsx"
Workbooks.Open strPath & "\Helpfile2.xlsx"
With ThisWorkbook
 .Worksheets("Daten").RefreshAll
End With
Workbooks("Helpfile1.xlsx").Close (False)
Workbooks("Helpfile2.xlsx").Close (False)
End Sub

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von CHFrank2 vom 22.05.2017, 14:36 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hi Mo,

vielen Dank für deinen Input.
Ich habe den Code auch soweit angepasst, allerdings erhalte ich die Laufzeitfehler 438 Meldung Objekt unterstützt diese Eigenschaft nicht...
Nun habe ich nachgelesen, was diesen Fehler hervorrufen könnte und es wurde darauf hingewiesen, dass dies durch AddIns verursacht wird.
Leider konnte ich auch nach punktueller Ausschaltung einzelner AddIns das Problem nicht beheben.

Habt Ihr hierzu Ideen?
Könnte es noch andere Ursachen geben als inkompatible AddIns?

Viele Grüsse
Frank


Antwort noch nicht bewertet
Antwort 3 von M.O. vom 22.05.2017, 15:00 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Frank,

welche Zeile wird denn gelb markiert, wenn der Fehler kommt?

Und poste bitte auch mal deinen angepassten Code.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 4 von CHFrank2 vom 22.05.2017, 16:48 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.

der eingegebene Code sieht wie folgt aus:

Private Sub Workbook_Open()
Workbooks.Open "M:\Marktplatz\Helpfile1.xlsx"
Workbooks.Open "M:\Marktplatz\Helpfile2.xlsx"
With ThisWorkbook
.Worksheets("Daten").RefreshAll
End With
Workbooks("Helpfile1.xlsx").Close False
Workbooks("Helpfile2.xlsx").Close False
End Sub

Die mittlere Zeile ab ". Worksheets("Daten")" wird gelb angeleuchtet.

Viele Grüsse
Frank


Antwort noch nicht bewertet
Antwort 5 von M.O. vom 23.05.2017, 07:41 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Frank,

so funktioniert es:

Private Sub Workbook_Open()
Workbooks.Open "M:\Marktplatz\Helpfile1.xlsx"
Workbooks.Open "M:\Marktplatz\Helpfile2.xlsx"
ThisWorkbook.RefreshAll
Workbooks("Helpfile1.xlsx").Close False
Workbooks("Helpfile2.xlsx").Close False
End Sub


Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 6 von CHFrank2 vom 23.05.2017, 14:47 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.

herzlichen Dankf für deine Hilfe!
Das Öffnen und schliessen der Hilfdateien funktioniert nun perfekt.
Allerdings die Aktualisierung der Parent Datei klappt nicht ganz aber ich glaube dass dies nicht an dem VBA Code liegt.
In manchen Feldern steht noch #Wert obwohl in der Hilfsdatei der entsprechende Wert, aus welcher die Daten gezogen werden, vorhanden sind.
Nach einem Doppleklick auf das entsprechende Feld wird der Inhalt akualisiert und nun angezeigt.

Viele Grüsse
Frank


Antwort noch nicht bewertet
Antwort 7 von CHFrank2 vom 30.05.2017, 10:34 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Ich vermute das der Begriff Aktualisierung nicht ganz korrekt ist.
Viel mehr geht es um die Neuberechnung der Links zu den beiden Hilfsdateien.
Im Netz habe ich folgenden Code gefunden, da ich Ihn aber nicht ganz verstehe habe ich es noch nicht geschafft ihn auf mein Fall anzupassen:

ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

Könnt ihr mir bitte hierzu noch Hinweise geben?


Antwort noch nicht bewertet
Antwort 8 von CHFrank2 vom 30.05.2017, 16:00 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Dies war mein heutiger Versuch, welcher allerdings ebenfalls mit einer Fehlermeldung der mittleren Codezeile beendet wurde...

Private Sub Workbook_Open()
Workbooks.Open "M:\Marktplatz\Hilfsfile1.xlsx"
Workbooks.Open "M:\Marktplatz\Hilfsfile2.xlsx"
ThisWorkbook.RefreshAll

Workbooks("Parentdatei.xlsm").UpdateLink Name:=Workbooks("Parentdatei.xlsm").LinkSources

Workbooks("Hilfsfile1.xlsx").Close False
Workbooks("Hilfsfile2.xlsx").Close False
End Sub


Antwort noch nicht bewertet
Antwort 9 von CHFrank2 vom 31.05.2017, 15:53 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Könnt Ihr mir hierzu bitte weiterhelfen?

Viele Grüsse
Frank


Antwort noch nicht bewertet




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Thu Aug 17 11:14:39 2017