Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Fehler in Code!

VBA Fehler in Code!
18.03.2022 00:55:09
oraculix
Hallo Alle!
In der Tabelle Schauspieler befindet sich eine kleine Userform in der man suchen kann.
Das Problem ist aber das ein VBA Code die suche zum Absturz bringt.
Hier der Code (wenn er auskommentiert wird funktioniert die Suche gut)
Frage: Wo ist der Fehler in diesem Code?
'#######################################################################
'Fügt immer ein Bild ein bei linksklick in beliebige Spalte
'#################################################################################
Application.ScreenUpdating = False
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\" '"D:\EMDB\HTML\ExcelCovers\"
Dim strFilename As String
Dim objCell As Range
Set objCell = Target.Cells(1, 1)
If Not Intersect(objCell, Range("A:IZ")) 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
'Spring mit Linksklick immer nach oben
Application.DisplayCommentIndicator = xlNoIndicator
If TypeOf Selection Is Range Then
For Each objCell In Selection
With objCell
If Not .Comment Is Nothing Then .Comment.Visible = True
End With
Next
End If
ActiveWindow.ScrollRow = ActiveCell.Row
'Springt immer zum Anfang der Tabelle
ActiveWindow.ScrollColumn = Target.Column
End Sub
Hier eine Beispielmappe ohne Bilder
https://www.herber.de/bbs/user/151835.xlsm
Gruß
Oraculix
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler in Code!
18.03.2022 08:03:49
Alex
Morgen Miraculix
Mach zuerst die Variable ;
Dim ObjectPicture as Object
Anschliessend dein:
Set ObjectPicture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
Nun:
With ObjectPicture
'Dein Kode
End With
Und am Schluss:
Set ObjectPicture =Nothing
Gruss Alex
Anzeige
AW: VBA Fehler in Code!
18.03.2022 08:34:53
oraculix
Hallo Danke für Deine Hilfe!
Meinst Du so? Da kommt der aber ein Fehler bei Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Fügt immer ein Bild ein bei linksklick in Spalte
'DISER CODE FÜHRT ZUM ABSTURZ VON EXCEL WENN MAN IHN AUSKOMENTIERT FUNKTIONIERT ALLES!!
Application.ScreenUpdating = False
Dim ObjectPicture As Object 'Hier Dein Neuer Dim
Dim strFilename As String
Dim objCell As Range
Dim FOLDER_PATH As String 'Diesen musste ich hinzfügen da sonst Fehler kommt Variable nicht definiert!
Set ObjectPicture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
With ObjectPicture
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
Set objCell = Target.Cells(1, 1)
If Not Intersect(objCell, Range("A:IZ")) 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
Set ObjectPicture = Nothing
End Sub
Gruß
Oraculix
Anzeige
AW: VBA Fehler in Code!
18.03.2022 08:52:59
Rudi
Hallo,

Dim FOLDER_PATH As String 'Diesen musste ich hinzfügen da sonst Fehler kommt Variable nicht definiert!
kann nicht sei, denn später kommt ja

Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\" 
allerdings zu spät.
Setze
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
vor
Set ObjectPicture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
Du hast nach so langer Zeit noch immer keinen blassen Schimmer von dem, was du machst.
Gruß
Rudi
Anzeige
AW: VBA Fehler in Code!
18.03.2022 09:45:50
oraculix
Servus und Danke!
Habe es davor gesetzt dann sagt er aber Folder nicht gefunden !!
Dim ObjectPicture As Object
Dim strFilename As String
Dim objCell As Range
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
Set ObjectPicture = LoadPicture(Filename:=FOLDER_PATH & strFilename) 'Folder nicht gefunden
Hast Du Dir den Fehler angesehen in meiner Arbeitsmappe?
Gruß
Oraculix
Anzeige
AW: VBA Fehler in Code!
18.03.2022 10:26:28
Rudi

Hast Du Dir den Fehler angesehen in meiner Arbeitsmappe?
Jetzt ja. Extrem chaotisch.
z.B. Variablendeklarationen/ Konstanten gehören immer an den Anfang einer Prozedur.
Vor
#################################################################################
fehlt ein '. (Syntaxfehler)
Alles andere kann ich nicht nachvollziehen, da ich keinen Ordner "D:\EMDB\HTML\ExcelUserform1\" habe.
Gruß
Rudi
Anzeige
AW: VBA Fehler in Code!
18.03.2022 10:33:23
oraculix
Hallo Danke
Ja das ist absichtlich damit Du den Fehler Code nicht suchen musst
Vor
#################################################################################
fehlt ein '. (Syntaxfehler)
Den Ordner benötigst ja nicht es geht um die suche gib mal einen Suchbegriff ein der öfter als einmal vorkommt und drücke dann auf ja.
Dann siehst Du was passiert.
Gruß
Oraculix
Anzeige
AW: VBA Fehler in Code!
18.03.2022 11:17:08
Rudi

gib mal einen Suchbegriff ein der öfter als einmal vorkommt und drücke dann auf ja.
Dann siehst Du was passiert.
Es wird zur Zelle gesprungen
AW: VBA Fehler in Code!
18.03.2022 11:34:50
oraculix
Hallo und Danke !
Jetzt geht es bei mir auch habe einiges rausgenommen aus dem Code!
'Fügt immer ein Bild ein bei linksklick in Spalte
'Application.ScreenUpdating = False
'Diesen habe ich rausgenommen das könnte der Fehler gewesen sein(kein True am ende)!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ObjectPicture As Object
Dim strFilename As String
Dim objCell As Range
Const FOLDER_PATH As String = "D:\EMDB\HTML\ExcelUserform1\"
'Set ObjectPicture = LoadPicture(Filename:=FOLDER_PATH & strFilename)
'Den Code habe rausgenommen
Set objCell = Target.Cells(1, 1)
If Not Intersect(objCell, Range("A:IZ")) 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
Set ObjectPicture = Nothing
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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