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

VBA Editor

VBA Editor
25.09.2005 08:06:31
Klaus
Hallo Excel Profis!
Wenn in VBA ein Fehler auftritt, meldet sich Excel immer mit öffnen des VBA Editor.
Wie kann ich das denn verhindern, so das mir Excel nur einfach "Fehler" anzeigt und nicht der Editor aufgeht!?
Vielen Dank für Euere Antwort(en)!
Viele Grüße
Klaus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Editor
ransi
hallo klaus
das muss programmiert werden.
Am einfachsten (aber auch am unsaubersten) gehts so:
Option Explicit
Public

Sub test()
Dim a
Dim b
On Error GoTo meldung
'Dein code
meldung:
MsgBox "Fehler"
End Sub

Die sauberste Lösung ist aber eine fehlervermeidung.
ransi
AW: VBA Editor
25.09.2005 08:37:24
Klaus
Hallo ransi,
vielen Dank für die sehr schnelle Antwort!
Klar hast Du recht wenn Du sagst, am sichersten ist die Fehlervermeidung! Nur habe ich in meiner wirklich sehr großen Anwendung (die ich irgendwann mal in Access "umschreiben" muss weil dort besser aufgehoben, wenn ich mal bessere Access Kentnisse habe) einen Fehler. Immer wenn ich ein bestimmtes Makro aufrufe, bekomme ich die Fehlermeldung: Laufzeitfehler '1004': Die Methode 'UNDO' für das Objekt 'Aplication' ist fehlgeschlagen. Nachdem ich den Editor wieder geschlossen habe, geht es auf einmal ohne Fehlermeldung ....! Und da ich mich in Sachen VBA noch nicht wirklich so gut auskenne, weiss ich nicht woran es liegt. Daher möchte ich für die anderen Nutzer zunächst das öffnen des Editor vermeiden!
Ich werde jedenfalls mal versuchen ob ich es mit Deinem Code hinbekomme!
Nochmals Vielen Dank für die schnelle Hilfe!
Viele Grüße
Klaus
Anzeige
AW: VBA Editor
25.09.2005 08:48:53
Klaus
Nochmals Hallo ransi!
Ich weiss nicht wo ich deinen Code eingeben soll! Ich hab den "betroffenen" Code mal hier abgedruckt. Vielleicht bist Du so nett und ergänzt den Code entsprechend!?
Vielen Dank!
Viele Grüße
Klaus

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If Not IsDate(TextBox1.text) Then
MsgBox "Das ist doch kein Datum", , "Fehler"
Exit Sub
End If
Dim i
i = InputBox("Wie oft soll gedruckt werden?", Default:=4)
Worksheets("Wochenende").Activate
Range("H1").Value = CDate(TextBox1.text)
ActiveWindow.SelectedSheets.PrintOut Copies:=i, Collate:=True
Unload Me
Worksheets("Start").Activate
Application.ScreenUpdating = True
End Sub

Anzeige
AW: VBA Editor
ransi
hallo
in welcher zeile kommt denn wann ein fehler?
ransi
AW: VBA Editor
25.09.2005 09:05:11
Klaus
Hallo ransi,
peinlich - nachdem ich das nochmal geprüft habe, habe ich festgestellt, dass zwar der vorher gesendete Code das "ausführende Organ" ist, der nun aber nachfolgende Code Schuld am Fehler ist. Der Editor zeigt den Fehler bei UNDo an (markiert hier im Code mit -XXX UNDO XXX-)
Es soll mit diesem Code jede Änderung in den Daten registriert werden, was natürlich auch nicht funktioniert!
Ich hoffe es hilft was!
Viele Grüße
Klaus


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim intSpalte As Integer, lngZeile As Long, strBuchstabe1 As String, strBuchstabe2 As String
Dim varArray_neu As Variant, varArray_alt As Variant, intArrayspalte As Integer, strAdresse As String
Dim lngArrayzeile As Long, lngLetzteZeile As Long, varAlt As Variant, varNeu As Variant
If Sh.Name <> "Protokoll" Then
If Target.Count > 1 Then varArray_neu = Range(Target.Address) Else varNeu = Target
strAdresse = Selection.Address
With Application
.ScreenUpdating = False
.EnableEvents = False
-XXX     .Undo      XXX-
End With
If Target.Count > 1 Then
varArray_alt = Range(Target.Address)
Application.Undo
With Worksheets("Protokoll")
For intSpalte = Target.Column To Target.Column + Target.Columns.Count - 1
intArrayspalte = intArrayspalte + 1
lngArrayzeile = 0
For lngZeile = Target.Row To Target.Row + Target.Rows.Count - 1
lngArrayzeile = lngArrayzeile + 1
If intSpalte > 26 Then
strBuchstabe1 = Chr(intSpalte \ 26 + 64)
strBuchstabe2 = Chr(intSpalte Mod 26 + 64)
Else
strBuchstabe1 = Chr(intSpalte + 64)
strBuchstabe2 = ""
End If
lngLetzteZeile = .Cells(65536, 1).End(xlUp).Row + 1
If lngLetzteZeile = 65536 Then
lngLetzteZeile = 2
.Range("A2:E65536").ClearContents
End If
.Cells(lngLetzteZeile, 1) = Now
.Cells(lngLetzteZeile, 2) = varArray_alt(lngArrayzeile, intArrayspalte)
.Cells(lngLetzteZeile, 3) = varArray_neu(lngArrayzeile, intArrayspalte)
.Cells(lngLetzteZeile, 4) = strBuchstabe1 & strBuchstabe2 & CStr(lngZeile)
.Cells(lngLetzteZeile, 5) = Sh.Name
.Cells(lngLetzteZeile, 6) = Username
Next
Next
End With
Else
varAlt = Range(Target.Address)
Application.Undo
With Worksheets("Protokoll")
lngLetzteZeile = .Cells(65536, 1).End(xlUp).Row + 1
If lngLetzteZeile = 65536 Then
lngLetzteZeile = 2
.Range("A2:E65536").ClearContents
End If
.Cells(lngLetzteZeile, 1) = Now
.Cells(lngLetzteZeile, 2) = varAlt
.Cells(lngLetzteZeile, 3) = varNeu
.Cells(lngLetzteZeile, 4) = Target.Address(False, False)
.Cells(lngLetzteZeile, 5) = Sh.Name
.Cells(lngLetzteZeile, 6) = Username
End With
End If
Range(strAdresse).Select
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End If
End Sub

Anzeige
AW: VBA Editor
25.09.2005 09:15:57
Klaus
Hallo ransi,
hab jetzt einfach mal ein ' vor UNDO und Application UNDO gestellt und siehe da - keine Fehlermeldung und registriert wird auch!
Für was wäre das UNDO denn eigentlich da und könnte es jetzt trotzdem noch Probleme geben?
Nochmals Viele Grüße
Klaus
AW: VBA Editor
ransi
hallo
application.undo ist vereinfacht gesagt der "RückgängigButton" in deiner symbolleiste.
Was "application.undo" in dem code bewerkstelligen soll hat sich mir nicht erschlossen.
ransi
Vielen Dank!
25.09.2005 09:57:30
Klaus
Vielen Dank ransi!
Gruß
Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige