Autor
|
Thema: Mehrere Bilder einfügen in eine Exceltabelle (5433 mal gelesen)
|
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 10. Sep. 2009 11:39 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, möchte Bilder (*.jpg) in Zellen einfügen. Wobei die Name des Bildes im Excel unterhalt der Zeile ist wo die Bilder eingeführt werden (Matrix). Ich habe auch ein dem entsprechendes Makro gefunden. Leider müssen die Bilder eine sechsstellige Nummer als Name haben. Ist es möglich den Bildern einer Bezeichnung zur geben, z.B. Peter_01; Hans_09 usw. Sub Bilder_Einfügen_II() ActiveSheet.DrawingObjects.Delete On Error Resume Next Const strPATH = "C:\Documents and Settings\" ' anpassen !!! Dim ZELLE As Object Dim objShape As Object ' Dim SpalteSuch As Byte Dim Zeilenversatz, Spaltenversatz As Byte ' SpalteSuch = 5 'IDH-Spalte anpassen Zeilenversatz = -1 'Wieviele Zeilen Versatz, in der das Bild eingefügt wird, Achtung bei -(Minus) und 1. Zeile Spaltenversatz = 0 'Wieviele Spalten Versatz, in der das Bild eingefügt wird, ACHTUNG bei -(Minus) und 1. Spalte For Each objShape In ActiveSheet.Shapes If objShape.Type = msoPicture Then objShape.Delete Next Application.ScreenUpdating = False ' Set Bereich = ActiveSheet.Columns(SpalteSuch) ' Zähler = Application.WorksheetFunction.Count(Bereich) + 1 Range("A2", Range("A2").SpecialCells(xlLastCell)).Select For Each ZELLE In Selection If ZELLE.Value > 1 And ZELLE.Value < 9999999 Then If Dir$(strPATH & ZELLE.Value & _ ".jpg", vbNormal) <> "" Then Set objShape = ActiveSheet.Pictures.Insert(strPATH & ZELLE.Value & ".jpg") objShape.Left = ZELLE.Left objShape.Top = ZELLE.Top With objShape .Left = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Left .Top = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Top .ShapeRange.Width = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Width .ShapeRange.Height = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Height End With End If End If Next ZELLE Set objShape = Nothing Application.ScreenUpdating = True End Sub
Gruss UGMANX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 10. Sep. 2009 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Sep. 2009 13:34 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
Hallo UGMANX, Zitat: Ich habe auch ein dem entsprechendes Makro gefunden.
Die Quellenangabe wäre nett, als Zeichen des Respekts vor dem Verfasser. SCNR Zitat: Leider müssen die Bilder eine sechsstellige Nummer als Name haben.
Wo? Meinst Du die Bezeichnung in Excel? Oder ist der Dateiname der Bilder eine sechsstellige Nummer á la 123456.jpg? Zitat: Ist es möglich den Bildern einer Bezeichnung zur geben, z.B. Peter_01; Hans_09 usw.
Wo? Bilder umbenennen - z. B. im Explorer - ist möglich. 'Peter_01' unter dem Bild in einer Excel-Zelle per Hand eintragen ist ebenfalls machbar. Welchen Teil davon meinst Du? ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 10. Sep. 2009 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Paulchen, vielen dank für deine Netten fragen, zur deine frage mit dem Verfasser, es ist ein Arbeitskollege der im Urlaub ist über den Respekt würde ich sagen ..... . Die Bilder und haben folgende Bezeichnung 'Peter_01_Holland und Hans_01_Holland usw. ' und stehen unterhalb von Bild s. Anhang. Vielen dank nochmals für deine Anregungen. Gruß UGMANX
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Sep. 2009 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 10. Sep. 2009 14:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Paulchen,, natürlich hat die Datei (.jpg) auch die gleiche Bezeichnung unterhalb der Bilder, wie z.B. Peter_01_Holland.jpg oder Hans_01_Holland.jpg. Mein Makro funktioniert leider nur mit Zahlen! Gruss UGMANX
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 10. Sep. 2009 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 10. Sep. 2009 14:42 <-- editieren / zitieren --> Unities abgeben:
Ja Sub Bilder_Einfügen_II() ActiveSheet.DrawingObjects.Delete On Error Resume Next Const strPATH = "C:\Documents and Settings\' anpassen !!! Dim ZELLE As Object Dim objShape As Object ' Dim SpalteSuch As Byte Dim Zeilenversatz, Spaltenversatz As Byte ' SpalteSuch = 5 'IDH-Spalte anpassen Zeilenversatz = -1 'Wieviele Zeilen Versatz, in der das Bild eingefügt wird, Achtung bei -(Minus) und 1. Zeile Spaltenversatz = 0 'Wieviele Spalten Versatz, in der das Bild eingefügt wird, ACHTUNG bei -(Minus) und 1. Spalte For Each objShape In ActiveSheet.Shapes If objShape.Type = msoPicture Then objShape.Delete Next Application.ScreenUpdating = False ' Set Bereich = ActiveSheet.Columns(SpalteSuch) ' Zähler = Application.WorksheetFunction.Count(Bereich) + 1 Range("A2", Range("A2").SpecialCells(xlLastCell)).Select For Each ZELLE In Selection If Dir$(strPATH & ZELLE & _ ".jpg", vbNormal) <> "" Then Set objShape = ActiveSheet.Pictures.Insert(strPATH & ZELLE & ".jpg") objShape.Left = ZELLE.Left objShape.Top = ZELLE.Top With objShape .Left = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Left .Top = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Top .ShapeRange.Width = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Width .ShapeRange.Height = ZELLE.Offset(Zeilenversatz, Spaltenversatz).Height End With End If Next ZELLE Set objShape = Nothing Application.ScreenUpdating = True End Sub Gruss Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 10. Sep. 2009 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Sep. 2009 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|