23.05.2019, 14:10
Hallo zusammen.
Ich habe folgenden Code um in einer UserForm divere Textfelder zu füllen. Das funktioniert auch alles einwandfrei. Mein Problem ist aber, das ich auch möchte das in "Image1" das Foto des Mitarbeiters zu sehen ist. Das funktioniert aber nicht. Ich habe schon einige Vorschläge, die ich in diversen Foren gefunden habe ausprobiert. Aber keiner funktioniert. Wahrscheinlich ist es ein Anfängerfehler. Bin noch ziemlich am Anfang bei dem Thema VBA. Vielleicht könnt ihr mir sagen, warum das Foto nicht angezeigt wird.
Ich habe, in meiner Tabelle in einer Spalte (AY) den jeweiligen Pfad des Mitarbeiterfotos stehen. Diesen Pfad lass ich mir über den Code ".LabelPfad = Target.Offset(0, 50)" anzeigen. Das funktioniert auch. Und dann möchte ich mit dem Code ".Image1.Picture = LoadPicture(LabelPfad.Text)" das das entsprechende Foto im "Image1" angezeigt wird. Das funktioniert aber nicht. Bekomme dann immer den Laufzeitfehler "424 - Objekt erforderlich". Wo liegt der Fehler. Wenn ich bei dem Code statt "LabelPfad.Text" den Pfad direkt reinschreibe, zeigt er auch das entsprechende Foto an. Aber dann zeigt er diese Foto dann ja auch bei jedem anderen Mitarbeiter an. Und das ist ja dann falsch.
Bin für jede Hilfe dankbar.
Mfg radkappe22
Ich habe folgenden Code um in einer UserForm divere Textfelder zu füllen. Das funktioniert auch alles einwandfrei. Mein Problem ist aber, das ich auch möchte das in "Image1" das Foto des Mitarbeiters zu sehen ist. Das funktioniert aber nicht. Ich habe schon einige Vorschläge, die ich in diversen Foren gefunden habe ausprobiert. Aber keiner funktioniert. Wahrscheinlich ist es ein Anfängerfehler. Bin noch ziemlich am Anfang bei dem Thema VBA. Vielleicht könnt ihr mir sagen, warum das Foto nicht angezeigt wird.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A2:A1000]) Is Nothing Then
lngZeile = Target.Row ' aktiveZeile in globale Variable schreiben
With Mitarbeiterdaten
'Grunddaten
.TextBox_Personalnummer = Target.Offset(0, 0) 'Textbox mit Wert aus Spalte A
.TextBox_Name = Target.Offset(0, 5) 'Textbox mit Wert aus Spalte F
.ComboBox_Abteilung = Target.Offset(0, 6) 'Textbox mit Wert aus Spalte G
.TextBox_Leihfirma = Target.Offset(0, 9) 'Textbox mit Wert aus Spalte J
.TextBox_Einsatzdatum = Target.Offset(0, 11) 'Textbox mit Wert aus Spalte L
.TextBox_Bemerkung_Einsatz = Target.Offset(0, 10) 'Textbox mit Wert aus Spalte K
.ComboBox_Status = Target.Offset(0, 8) 'Textbox mit Wert aus Spalte I
.Textbox_Einsatzdatum_Ende = Target.Offset(0, 12) 'Textbox mit Wert aus Spalte M
.TextBox_Equalpay = Target.Offset(0, 13) 'Textbox mit Wert aus Spalte N
.TextBox_Höchstüberl = Target.Offset(0, 14) 'Textbox mit Wert aus Spalte O
.LabelPfad = Target.Offset(0, 50) 'Label mit Wert aus Spalte AY
.Image1.Picture = LoadPicture(LabelPfad.Text)
'Mitarbeiterdaten
.TextBox_Festnetz = Target.Offset(0, 25) 'Textbox mit Wert aus Spalte Z (Tel.Nr.)
.TextBox_Handy = Target.Offset(0, 26) 'Textbox mit Wert aus Spalte AA (Handy)
.TextBox_Qualifikation = Target.Offset(0, 37) 'Textbox mit Wert aus Spalte AL (Besondere Qualifikation)
'Chip-/Schlüsselnr.
.TextBox_Chipnummer = Target.Offset(0, 27) 'Textbox mit Wert aus Spalte AB (Stempelchip Nummer)
.TextBox_Chip_Ausgabe = Target.Offset(0, 28) 'Textbox mit Wert aus Spalte AC (Stempelchip Ausgabe)
.TextBox_Chip_Rückgabe = Target.Offset(0, 29) 'Textbox mit Wert aus Spalte AD (Stempelchip Rückgabe)
.TextBox_Spindnummer = Target.Offset(0, 30) 'Textbox mit Wert aus Spalte AE (Spindschlüssel)
.TextBox_Spind_Ausgabe = Target.Offset(0, 31) 'Textbox mit Wert aus Spalte AF (Spindschlüssel Ausgabe)
.TextBox_Spind_Rückgabe = Target.Offset(0, 32) 'Textbox mit Wert aus Spalte AG (Spindschlüssel Rückgabe)
.TextBox_Wertfachnummer = Target.Offset(0, 33) 'Textbox mit Wert aus Spalte AH (Wertfachnummer)
.TextBox_Wertfach_Ausgabe = Target.Offset(0, 34) 'Textbox mit Wert aus Spalte AI (Wertfachschlüssel Ausgabe)
.TextBox_Wertfach_Rückgabe = Target.Offset(0, 35) 'Textbox mit Wert aus Spalte AJ (Wertfachschlüssel Rückgabe)
'Datenschutz
.ComboBox_Aushänge = Target.Offset(0, 44) 'Textbox mit Wert aus Spalte AS (Foto Aushänge)
.ComboBox_Intranet = Target.Offset(0, 45) 'Textbox mit Wert aus Spalte AT (Foto Intranet)
.ComboBox_Internet = Target.Offset(0, 46) 'Textbox mit Wert aus Spalte AU (Foto Internet)
.ComboBox_Druckerzeugnisse = Target.Offset(0, 47) 'Textbox mit Wert aus Spalte AV (Foto Druckerz.)
.ComboBox_Video = Target.Offset(0, 48) 'Textbox mit Wert aus Spalte AW (Foto Video)
.ComboBox_Dokumente = Target.Offset(0, 49) 'Textbox mit Wert aus Spalte AX (Foto Dokument)
'Unterweisungen
.TextBox_Erstunterweisung = Target.Offset(0, 40) 'Textbox mit Wert aus Spalte AO (Datum Erst-UW)
.TextBox_SAP = Target.Offset(0, 41) 'Textbox mit Wert aus Spalte AP (Einweisung SAP)
.TextBox_CAQ = Target.Offset(0, 42) 'Textbox mit Wert aus Spalte AQ (Einweisung CAQ)
.TextBox_Ameise = Target.Offset(0, 43) 'Textbox mit Wert aus Spalte AR (Einweisung Ameise)
'Beurteilung des Mitarbeiters
.ComboBox_Abfrage = Target.Offset(0, 38) 'Textbox mit Wert aus Spalte AM (Beurteilung)
.TextBox_Bemerkung_Beurteilung = Target.Offset(0, 39) 'Textbox mit Wert aus Spalte AN (Bemerkungen)
.Show
End With
End If
End Sub
Ich habe, in meiner Tabelle in einer Spalte (AY) den jeweiligen Pfad des Mitarbeiterfotos stehen. Diesen Pfad lass ich mir über den Code ".LabelPfad = Target.Offset(0, 50)" anzeigen. Das funktioniert auch. Und dann möchte ich mit dem Code ".Image1.Picture = LoadPicture(LabelPfad.Text)" das das entsprechende Foto im "Image1" angezeigt wird. Das funktioniert aber nicht. Bekomme dann immer den Laufzeitfehler "424 - Objekt erforderlich". Wo liegt der Fehler. Wenn ich bei dem Code statt "LabelPfad.Text" den Pfad direkt reinschreibe, zeigt er auch das entsprechende Foto an. Aber dann zeigt er diese Foto dann ja auch bei jedem anderen Mitarbeiter an. Und das ist ja dann falsch.
Bin für jede Hilfe dankbar.
Mfg radkappe22