Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
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
Inhaltsverzeichnis

Speichern zulassen wenn Makro ohne Fehler

Speichern zulassen wenn Makro ohne Fehler
Maris
Hi Leute,
wie kann ich ein Speichern der insgesamt Datei verhindern, es sei den der Makro zeigt keine Fehlermeldung an? Nur wenn das Makro fehlerfrei durchläuft soll die Möglichkeit bestehen zu speichern. DAs Makro prüft ob im Bereich J2:L2000 ein Fehlerwert steht...
Sub fehler()
Dim r As Range
Dim letzteZeile As Long
Dim letzteZelle As Range
letzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
Range("J1:L" & letzteZeile).Select
On Error GoTo fehler
Set r = Selection.SpecialCells(xlCellTypeFormulas, 16)
If Not r Is Nothing Then MsgBox "Attention!  There are some critical error values in your  _
list #NV! Check column J,K,L --> To get zero values, please edit the colums" _
& Chr$(13) & Chr$(13) & "CHECK CELLS:" & Chr$(13) & Chr$(13) & Chr(10) & r.Address & vbLf
Exit Sub
fehler:
MsgBox "Perfect! No Errors!"
End Sub
Ich denke da eine beforeSave Aktion, weiß aber leider nicht wie man das umsetzt...
Lg,
MAris
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 16:32:30
Hajo_Zi
Hallo Marris,
benutze eine Variable z.b. Public BoSpeicher as Booelean und setze diese auf true, falls das Makro korrekt durchläuft, ich vermute voe Exit Sub und bei Before savoe prüfst Du ob die Variable True.

AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 16:45:05
Maris
Hi und danke Hajo,
soweit bin jetzt gekommen, aber ich hab 2 Prozeduren drin... ich weiß nicht wie es umsetzen kann... Komme mit nachschlagen im Büchle leider nicht weiter...Kannst du mir bei dem Code helfen?
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
Dim letzteZeile As Long
Dim letzteZelle As Range
letzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
Range("J1:L" & letzteZeile).Select
On Error GoTo fehler
Set r = Selection.SpecialCells(xlCellTypeFormulas, 16)
If Not r Is Nothing Then MsgBox "Attention!  There are some critical error values in your  _
list #NV! Check column J,K,L --> To get zero values, please edit the colums for manual invoicing" _
& Chr$(13) & Chr$(13) & "CHECK CELLS:" & Chr$(13) & Chr$(13) & Chr(10) & r.Address & vbLf
Exit Sub
fehler:
MsgBox "Perfect! No Errors!"
Cancel = True
Exit Sub
End Sub

Gruß
Maris
Anzeige
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 16:48:16
Hajo_Zi
Hallo Maris,
was Du noch beim speichern machen willst ist mir nicht klar

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If BoSpeicher then
' Aktionen  vor speichern
else
Cancel=True
End if
End Sub
Gruß Hajo
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 17:09:51
Maris
Es soll vor dem speichern geprüft werden ob im Bereich J1:L2000 ein Fehlerwert ist... Also dieses Makro zeigt nur an wo die Fehlerwerte sind und wenn es keine Fehler findet läuft es durch mit der Meldung das keine Fehler gefunden wurden... wenn nun ein Fehler gefunden wurde, darf nicht gespeichert werden...
If Not r Is Nothing Then MsgBox "Attention!....

also wenn diese Meldung erschein, darf man die Arbeitsmappe nicht speichern und es soll eine Meldung ausgegeben werden, wie bitte Fehler korrigieren.
Gruß
Maris
Anzeige
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 17:21:30
Hajo_Zi
Hallo Maris,
Du hast schon das erste Makro wie vorgeschlagen geändert?
Das Problem aus Deinem letzten Beitrag hat nichtts mehr mit dem ersten Beitrag zu tun?
Gruß Hajo
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 17:34:51
Maris
Ich habe das Makro wie folgt eingefügt:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
Dim letzteZeile As Long
Dim letzteZelle As Range
Dim BoSpeicher As Boolean
If BoSpeicher Then
letzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
Range("J2:L" & letzteZeile).Select
On Error GoTo fehler
Set r = Selection.SpecialCells(xlCellTypeFormulas, 16)
If Not r Is Nothing Then MsgBox "Attention!  There are some critical error values in your  _
list #NV! Check column J,K,L --> To get zero values, please edit the colums for manual invoicing" _
& Chr$(13) & Chr$(13) & "CHECK CELLS:" & Chr$(13) & Chr$(13) & Chr(10) & r.Address & vbLf
Exit Sub
fehler:
MsgBox "Perfect! No Errors!"
Else
Cancel = True
End If
End Sub
Leider passiert vor dem speichern nichts :-(!
Vg,
Maris
Anzeige
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 17:37:59
Hajo_Zi
Hallo Maris,
ich bin raus, das hat nun nichts mehr mit dem ersten Beitrag zu tun. Das ist ein völlig anderes Konzept.
Gruß Hajo
AW: Speichern zulassen wenn Makro ohne Fehler
01.09.2010 17:48:48
Maris
hmmmm... aber so habe ich das in meinem ersten Beitrag gemeint...
Denke, er soll NICHT speichern, wenn...
01.09.2010 18:20:05
Luc:-?
…Fehler auftreten, Maris…?!
Bei dir wird aber gecancelt, wenn keine Auftreten! Das Exit Sub kannst du dir schenken, wenn du die Fehlerbehandlung an der richtigen Stelle, nämlich unter Else anbringst. Cancel = True gehört dann dahin.
Gruß Luc :-?
PS: Vielleicht hättest du ja doch meinen Beitrag lesen sollen… :->
Anzeige
Es könnte günstiger sein, das umgekehrt...
01.09.2010 16:48:09
Luc:-?
…zu machen, Maris,
auf jeden Fall ist der für diesen Zweck bereitgestellte Parameter Cancel der Ereignisproz _BeforeSave entsprechend zu füllen, also hier Cancel = Not boSpeicher bzw bei umgekehrter Organisation Cancel = boSpeicher. In letzterem Fall kann am Ende des prüfenden Makros einfach boSpeicher = CBool(Err.Number) geschrieben wdn. Wenn kein Fehler aufgetreten ist, ist die Err.Number=0 und boSpeicher somit False. Bei Cancel=boSpeicher=False würde gespeichert wdn, sonst nicht.
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige