Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prüfen, ob Mappe geöffnet ist

Prüfen, ob Mappe geöffnet ist
Alex
Hallo,
Ich habe einen Button in einem Arbeitsblatt. Nach dem Klick darauf wird eine andere Arbeitsmappe geöffnet. Nun kann es vorkommen, dass diese Mappe bereits geöffnet ist. Dann kommt eine Fehlermeldung. Wie kann ich das verhindern?
Vielen Dank für die Hilfe.
Alex

39
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,

Function MappeOffen(n) As Boolean
Dim dummy As String
On Error Resume Next
dummy = Workbooks(n).Name
If Err.Number > 0 Then
Err.Clear
MappeOffen = False
Else
MappeOffen = True
End If
End Function

Die Puristen mögen mir verzeihen, dass ich die Fehlerbehandlung so missbrauche. Man kann es natürlich auch mit einer Schleife lösen.
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Leo
Hi,
was daran Purismus sein soll, dem nicht so versiertem Frager eine saubere Lösung zu
bieten, ist mir nicht ganz klar, zumal es für dich doch ein Leichtes ist.
mfg Leo
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Leo,
Naja, die Frage ist, was an der Lösung mit On Error Resume Next "unsauber" ist?
Das würde mich interessieren.
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Leo
Hi,
das ist wahrscheinlich Auffassungssache. Ich habe gelernt, dass man On Error- Anweisungen nur verwenden soll, wenn es keine andere Möglichkeit gibt, Fehler zu
vermeiden.
Das ändert aber nichts daran, dass deine Beiträge fast immer top sind!
mfg Leo
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Leo,
danke fürs Kompliment :-)
ja, es ist wahrscheinlich Glaubenssache. Ich kann die Ansicht auch verstehen. Aber bisher konnte mir niemand etwas anderes sagen. z.B. dass der Code unter bestimmten Umständen nicht richtig funktionieren würde. Und solange er das gleiche tut wie eine Schleife, bleibe ich da pragmatisch.
Viele Grüße,
Matthias
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Leo
Hi,
für diesen konkreten Fall: Stell mal in den Optionen(VBE)ein Unterbrechen bei jedem Fehler, was ja vorkommen soll, dass es so eingestellt ist.
mfg Leo
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Leo,
das nenn' ich einen Grund!
Die Option kannte ich nicht.
Vielen Dank, du hast mich überzeugt!
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Hajo_Zi
Hallo Alex

Dim BoOffen As Boolean
BoOffen = False
For Each x In Workbooks
If x.Name = "Auftragsplanung Übersicht.XLS" Then
Workbooks("Auftragsplanung Übersicht.XLS").Save
BoOffen = True
Exit For
End If
Next
If BoOffen = False Then Workbooks.Open Filename:=StNetz & "Auftragsplanung Übersicht.XLS", Password:=StDatei

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Hajo,
warum speicherst du im Code die Mappe "Auftragsplanung Übersicht.XLS" ?
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Hajo_Zi
Hallo Matthias,
das ist ja ein Teil eines Gesamtprojektes. Die Datei wird an diesem Punkt nur zischengespeichert.
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Hajo,
Erkennst du das am Fragesteller oder an der Frage, dass er das braucht?
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Hajo_Zi
Hallo Matthias,
ich habe den vorhanden Code kopiert. Falls er es nicht braucht kann er es ja Löschen. Mein Gedanke dahinter war eigetlich nur soll die Datei nochmal geöffnet werden sind die bisherigen Änderungen ok und die Datei kann gespeichert werden.
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Alex
So,
vielen Dank erstmal an alle für die Antworten.
Nun ist es so, das der Name + Pfad der Datei variabel ist. Dieser ist in Zelle:
Sheets("Übersicht").Range("B58").Value
hinterlegt. Kann mir jemand den Code zeigen, der dazu passt?
Ich danke nochmals
Alex
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,
aus meiner Antwort unten, auf die du bisher noch nicht reagiert hast:
MsgBox Mid(Sheets("Übersicht").Range("B58").Value, InStrRev(Sheets("Übersicht").Range("B58").Value, "\") + 1)
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Matthias,
danke für den Code. Bei diesem markiert er bei mir aber "mid" und gibt
Projekt oder Bibliothek nicht gefunden.
Weißt Du weiter?
Danke
Alex
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,
hast du eine Variable vielleicht "mid" genannt?
Prüfe das mal.
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo,
ich habe noch gar keine Variablen verwendet?!
Alex
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,
in der ganzen Mappe nicht?
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo,
richtig. Zumindest habe ich das gesamte Projekt nach "mid" durchsuchen lassen.
Es war nirgens zu finden, bis auf diesen einen Code.
Alex
AW: Prüfen, ob Mappe geöffnet ist
Erich
Hallo Alex,
gehe bitte mal im Code mit dem Cursor in das Wort "mid" und drücke Shift+F2.
Zeigt sich dann der Objektkatalog, ist Mid da ein Element von "Strings"?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Erich,
Bezeichner unter dem Cursor nicht erkannt.
Was soll ich mach?
Alex
AW: Prüfen, ob Mappe geöffnet ist
Erich
Hallo Alex,
schau mal im VBA-Editor unter Extras - Verweise, welche Bibliotheken aktiv sind.
Bei mir (Excel 10.0- XP) sind das
- Visual Basic for Applications
- Microsoft Excel 10.0 Object Library
- OLE Automation
- Microsoft Office 10.0 Object Library
Die mit OLE wird vermutlich nicht gebraucht.
Wie sieht die Liste bei dir aus?
Grüße von Erich aus Kamp-Lintfort
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Erich,
hier ist ein Screenshot der Verweise
Userbild
Viele Grüße
Alex
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Erich,
hier ist ein Screenshot der Verweise
Userbild
Viele Grüße
Alex
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Erich,
hier ist ein Screenshot der Verweise
Userbild
Viele Grüße
Alex
Funktion Mid nicht gefunden
Erich
Hallo Alex,
noch 'ne Idee:
Vermutlich lässt dein VBA ja nicht nur "Mid", sondern z. B. auch die Funktion "Date" vermissen. Teste doch mal:

Sub tst()
msgbox "Heute ist der " & date
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Funktion Mid nicht gefunden
Alex
Hallo,
das ist richtig, date funktioniert nicht! Ich musste schon den Code für date umändern damit es wieder funktioniert. Am Anfang hatte es aber funktioniert. Nun habe ich es mit diesem Code gemacht

Sheets("Fertigungsrezept").Label2.Caption = VBA.DateTime.Date
Weißt Du nun, woran es liegt?
Danke Alex
AW: Prüfen, ob Mappe geöffnet ist
Erich
Hallo Alex,
da das jetzige Problem nix mehr mit der Prüfung, ob Mappe offen oder nicht, zu tun hat, mein Vorschlag:
Wenn das Mid-Problem noch besteht und du lösen möchtest, solltest du besser einen neuen Thread dazu aufmachen (mit Link auf den jetzigen Thread).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Prüfen, ob Mappe geöffnet ist
Hajo_Zi
Hallo Alex
Option Explicit

Sub test()
Dim BoOffen As Boolean
Dim X
BoOffen = False
For Each X In Workbooks
If X.Name = Mid(Sheets("Übersicht").Range("B58").Value, _
InStrRev(Sheets("Übersicht").Range("B58").Value, "\") + 1) Then
Workbooks(Mid(Sheets("Übersicht").Range("B58").Value, _
InStrRev(Sheets("Übersicht").Range("B58").Value, "\") + 1)).Save
BoOffen = True
Exit For
End If
Next
If BoOffen = False Then Workbooks.Open Filename:=Sheets("Übersicht").Range("B58").Value
End Sub

Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Hajo,
danke für die Hilfe, aber auch bei Deinem Code markiert er mir "mid" in Zeile 6

Sub testoffen()
Dim BoOffen As Boolean
Dim X
BoOffen = False
For Each X In Workbooks
If X.Name = Mid(Sheets("Übersicht").Range("B58").Value, _
InStrRev(Sheets("Übersicht").Range("B58").Value, "\") + 1) Then
Workbooks(Mid(Sheets("Übersicht").Range("B58").Value, _
InStrRev(Sheets("Übersicht").Range("B58").Value, "\") + 1)).Save
BoOffen = True
Exit For
End If
Next
If BoOffen = False Then Workbooks.Open Filename:=Sheets("Übersicht").Range("B58").Value
End Sub

Liegt es an mir?
Was mache ich falsch?
Danke
Alex
AW: Prüfen, ob Mappe geöffnet ist
Hajo_Zi
Hallo Alex,
in B58 steht was in der Art
"D:\Eigene Dateien\Hajo\Internet\Test\Datei.xls"
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo Hajo,
jep. Ganz genau.
Alex
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,
gib mal ins Direktfenster ein:
? mid("123",2)
muss "23" rauskommen.
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Alex
Hallo nochmal,
gibt eine Fehlermeldung "Projekt oder Bibliothek nicht gefunden"
öffnet dann Fenster " Verweis VBA projekt"
Gruß
Alex
AW: Prüfen, ob Mappe geöffnet ist
Matthias
Hallo Alex,
das ist ein mir unbekanntes Problem. Halte dir mal an Erich, der hatte schon die Idee, wie man den Fehler erkennen kann.
Gruß Matthias
AW: Prüfen, ob Mappe geöffnet ist
Leo
Hi,
Schreib das so:
VBA.Strings.Mid(....)
mfg Leo
PS:
Du solltest eine neue Mappe erstellen, das ist ein ziemlich sicheres Zeichen dafür,
dass deine Datei korrupt wird.
Die vorhanden Codes zuerst in eine Textdatei oder Worddoc kopieren.
@ Leo
MichaV
Hallo Leo,
wie erstelle ich mir neue Politiker, wenn die korrupt werden?
Gruss- Micha (aus Berlin)
AW: @ Leo
Leo
Hi,
das geht mit einem Klassenmodul, kennst du dich damit aus?
mfg Leo(auch Berlin)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige