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

Prüfen

Prüfen
29.03.2007 17:58:39
Boris
Hallo,
ich habe 2 Dateien mit folgender Abhängigkeit: Die Datei Master.xls muss vor dem Öffnen der Datei Summary.xls geöffnet sein, da sich letztere Daten aus der ersten zieht. Ist Master nicht geöffnet zerschiessen sich sämtlich Bezüge. Dies möchte ich durch eine Abfrage beim Starten von Summary.xls abfangen. Nun frage ich mich: ist dies überhaupt möglich, da es ja eine Funktion wie Workbook_BeforeOpen nicht gibt, oder anders: Ist Workbook_Open schon "zu spät" und es wurde schon kalkuliert?
Wie sähe der Code aus für: Prüfe ob Master.xls bereits geöffnt, falls nicht: starte Abfrage, ob die Datei geöffnet werden soll. Ansonsten muss Summary wieder geschlossen werden...
Gruß,
Boris

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Aufgabenbereich speichern - *.xlw-Datei
29.03.2007 18:47:00
Beate
Hallo Boris,
du könntest beide Dateien in der richtigen Reihenfolge aus einer *.xlw-Datei starten, dann entfällt das Problem:
Guckst Du: Gleichzeitiges Öffnen mehrerer Dateien
Gruß,
Beate
AW: Prüfen
29.03.2007 19:02:00
IngGi
Hallo Boris,
eine Idee dazu hätte ich anzubieten. Ist allerdings ein wenig umständlich. Ersetze in der gesamten Datei alle Gleichheitszeichen durch eine sinnlose, aber eindeutige Zeichenfolge wie z.B. %&! und speichere die Datei so ab. Nun werden deine Formeln beim Öffnen zunächst nicht mehr als solche erkannt und es findet daher auch keine Aktualisierung externer Bezüge statt. Folgendes Makro im Workbook_Open-Ereignis der Datei prüft beim Öffnen, ob die Datei Master.xls geöffnet ist und ersetzt dann die Zeichenfolge %&! überall wieder durch das Gleichheitszeichen. Ansonsten wird die Datei nach einer Nachricht wieder geschlossen.


Private Sub Workbook_Open()
Dim wb As Workbook
Dim ws As Worksheet
'Bei Laufzeitfehler fehlerauslösendes Kommando übergehen
On Error Resume Next
'Geöffnete Datei Master.xls in Variable übergeben
'Falls Datei nicht geöffnet tritt ein Laufzeitfehler auf
'Dann wird durch das vorige Kommando die Set-Anweisung
'ignoriert.
Set wb = Workbooks("Master.xls")
'Normale Behandlung von Laufzeitfehlern wieder einschalten
On Error GoTo 0
'Wenn eine Datei Master.xls geöffnet ist ...
If Not wb Is Nothing Then
   '... prüfen, ob es auch die richtige ist!
   If wb.FullName <> "C:\Master.xls" Then
      'Wenn es die falsche Datei ist, Variable zurücksetzen
      Set wb = Nothing
   End If
End If
'Wenn Variable leer, also Master.xls nicht geöffnet ...
If wb Is Nothing Then
   'Benachrichtigung absetzen
   MsgBox "Datei ""Master.xls"" ist nicht geöffnet." _
      & vbLf & "Datei wird geschlossen."
   'Datei ohne zu speichern wieder schliessen
   ThisWorkbook.Close False
Else 'Wenn Datei Master.xls geöffnet ...
   'Alle Tabellenblätter der Datei bearbeiten
   For Each ws In ThisWorkbook.Worksheets
      'In allen Zellen die Formeln durch Setzen des
      'Gleichheitszeichens "aktivieren"
      ws.Cells.Replace "%&!", "="
   Next 'ws - nächstes Tabellenblatt
End If
End Sub


Gruß Ingolf
Anzeige
AW: Prüfen
02.04.2007 15:15:40
Boris
Hi Ingolf,
ich glaube in meinen Ausführungen war ein Gedankenfehler: Wenn Master.xls nicht geöffnet ist, bringt Dein Makro eine Message Box und schließt die Datei ohne zu speichern. So soll es ja auch sein. Wenn dagegen Master.xls geöffnet ist, soll Summary.xls geöffnet bleiben, in diesem Fall "zerschießen" sich die Formeln nicht. Dann brauche ich ja auch den Umweg des Ersetzens der Zeichenfolge nicht, oder?
Gruß,
Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige