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