Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Code beim Schließen einer Datei

Forumthread: VBA-Code beim Schließen einer Datei

VBA-Code beim Schließen einer Datei
11.08.2003 11:07:13
Torsten K:
Hallo beisammen,
als VBA-Anfänger brauche ich mal Hilfe:
In einer Datei habe ich mehrere Arbeitsblätter. In dem Arbeitsblatt "Check" werden die Werte in den Zellen A1 und A2 miteinander verglichen. Wenn A1 <> A2 soll beim Schließen der Datei eine MsgBox (yes/no) erscheinen, die darauf hinweist, daß die Zellen unterschiedliche Werte haben. Der User soll über die MsgBox die Möglichkeit haben, die Daten zu ändern (auf yes) bzw. bei "no" Excel
die Datei weiter schließen zu lassen. Wichtig wäre noch, wenn der User auf "yes" klickt, daß er auf das Arbeitsblatt "Check" geführt wird.
Ich denke, daß das ein Code im Klassenmodul "Dieses Arbeitsblatt" mit "Workbook" und "Before Close" sein müsste.
Vielen Dank für Eure Hilfe im voraus.
Gruß
Torsten
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code beim Schließen einer Datei
11.08.2003 11:24:22
Andi_H
Hi Torsten,
versuch mal diesen Code.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Dim antw As String
Set ws = Sheets("Check")
If ws.Cells(1, 1) <> ws.Cells(2, 1) Then
antw = MsgBox("In der Tabelle Check sind die Zellen A1 und A2 verschieden. Wollen Sie dies ändern?", vbYesNo + vbDefaultButton1)
If antw = vbYes Then
ws.Select
Cancel = True
Exit Sub
End If
End If
End Sub

Gruß
Andi

Anzeige
AW: VBA-Code beim Schließen einer Datei
11.08.2003 11:34:12
Michael Brüggemann
Hallo Torsten,
in "Diese Arbeitsmappe" kannst Du den folgenden Code hinterlegen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Worksheet
' Arbeitsblatt setzen
Set wks = ThisWorkbook.Sheets("Check")
' Zellen A1 und A2 vergleichen
If wks.Range("A1") <> wks.Range("A2") Then
' MsgBox mit zwei Buttons zur Abfrage verwenden
If MsgBox("Die Werte im Arbeitsblatt 'Check' in den Zellen " & _
"'A1' und 'A2' sind nicht identisch." & vbLf & _
"Möchten Sie die Werte korrigieren ?", vbYesNo) _
= vbYes Then
' Arbeitsblatt "Check" aktivieren
wks.Activate
' Cursor in Normalzustand zurücksetzen (sieht sonst "in Arbeit" aus)
Application.Cursor = xlDefault
' Schließen abbrechen
Cancel = True
End If
End If
End Sub

CIAO
Michael

Anzeige
AW: VBA-Code beim Schließen einer Datei
11.08.2003 12:14:48
Torsten K.
Hallo Michael,
vielen Dank für Deine Hilfe.
Hinweis:
Application.curser = xlDefault
funktioniert nicht.
Hierzu bekomme ich einen Laufzeitfehler 438 angezeigt.
Kommentiere ich diese Zeile aus, läuft der Code.
Gruß
Torsten

AW: VBA-Code beim Schließen einer Datei
11.08.2003 12:28:22
Michael Brüggemann
Hallo Torsten,
die Zeile muss heißen "Application.Cursor = xlDefault" (Cursor mit "o"). So klappts zumindest in Excel 97.
CIAO
Michael

Anzeige
AW: VBA-Code beim Schließen einer Datei
11.08.2003 13:10:21
Torsten K.
oje, oje
wer lesen kann, ist klar im Vorteil....
Danke für den Tipp.
Gruß
Torsten

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige