Anzeige
Archiv - Navigation
1852to1856
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

VBA Fehler Excel Neustart

VBA Fehler Excel Neustart
05.11.2021 22:27:03
Oraculix
Hallo
In der Tabelle klicke ich in Spalte B auf eine beliebige Zeile und es erscheint ein Bild Image1 .
Der VBA Code Funktioniert tadellos aber.
Wenn ein Fehler von einem anderen Code erzeugt wird Funktioniert der Code nicht mehr und Excel muss dann neu gestartet werden.
Frage :
Was könnte ich in den unten stehenden Code verbessern wenn ein Fehler kommt das dieser ignoriert wird, und ich Excel nicht immer neu starten muss? Oder hat der VBA Code einen grundsätzlichen Fehler?
'Fügt immer ein Bild ein bei linksklick in Spalte B

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim objCell As Range
Dim strFilename As String
Application.EnableEvents = False
Application.DisplayCommentIndicator = xlNoIndicator
If TypeOf Selection Is Range Then
For Each objCell In Selection
With objCell
If Not .Comment Is Nothing And .Column = 2 Then .Comment.Visible = False
End With
Next
End If
ActiveWindow.ScrollRow = ActiveCell.Row
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
Set objCell = Target.Cells(1, 1)
If Not Intersect(objCell, Columns(2)) Is Nothing Then
strFilename = Dir$(FOLDER_PATH & objCell.Text & ".*")
If strFilename  vbNullString Then
With OLEObjects("Image1")
.Top = objCell.Top
.Left = objCell.Left + objCell.Width
.Visible = True
Set .Object.Picture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
End With
Else
OLEObjects("Image1").Visible = False
End If
Else
OLEObjects("Image1").Visible = False
End If
Set objCell = Nothing
'Zeigt Markierte Zeile aus Spalte B in C1 an.
BildName = Target.Text
If Selection.Column = 2 Then
ActiveSheet.Range("C1").Value = Selection
Else: ActiveSheet.Range("C1").Value = ""
End If
Application.EnableEvents = True
End Sub
Gruß
Oraculix

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler Excel Neustart
05.11.2021 23:20:56
ralf_b
das könnte an solchen Zeilen liegen. Application.EnableEvents = False
Bei einem Fehler wird diese Einstellung nicht wieder auf true gesetzt und deshalb reagiert auch keine Event mehr. siehe deine Eventroutine.
Wird wohl Zeit für dich mit Fehlerbehandlungsroutinen auseinanderzusetzen. Du gibst ja schon teilweise Hilfestellungen hier. Also warte nicht auf Nepumuk, sondern fang an deine Code selbst zu schreiben.
mfg
rb
AW: VBA Fehler Excel Neustart
05.11.2021 23:44:12
Oraculix
Danke für Deine Hilfreiche Antwort!
Application.EnableEvents = False und True habe ich deaktiviert bringt gar nichts.
Was meinst mit Fehlerbehandlungsroutinen ?
Etwa
On Eror
Exit Sub
oder was?
Gruß
Oraculix
Anzeige
AW: VBA Fehler Excel Neustart
06.11.2021 00:06:08
volti
Hallo,
tritt bei ausgeschalteten Events ein Fehler auf, bricht das Makro ggf. ab und schaltet die Events nicht wieder ein. Nachfolgend werden keine Events mehr ausgeführt, wie Ralf schon beschrieb.
Hier ein Beispiel, wie Du mit einer einfachen Fehlerroutine die Events auf jeden Fall wieder einschalten kannst.
Das betrifft aber nur Fehler in dieser Routine. Du schreibt, in anderem Code tritt ein Fehler auf. Dazu fällt mir nur ein, dass ggf. globale Variablen ihren Wert verlieren und dann ein ggf. davon abhängiger Ablauf nicht mehr funktioniert.
Das lässt sich in Deinem Code allerdings nicht erkennen.
Code:

[Cc]

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim objCell As Range Dim strFilename As String Application.EnableEvents = False On Error GoTo Fehler ' Dein Code Fehler: Application.EnableEvents = True End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: VBA Fehler Excel Neustart
06.11.2021 00:33:20
Oraculix
Vielen Dank für Deine Mühe und tolle Beschreibung!
Habe es jetzt gerade versucht On Error GoTo Fehler
Hilft aber leider auch nicht weiter.
Ich habe Absichtlich einen Fehler Simuliert mit 'Dim rngSuche As Range auskommentiert in der Userform Listbox
Gruß
Oraculix
AW: VBA Fehler Excel Neustart
06.11.2021 08:39:41
Werner
Hallo,
und wo hast du diese Fehlerbehandlung eingebaut?
Dir ist schon klar, dass das in die Sub muss, durch die der Fehler ausgelöst wird.
Im Übrigen wäre es sinnvoll mal zu ergründen, weshalb es zu einem Fehlerabbruch kommt und dann den Fehler zu beheben.
Gruß Werner
AW: VBA Fehler Excel Neustart
06.11.2021 08:51:22
Oraculix
Gallo Danke!
Ich arbeite ständig an Verbesserungen und neuen VBA Codes in der Arbeitsmappe,
Da kommt es eben mal durch irgendeinen VBA Code zu einem Fehler den ich dann sofort behebe.
Aber der gepostete Code Funktioniert dann nicht mehr ich muss Excel neu starten damit er wieder Funktioniert!
Fehlerbehandlung hab ich hier eingebaut. Nütz aber nichts weil ja der untenstehende Code keinerlei Fehler Anzeigt!
Er zeigt mir nur keine Bilder mehr an. Ich kann also weiterarbeiten mit einschränkungen.
'Fügt immer ein Bild ein bei linksklick in Spalte B

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim objCell As Range
Dim strFilename As String
'Application.EnableEvents = False
On Error GoTo 0
Application.DisplayCommentIndicator = xlNoIndicator
If TypeOf Selection Is Range Then
For Each objCell In Selection
With objCell
If Not .Comment Is Nothing And .Column = 2 Then .Comment.Visible = False
End With
Next
End If
ActiveWindow.ScrollRow = ActiveCell.Row
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
Set objCell = Target.Cells(1, 1)
If Not Intersect(objCell, Columns(2)) Is Nothing Then
strFilename = Dir$(FOLDER_PATH & objCell.Text & ".*")
If strFilename  vbNullString Then
With OLEObjects("Image1")
.Top = objCell.Top
.Left = objCell.Left + objCell.Width
.Visible = True
Set .Object.Picture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
End With
Else
OLEObjects("Image1").Visible = False
End If
Else
OLEObjects("Image1").Visible = False
End If
Set objCell = Nothing
'Zeigt Markierte Zeile aus Spalte B in C1 an.
BildName = Target.Text
If Selection.Column = 2 Then
ActiveSheet.Range("C1").Value = Selection
Else: ActiveSheet.Range("C1").Value = ""
End If
'Application.EnableEvents = True
End Sub
Gruß
Oraculix
Anzeige
AW: VBA Fehler Excel Neustart
06.11.2021 08:58:35
Werner
Hallo,
du solltest schon lesen was man dir schreibt.
Du hast geschrieben: Wenn ein Fehler von einem anderen Code erzeugt wird...
Und genau dort muss auch die Fehlerbehandlung rein. Vermutlich schaltest du nämlich dort zu Beginn die Events ab und am Ende wieder ein. Tritt dann dort aber ein Fehler auf, dann werden die Events nicht wieder eingeschaltet, weil den Code vorher aussteigt.
Grundsätzlich: Bei jedem Code, bei dem du die Events abschaltest, gehört zur Sicherheit eine Fehlerroutine rein die sicherstellt, dass die Events bei einem Fehler auch wieder eingeschaltet werden.
Gruß Werner
Anzeige
AW: VBA Fehler Excel Neustart
06.11.2021 09:15:14
Oraculix
Hallo Werner Danke!
Ich habe sonst keinen Code mehr der Events abschaltet.
Wahrscheinlich sollte sowas wie ein refresh in den code .
Gibt es sowas ?
Weil wenn Excel neu gestartet wird funktioniert er ja wieder.
Gruß
Oraculix
AW: VBA Fehler Excel Neustart
06.11.2021 09:10:33
Peter
Wenn das mal wieder passiert, öffne im VBA-Fenster doch mal den Direktbereich ([Strg]+g) und gebe dort den Befehl "... .EnableEvents=True" direkt ein + [Return]. Geht dann alles wieder?
Vielen Dank Euch allen Erledigt!!!
06.11.2021 09:30:36
Oraculix
Vielen Dank Du hast mich auf die Idee gebracht!
Jetzt geht es wieder super
Ich habe noch folgenden Code in der Arbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Application.DisplayAlerts = True
'Application.EnableEvents = True
End Sub
Diese habe ich deaktiviert weil es gibt ja keine Events mehr.
hoffe nur das jetzt nichts anders noch kommt werde mal alle Codes testen.
Gruß
Oraculix
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige