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

VBA If WB close, then do xx

VBA If WB close, then do xx
27.04.2020 11:44:46
Andi
Hallo liebe VBAler!
Ich würde mich mal wieder sehr über eure Hilfe freuen. Zu der Situation:
Beim Öffnen einer Datei A soll automatisch im Hintergrund Datei B geöffnet werden (dieser Teil funktioniert), da in Datei B Daten regelmäßig aktualisiert werden müssen, und Datei A diese benötigt (funktioniert auch). Ein Zusammenführen beider Dateien ist leider nicht möglich. Wird Datei A geschlossen (ohne automatische Speicherung), so soll Datei B automatisch gespeichert und auch geschlossen werden. Mein erster Code funktioniert, nur beim zweiten kommt eine Fehlermeldung:
Sub Test1() 'Öffnet im Hintergrund die Datei B, sodass diese sich automatisch aktualisieren  _
kann
Abfrage = [Pfad undName der Datei]
Application.ScreenUpdating = False      'lässt Änderungen im Hintergrund durchführen
Application.ShowWindowsInTaskbar = False
Set wb = Workbooks.Open(Abfrage)
Application.ShowWindowsInTaskbar = True
Application.ScreenUpdating = True
Set wb = Nothing
End Sub

Sub VorSchliessen()
Dim Abfrage As String
Dim wb As Workbook
Abfrage = [Pfad und Name der Datei]
Set wb = Workbooks(Abfrage)
If ActiveWorkbook.Close(False) Then 'hier kommt die Fehlermeldung
Workbooks(Abfrage).Close SaveChanges:=True
End Sub
Bei dem If Teil kommt die Fehlermeldung, dass eine Funktion oder Variable erwartet wird. Beide Codes sind in "DieserArbeitsmappe". Vielleicht weiß ja jemand, warum die Fehlermeldung kommt, bzw. wie ich den Code abändern kann, damit mein Vorhaben funktioniert.
Ein Plus wäre, wenn man auch noch einbauen könnte (im ersten Code wahrscheinlich), dass sich die zweite Datei (B) nur dann öffnet, wenn sie nicht bereits auf einem anderen PC geöffnet ist. Das ist aber nur zweitrangig!
Ich bin über jede Hilfe dankbar.
Gruß
Andi

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If WB close, then do xx
27.04.2020 12:18:07
Herbert
Hallo Andi,
das kannst du nicht in einer "If-Then"-Abfrage verwenden.
Servus
AW: VBA If WB close, then do xx
27.04.2020 12:28:52
Andi
Hallo Herbert,
meinst du, dass es insgesamt nicht möglich ist, das Schließen einer Excel Datei über If abzufragen?
Falls ja, kennst du eine Alternative?
Gruß
Andi
AW: VBA If WB close, then do xx
27.04.2020 12:18:24
MCO
Hast du statt
If ActiveWorkbook.Close(False)
mal

If thisWorkbook.Close(False)

probiert?
Gruß, MCO
AW: VBA If WB close, then do xx
27.04.2020 12:31:00
Andi
Hallo MCO,
danke für die Antwort :) Das habe ich bereits jedoch leider schon ausprobiert und es erscheint die gleiche Fehlermeldung. Falls du noch eine Alternative kennst, würde ich die gerne noch ausprobieren!
Gruß
Andi
Anzeige
AW: VBA If WB close, then do xx
27.04.2020 12:32:34
Andi
Habe vergessen, dass Kontrollkästchen zu aktivieren... Falls jemand eine Lösung kennt, würde ich mich sehr freuen!
Gruß Andi
AW: VBA If WB close, then do xx
27.04.2020 12:38:05
MCO
Hi!
Probier das mal
Sub VorSchliessen()
Dim Abfrage As String
Dim wb As Workbook
Abfrage = [Pfad und Name der Datei]
On Error Resume Next
Set wb = Workbooks(Abfrage)
If Not wb Is Nothing Then 'hier kommt die Fehlermeldung
Workbooks(Abfrage).Close SaveChanges:=True
End Sub
Gruß, MCO
AW: VBA If WB close, then do xx
27.04.2020 12:55:25
Daniel
Hi
1. um eine geöffnete Datei abzusprechen, reicht der Dateiname allein, ohne Pfad.
2. ich würde hier mit Schleife arbeiten um Fehler zu vermeiden , dann kannst du ggf auch den Pfad und Dateiname verwenden
Dim WB as Workbook
For each WB in Application.Workbooks
If Abfrage like "*" & WB.Name then WB.Close True
Next
Gruß Daniel
Anzeige
AW: VBA If WB close, then do xx
27.04.2020 14:19:36
Andi
Hallo Daniel,
danke, ich werde es mal ausprobieren.
Gruß
Andi
AW: VBA If WB close, then do xx
27.04.2020 13:23:38
Andi
Hallo MCO,
vielen Dank für den neuen Code. Es erscheint zwar keine Fehlermeldung mehr, aber passieren tut leider beim Ausführen des Makros auch nichts. Vielleicht schaue ich mal, ob ich insgesamt einen neuen Ansatz finde, um das Problem zu lösen.
Gruß
Andi
AW: VBA If WB close, then do xx
27.04.2020 12:53:53
Sigi
Hallo Andi,
probiermal
Private Sub Workbook_Open()
Dim sFile As String, sFile1 As String
sFile = "Deine Datei zum öffnen.xls?"
sFile1 = ThisWorkbook.Name
sPath = ThisWorkbook.Path & "\"
If Dir(sPath & sFile) = "" Then
' Fehlermeldung ausgeben
MsgBox ("Fehler Datendatei nicht vorhanden - Arbeitsmappe wird geschlossen"), , ("   _
Fehler Datendatei")
ActiveWorkbook.Close
Exit Sub
End If
Workbooks.Open sPath & sFile
Workbooks(sFile).Sheets("Data").Activate
Windows(sFile1).Activate
Workbooks(sFile1).Sheets("Menu").Select
Range("A1").Select
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
With Workbooks("Deine Datei zum schliessen.xls?")
.Activate:
.Save:
.Close
End With
With ActiveWorkbook
Worksheets("Menu").Activate
.Save
.Close
End With
End Sub
Gruß
Sigi
Anzeige
AW: VBA If WB close, then do xx
27.04.2020 14:18:38
Andi
Hallo Sigi,
cool, danke! Ich werde es wahrscheinlich erst morgen ausprobieren können, aber ich freue mich in jedem Fall über die Hilfe!
Gruß
Andi

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige