Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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
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

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
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
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
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

120 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige