Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: enronHB am Juli 15, 2017, 18:51:55 Nachmittag

Titel: Office 2010: Bild Anzeigen durch Artikelnummer
Beitrag von: enronHB am Juli 15, 2017, 18:51:55 Nachmittag
Moin moin,

ich habe bereits viel Google befragt, viel herum Probiert und weiß das das häufigste Problem der Nutzer selbst ist ;-)

ich komme dennoch nicht weiter. Und bin Neuling in dem Bereich.

Ich möchte durch das eingeben einer Artikelnummer ein Bild anzeigen lassen. Aus einem Ordner vom Server. Das soll unter Excel 2010 laufen. Und Windows.

Der Code sieht so aus:

Public Function ZeigeBild(ByVal strBildname As String, Bildhöhe As Long) As String

Dim strDatei As String
Dim Bildbreite As Double
Dim Bildhoehe As Double
Dim meinBild
Dim strZielzelle As String

strZielzelle = Application.Caller.Address

strDatei = C:\Users\Ordner\BILDER\" & strBildname & ".jpg"

If Dir(strDatei) <> "" Then
Set meinBild = LoadPicture(strDatei)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height

ActiveSheet.Shapes.AddPicture strDatei, msoFalse, msoTrue, Range(strZielzelle).Left, Range(strZielzelle).Top, Bildhöhe * 28.35 * Bildbreite / Bildhoehe, Bildhöhe * 28.35
ZeigeBild = "Bild"
Else
ZeigeBild = "Bild nicht vorhanden"
End If

End FunctionREM ***** BASIC *****


Und in der Zelle in der das Bild gezeigt werden soll:

=ZEIGEBILD(C4;3)

In dieser Zelle C4 würde die Artikelnummer eingegeben. Die genauso lautet wie der Name den Bildes ohne Endung .jpg im Ordner.

Leider Funktioniert es nicht. Ich erhalte auch nicht mehr die Meldung "Bild nicht vorhanden" Was zuerst immerhin noch kam. (Ohne Änderungen gemacht zu haben.)

Kann jemand einen Tipp geben Bitte?

Danke bis hierhin für die mühe.

MfG
Titel: Antw:Office 2010: Bild Anzeigen durch Artikelnummer
Beitrag von: maninweb am Juli 16, 2017, 11:56:13 Vormittag
Hallo,

LoadPicture funktioniert in diesem Kontext nicht. Versuche mal folgenden Code, etwas umorganisiert...

Code: Visual Basic
  1.   Option Explicit
  2.  
  3. ' Konstanten...
  4.  
  5.   Public Const CST_BILDORDNER As String = "C:\Users\Ordner\BILDER"
  6.   Public Const CST_BILDTYP    As String = "jpg"
  7.  
  8. ' Funktion...
  9.  
  10.   Public Function ZEIGEBILD(Bildname As String, Bildhoehe As Long) As String
  11.    
  12.     Dim objBild   As Object
  13.     Dim objZelle  As Range
  14.     Dim strBild   As String
  15.    
  16. '   Fehler abschalten...
  17.    
  18.     On Error Resume Next
  19.    
  20. '   Caller...
  21.    
  22.     Set objZelle = Application.Caller
  23.    
  24. '   Prüfen...
  25.    
  26.     If Not objZelle Is Nothing Then
  27.    
  28. '     Bild...
  29.      
  30.       strBild = CST_BILDORDNER & Application.PathSeparator & _
  31.                 Bildname & "." & CST_BILDTYP
  32.      
  33. '     Existenz...
  34.      
  35.       If Len(Dir(strBild)) > 0 Then
  36.        
  37. '       Einfügen...
  38.        
  39.         Set objBild = objZelle.Parent.Pictures.Insert(strBild)
  40.        
  41. '       Position...
  42.        
  43.         If Not objBild Is Nothing Then
  44.          
  45. '         Position...
  46.          
  47.           objBild.Left = objZelle.Left
  48.           objBild.Top = objZelle.Top
  49.          
  50. '         Größe...
  51.          
  52.           objBild.Width = Bildhoehe * 28.35 * objBild.Width / objBild.Height
  53.           objBild.Height = Bildhoehe * 28.35
  54.          
  55. '         Text...
  56.          
  57.           ZEIGEBILD = "Bild"
  58.          
  59.         Else
  60.          
  61.           ZEIGEBILD = "Objektfehler"
  62.          
  63.         End If
  64.        
  65.       Else
  66.        
  67.         ZEIGEBILD = "Bild nicht vorhanden"
  68.        
  69.       End If
  70.      
  71.     Else
  72.      
  73.       ZEIGEBILD = "Objektfehler"
  74.      
  75.     End If
  76.    
  77. '   Reset...
  78.    
  79.     Set objBild = Nothing
  80.     Set objZelle = Nothing
  81.    
  82.   End Function
  83.  

Gruß