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

Ist eine ganz bestimmte Datei geöffnet?

Ist eine ganz bestimmte Datei geöffnet?
10.10.2005 08:21:45
Hilde
Hallo Leute,
habe heute Morgen zwar schon einen guten Tipp bekommen; war aber nicht ausreichend.
Mein Anliegen: Möchte in VBA aus einem Workbook heraus mehrere andere öffnen.
Da diese Workbooks aber eventuell auch anderweitig geöffnet sein könnten, muss ich vorher eine Abfrage starten, od dieses WB schon offen ist oder nicht.
Gibt es da eine VBA-Methode nach dem Motto:
ISOPEN.Dateiname oder ISOPEN ("Dateiname") oder....
Ich möchte nämlich eine If-Abfrage starten
If ist-diese-datei-namens-datei1-offen Then
MsgBox "Sie müssen die Datei "Datei1" schließen, bevor Sie dieses Programm anwenden können. Daher bricht das Programm an dieser Stelle ab."
exit sub
Else
Workbook.Open ("Datei1.xls")
End If
Oder hat jemand noch ganz andere geniale Ideen?
LG und einen schönen Guten Morgen
Hilde

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

Betreff
Datum
Anwender
Anzeige
Doppelt !!!
10.10.2005 08:26:44
Heiko S.
Hallo Hilde,
warum fängst du denn dafür einen neuen Thread an, ohne Oberschlumpf auf seinen Tipp überhaupt zu antworten ?! Bleib im alten Thread und gib Rückmeldung an die Helfer !!!
Er hat doch extra gefragt " Konnte ich helfen ?"

Gruß Heiko
AW: Doppelt !!!
10.10.2005 09:46:53
Hilde
Hallo Heiko,
weil es mir schon mehrmals passiert ist, dass ich geantwortet und mich bedankt habe, um dann noch eine weiterführende Frage zu stellen, auf die dann trotz mehrmaligem nachfragen, niemand mehr eingegangen ist..... Sorry!
Ich merke auch, dass Ihr hier in diesem Forum teils sehr empfindliche und teils leider!!! manches Mal etwas überhebliche Mitglieder habt! Die Fragen werden nicht immer sachlich beantwortet oder manches Mal sogar blöd kommentiert. Und wenn ich dies jetzt hier moniere, muss ich befürchten, dass mir niemand mehr antworten wird; jedenfalls niemand aus der eingeschworenen Gemeinde.
Doch das musste ich jetzt einfach mal loslassen.
Nichts für ungut: denn Ihr habt mir bisher schon sehr viel geholfen und ich wünsche mir sehr, dass dies weiterhin der Fall bleiben wird.
Hilde
Anzeige
AW: Ist eine ganz bestimmte Datei geöffnet?
10.10.2005 08:26:52
eres
Hallo Hilde,
die Recherche hier ist 1. Klasse. Such mal nach "Datei offen" und Du erhälst genug alternative Lösungen ... :-)
Gruss
eres
AW: Ist eine ganz bestimmte Datei geöffnet?
10.10.2005 09:47:56
Hilde
danke! ich werde es mal ausprobieren.
ciao
Hilde
AW: Ist eine ganz bestimmte Datei geöffnet?
10.10.2005 10:01:24
Hilde
Hallo eres,
leider gibts zur Zeit unter "Datei offen" nichts zu finden; somit ar die Recherche sehr schnell beendet! Oder recherchiere ich hier falsch?
Gruß
Hilde
warum bleibst du nicht in deinem ersten thread?.oT
10.10.2005 08:27:15
Oberschlumpf
AW: warum bleibst du nicht in deinem ersten thread?.oT
10.10.2005 09:51:37
Hilde
Hy,
habe es gerade Heiko erklärt!
Weil ich schon ein paar Mal geantwortet und gedankt und dann noch eine zusätzliche weiterführende Frage gestellt habe, die dann nie beantwortet wurde. Daher dachte ich, ich stelle die Frage nochmals ins Forum, zumal ich die erste ja auch zu einer relativ frühen Uhrzeit reingestellt hatte.
Dass Du zu den zuverlässigen Mitgliedern dieses Forums gehörst, konnte ich nicht wissen, und so danke ich Dir jetzt einfach mal dafür.
Und solltest Du in der Lage sein, meine entschuldigung anzunehmen, so wäre ich Dir nochmals dankbar, wenn Du auch noch meine Frage beantworten könntest.
Merci
Hilde
Anzeige
AW: warum bleibst du nicht in deinem ersten thread?.oT
10.10.2005 10:27:22
Oberschlumpf
Hallo Hilde
Ich kann deinen Ärger verstehen. Mir ist auch schon aufgefallen, was du bemängelst.
Aber mir ist auch schon aufgefallen, dass eben einige auf Hilfevorschläge gar nicht antworten, oder eben, wie du, einen neuen Thread eröffnen.
Deine für mich stichelnde Schlussfrage :-), kann ich mit einem JA beantworten.
Ick nehm ma deine Entschuldigung an, wa :-)
Und nun weiter im Text :-)
Tipp zur Recherche:
Am besten finde ich was, wenn ich auf www.google.de so vorgehe.
Suchtext site:herber.de
Für Suchtetxt gibst du das ein, wonach du suchst, z Bsp:
Datei öffnen site:herber.de
google gibt mit diesem Suchtext dies an:
Ergebnisse 1 - 10 von ungefähr 12.500 :-)
...allerdings keine Garantie auf solche Treffer, wie du sie suchst :-)
Nun noch ein paar Fragen zu deiner Frage.
Du schreibst,
If ist-diese-datei-namens-datei1-offen Then
Wie machst du dem Programm bekannt, welche Datei datei1 ist?
Ich könnte jetzt weiteren Bsp-Code für dich hier rein setzen.
Da du aber angibst, nicht so viel VBA-Kenntnisse zu haben, könnte dich das aber nur verwirren.
Deswegen warte ich erst mal auf deine Antwort.
Ciao
Thorsten
Anzeige
AW: warum bleibst du nicht in deinem ersten thread?.oT
10.10.2005 11:30:38
Hilde
Hallo Thorsten,
vorneweg: ganz blank bin ich in VBA nicht mehr, aber: wenn ich das angebe, dann bekomme ich derart kryptische Erklärungen, dass ich doch nichts verstehe.
Also: In meinem Progrämmchen befinden sich alle zu öffnenden Dateien in demselben Verzeichnis.
Habe für jede Datei, die ich eventuell öffnen möchte eine Stringvariable definiert (public strdatei as string) und dieser dann den Dateinamen zugwiesen mit:
strdatei = ThisWorkbook.Path & "\datei")
wenn ich dann anschließe:
Workbooks.Open strdatei
dann funktioniert das; selbst wenn die betreffenden Datei schon geöffnet ist; allerdings darf sie dann seit dem Öffnen nicht geändert worden sein. An und für sich könnte man das ja sogar so belassen, doch.... irgendwie fände ich das besser, wenn ich das selbst abfangen würde (zumal ich dann über eine MsgBox die aufforderung rausgeben kann, doch bitte alle für dieses Progrämmchen relevanten Dateien vor Aufruf desselbigen zu schließen).
Weiß nicht, ob ich mich verständlich ausgedrückt habe.
Schicke Dir einen lieben Gruß und verabschiede mich bis morgen Vormittag, da Kochen, Kinder empfangen, Hausis betreuen, Klavierspielen etc.... anstehen und ich dann abends zu platt zum Programmieren bin.
ciao
Hilde
Anzeige
AW: warum bleibst du nicht in deinem ersten thread?.oT
11.10.2005 09:47:17
Oberschlumpf
Hi Hilde
Kommt mir ganz gelegen, dass du erst morgen vormittag Zeit hast, da ich heute auch fast den ganzen Tag nicht mehr an den PC kam.
Hier nun mein nächster Hilfe-Versuch :-)
(der Code wird unten erklärt)


Sub Erst_Pruefen_Dann_Oeffnen()
1   Dim strdatei As String, lizahl As Integer, strname() As String, lizaehler As Integer, strmsg As String
2   strdatei = Dir(ThisWorkbook.Path & "\*.xls")
3   ReDim Preserve strname(lizaehler)
    
4       Do Until strdatei = ""
5               For lizahl = 1 To Workbooks.Count
6                   If strdatei = Workbooks(lizahl).Name And strdatei <> ThisWorkbook.Name Then
7                       strname(lizaehler) = strdatei
8                       lizaehler = lizaehler + 1
9                       ReDim Preserve strname(lizaehler)
10                      Exit For
11                  End If
12              Next
13          strdatei = Dir
14      Loop
        
15      If lizaehler > 0 Then
16                  For lizahl = 0 To lizaehler
17                      strmsg = strmsg & strname(lizahl) & vbCrLf
18                  Next
19              strmsg = "Diese Dateien müssen geschlossen werden:" & vbCrLf & vbCrLf & strmsg & "Wiederholen Sie dann den Vorgang erneut."
20              MsgBox strmsg
21              Exit Sub
22          Else
23              'HIER DER START DEINES MAKROS, WENN KEINE DATEIEN GEÖFFNET SIND
24      End If
        
End Sub


     Code eingefügt mit Syntaxhighlighter 2.5

Erklärung:
1 Variablen werden deklariert
2 Der Variablen strdatei wird der Dateiname der ersten Excel-Datei im angegebenen Verzeichnis zugewiesen
3 Die Arrayvariable strname wird neu dimensioniert (diese Variable beinhaltet alle Dateinamen derer Dateien, die noch geöffnet sind, wenn welche geöffnet sind)
4 Die Do Loop Schleife wird so lange durchlaufen, bis alle im Verzeichnis gespeicherten Excel-Dateien geprüft sind
5 Die For Next Schleife überprüft, ob eine der Excel-Dateien geöffnet ist
6 Wenn der Inhalt von strdatei mit einem Namen der geöffneten Excel-Dateien übereinstimmt (außer die Excel-Datei, die diesen Code ausführt), "merkt" sich der Code den Namen der geöffneten Dateien
7 In der Array-Variablen strname() "merkt" sich der Code, welche Datei geöffnet ist
9 Die Dimension der Arrayvariablen wird um eins erhöht
10 Wurde eine geöffnete Datei "gefunden", muss die For Next Schleife nicht weiter durchlaufen werden und wird an dieser Stelle "verlassen"
13 Hier wird der Variablen strdatei der nächste Name der Excel-Datei zugewiesen, die sich im Verzeichnis befinden
15 Wurde mindestens 1 geöffnete Excel-Datei "gefunden", wird an dieser Stelle der User darauf aufmerksam gemacht, und der Code wird abgebrochen
17 Der Variablen strmsg werden alle "gefundenen" Namen der geöffneten Excel-Dateien zugewiesen
20 Mit Hilfe der Variablen strmsg wird dem User angezeigt, dass mindestens eine Excel-Datei geöffnet ist, die geschlossen werden muss
21 Der Code wird hier abgebrochen
23 Hier steht dein Code, der ausgeführt werden soll, wenn keine der betroffenen Excel-Dateien geöffnet ist
Mit diesem Code werden bei jeder Prüfung alle Excel-Dateien geprüft, ob eine von denen geöffnet ist.
So musst du nicht für jede einzelne Excel-Datei eine extra Variable anlegen.
Konnte ich dir denn nun helfen? :-) (mein Gefühl sagt mir erst mal NEIN, aber ich lass mich überraschen :-)
Ciao
Thorsten
Anzeige
AW: warum bleibst du nicht in deinem ersten thread?.oT
14.10.2005 12:00:38
hilde
hallo thorsten,
sitze heute wegen krankheit zum ersten mal wieder am pc!!
danke für deine super erklärte rückmeldung!
werde es so bald als möglich durcharbeiten.
ciao
hilde

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige