VBA Code Foto in UserForm
#1
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.
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
Top
#2
Hallo, :19:

ein Label hat keine Eigenschaft Text.

Nimm...

Code:
Label1.Caption
Top
#3
Danke für den Tipp.

Hat aber nicht geholfen. Wieder Laufzeitfehler "424 - Objekt erfordrlich" Huh

Code:
.Image1.Picture = LoadPicture(LabelPfad.Caption)
Top
#4
Hallo, :19:

funktioniert bei mir einwandfrei. :21:

In Label1.Caption steht z. B. "C:\Temp\Bild1.jpg" - und dann brummt das.
Top
#5
Hallo.

Sorry, aber egal was ich versuche, es kommt immer dieselbe Fehlemeldung! Was mach ich falsch? So langsam bin ich am verzweifeln! Huh :20:

Mfg radkappe22
Top
#6
Hallo radkappe

wenn es beim Kollegen klappt, bei dir nicht, gib ich dir mal einen verrückten Tipp aus meiner langjaehrigen Praxis.
sollte das klappen frage mich bitte nicht warum!!  Ich kann das technisch NICHT erklaeren!!

Hole dir den Ausdruck bitte in eine normale Variable die du vorher mit Dim festlegst.  Dim Pfad As String
Pfad = LabelPfad.Text  und arbeite dann mit dem Ausdruck Pfad weiter. wenn es klappt bitte Nicht fragen Warum???

mfg  Gast 123
Top
#7
Auch Hallo,

@Gast 123

bei LabelPfad handelt es sich um ein Label und das hat keine Texteigenschaft.


@Radkappe

versuche es mal so

Code:
.LabelPfad.Caption = Target.Offset(0, 50).Text 'Label mit Wert aus Spalte AY
     .Image1.Picture = LoadPicture(LabelPfad.Caption)
Gruß Stefan
Win 10 / Office 2016
Top
#8
Hallo Steffl.

Vielen Dank für deinen Tipp. Aber es bleibt dabei. Es kommt immer die Fehlermeldung "Laufzeitfehler 424 - Objekt erforderlich".

Gruß radkappe22
Top
#9
Hallo,

was steht in LabelPfad?

Code:
.LabelPfad.Caption = Target.Offset(0, 50).Text 'Label mit Wert aus Spalte AY
MsgBos .LabelPfad.Cation
.Image1.Picture = LoadPicture(LabelPfad.Caption)
Gruß Stefan
Win 10 / Office 2016
Top
#10
Hallo.

Folgende Meldung erscheint:

Z:\Personalfotos\02-Leih\Hartung_Axel.JPG

So wie es auch in der Zelle steht.

Gruß
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste