Wie man in EXCEL unter VBA eine (neue/weitere) Arbeitsmappe öffnet hat sich sicher schon herumgesprochen (kann man ja auch aufzeichnen): Workbooks.Open Filename:="C:\Mappe2.xls" Das ist auch richtig so. Was aber, wenn die Datei (d.h. Arbeitsmappe) schon geöffnet ist und vom User in der Zwischenzeit verändert wurden? Wenn wir also die (bereits veränderte) Mappe nochmals öffnen meckert Excel herum und der User erhält folgende Meldung: Dies ist sicher nicht im Sinne des Erfinders und verwirrt den Benutzer. Noch schlimmer ist aber, dass dieser sich jetzt in der Excel-Falle befindet!! Er hat ja nur zwei Möglichkeiten zu klicken:
Spätesten jetzt wird der Name des Programmierers mit einem Schimpfwort in Verbindung gebracht. Wenn der User gar auf DEBUGGEN (TESTEN) klickt, landet er in der VBA- Oberfläche! Das alles sollte nicht sein!!! Und es muss auch nicht sein Was ist zu tun? Eine VBA-Lösung: ' Beispiel: C:\MAPPE2.XLS (richtig!) öffnen Dim bExists As Boolean Dim oWorkbook As Object ' Prüfen ob Datei bereits geöffnet ist bExists = False With Application For Each oWorkbook In .Workbooks If UCase$(oWorkbook.Name) = "MAPPE2.XLS" Then ' Jetzt aktivieren Windows(oWorkbook.Name).Activate bExists = True Exit For End If Next End With ' Mappe neu laden! If Not bExists Then On Error Resume Next Workbooks.Open Filename:="C:\MAPPE2.XLS", ReadOnly:=False On Error GoTo 0 End If Und wie ist es in Word? Documents.Open FileName:="C:\Dok2.doc" Hier gibt es (bei mir zu mindestens) dieses Problem nicht. Word schaltet den Fokus ohne zu Meckern auf die Datei, die im Parameter FileName angegeben ist, um. Dieser Tipp wurde bereits 145.787 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats Januar 2025 Dieter Otter Zeilen einer MultiLine-TextBox ermitteln (VB.NET) Dieser Zipp zeigt, wie man die Zeilen einer MultiLine-TextBox exakt so ermitteln kann, wie diese auch in der TextBox dargestellt werden. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |