Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
484to488
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
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schließen von xls-Dateien

Schließen von xls-Dateien
13.09.2004 16:33:32
xls-Dateien
Guten Tag,
ich habe eine Liste mit xls-Dateien, die über ein Makro geschlossen werden sollen. Es kann jedoch sein, das nur einige aus der Liste geöffnet sind. Wie kann ich vorher also auslesen, welche meiner Dateien offen sind und nur diese schließen?
Viele Grüße,
Carsten

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schließen von xls-Dateien
14.09.2004 12:07:26
xls-Dateien
Hallo OttoH,
zunächst danke für den Hinweis. Wie kann ich aber prüfen, ob mehrere Dateien offen sind? Wie kann ich im genannten Code "sFile" mit verschiedenen Dateinamen belegen? Sicher mit einer Schleife, weiß aber nicht genau wie?
Gruß,
Carsten
AW: Schließen von xls-Dateien
xls-Dateien
Hallo Carsten,
probiere mal folgenden Code aus:
Die Dateinamen stehen in A1 bis A6
Option Explicit

Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Err = 0 And Not wkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function


Sub Aufruf()
Dim sFile As String
Dim i As Integer
For i = 1 To 6
sFile = Cells(i, 1)
If WkbExists(sFile) Then
MsgBox "Mappe " & sFile & " ist offen!"
Else
MsgBox "Mappe " & sFile & " ist geschlossen!"
End If
Next i
End Sub

Wenn mehr als 6 Dateien da sind, muss der Zähler for i=1 to xxx angepasst werden.
Gruß OttoH
Anzeige
AW: Schließen von xls-Dateien
15.09.2004 11:04:36
xls-Dateien
Hallo OttoH,
danke für die Info. Das funktioniert sicher so. Ich möchte die Dateinamen aber nicht in einem Tabellenblatt hinterlegen, sondern im Code. Bezogen auf das Beispiel habe ich es so gelöst:

Sub Aufruf()
Dim sFile As String
sFile = "Dateiname1"
If WkbExists(sFile) Then
MsgBox "Mappe " & sFile & " ist offen!"
Else
MsgBox "Mappe " & sFile & " ist geschlossen!"
End If
sFile = "Dateiname2"
If WkbExists(sFile) Then
MsgBox "Mappe " & sFile & " ist offen!"
Else
MsgBox "Mappe " & sFile & " ist geschlossen!"
End If
sFile = "Dateiname3"
If WkbExists(sFile) Then
MsgBox "Mappe " & sFile & " ist offen!"
Else
MsgBox "Mappe " & sFile & " ist geschlossen!"
End If
End Sub

So geht es auch. Aber das scheint mir nicht professioniell genug zu sein. Ich würde es lieber mit einer Schleife machen. Meinetwegen so:

Sub Aufruf()
Dim sFile As String
Dim i As Integer
sfile(1)=Dateiname1
sfile(2)=Dateiname2
sfile(n)=Dateinamen
For i = 1 To n
If WkbExists(sFile(i)) Then
MsgBox "Mappe " & sFile(i) & " ist offen!"
Else
MsgBox "Mappe " & sFile(i) & " ist geschlossen!"
End If
Next i
End Sub

Aber das geht so nicht. Bringt immer einen Fehler. Wie kann ich das machen?
Gruß, Carsten
Anzeige
AW: Schließen von xls-Dateien
xls-Dateien
Hallo Carsten,
bau mal die DIM-Anwei´sung um: DIM sFile(10) as string
Die 10 muß je nach Anzahl der DAteien hochgesetzt werden.
Gruß OttoH
AW: Schließen von xls-Dateien
15.09.2004 14:46:06
xls-Dateien
Hallo OttoH,
vielen Dank. Hat mir sehr geholfen. Ich hätte allerdings vermutet, das die Variable sfile in der Function... ebenso geändert werden muß. Aber da kann ja sonst was stehen.
Habe noch eine Frage: Ich möchte in einem Formular mit verschiedenen Checkboxes über eine Schaltfläche alle aktivieren. Habe es bisher so gelöst:

Sub alle_aktivieren ()
checkbox1 = true
checkbox2 = true
checkboxn = true
End Sub

Auch das möchte ich gern über eine Schleife machen. Habe es wie beim ersten Problem versucht (über "dim checkbox(10) as string" - aber das geht nicht). Kannst du mir helfen?
Gruß,
Carsten
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige