Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
bilder-import
#1
Hallo ForumsUser und Betreiber,

auf der Suche nach einer Möglichkeit, Bilder in Excel zu übernehmen habe ich die Datei "bilder-import.xls" gefunden.
Läuft bei mir leider nur bis zu dem Punkt, wo "With ActiveSheet.Shapes("Picture 1")" ausgeführt werden soll - in beiden Makros.
Um irgendwelche Anpassungsfehler auszuschließen, habe ich noch einmal die downgeloadete Datei auf einen USB-Stick, der als Laufwerk F: an meinem PC angemeldet ist unverändert kopiert. In ein unter "F:\Pic\ ein paar Bilder eingefügt. Nach Starten der "bilder-import.xls" und der darin befindlichen Makros kommt es leider zum Abbruch bei der oben genannten code-Zeile. Nach meiner Beobachtung ändert sich die Nummerierung der Pictures bei jedem Durchlauf ...
Jedenfalls wurde immerhin ein Bild auf das Tabellenblatt kopiert und dessen Dateiname in die Zelle rechts daneben. Das lässt mich hoffen, dass es auch möglich sein wird, mehrere Bilder zu importieren und letzendlich gleichzeitig zu skalieren und sonstwie zu formatieren. ( Habe es heute auch nach längerem Probieren weder in Word noch in Excel geschafft, dies mit Bordmitteln zu erledigen :-(  )

Hat Jemand eine Idee, was ich machen kann, um das Ganze zum Laufen zu bringen?

Herzliche Grüße

Thomas
Zitieren
#2
Hola,

und wir müssen diese Datei jetzt auch suchen um dir zu helfen?

Gruß,
steve1da
Zitieren
#3
Oh, sorry, ich dachte das wäre bekannt - ich wurde von da https://www.excel-inside.de/vba-loesunge...mportieren direkt in dieses Forum verlinkt.
Es geht um Bearbeitung von Bilddateien ( hier *.jpg ), gemeinsame Formatierung, Abfrage von Dateieigenschaften. Eigentlich Dinge, die ich als Standardanforderungen an ein Office-Paket ansehen würde, aber bei MS anscheinend nicht mit Bordmitteln lösbar zu sein scheinen.
Meine verblassten und nie sehr ausgeprägt gewesenen VBA-Kenntnisse reichen leider nicht aus, um die Abfrage einer statischen Benennung zu umgehen. Die Bildnummerierung wird bei jedem Durchlauf des bzw. der Makros verändert. Da stehe ich auf dem Schlauch.
Und vielen Dank für Dein Interesse
Gruß Thomas
Zitieren
#4
Hallo,

Zitat:Es geht um Bearbeitung von Bilddateien ( hier *.jpg ), gemeinsame Formatierung, Abfrage von Dateieigenschaften.
Kann es sein, dass du Office mit IrfanView oder Photoshop verwechselst ?


Sabina
Zitieren
#5
(14.01.2021, 01:07)Flotter Feger schrieb: Hallo,

Zitat:Es geht um Bearbeitung von Bilddateien ( hier *.jpg ), gemeinsame Formatierung, Abfrage von Dateieigenschaften.
Kann es sein, dass du Office mit IrfanView oder Photoshop verwechselst ?


Sabina

Hi,
für mich als Laien ist es nun einmal schwer, einzusehen, dass man durchaus Objekte in cumulo markieren und bearbeiten kann (Eigenschaften ändern), dies aber bei Bildern anscheinend ohne vba nicht hinzukriegen ist. Das oben angesprochene Makro kann dies im Ansatz schon, nur harpert es wohl an der Adressierung der gerade eingebetteten Dateien   Confused
Um die dargestellte Größe eingebetteter Objekte zu ändern, kann man sich natürlich auch gerne einen Softwareboliden zulegen und die Bedienung erlernen, aber mit jedem einzelnen Bild geht es ja auch standardmäßig - ist nur stupide, das von Hand durchzuführen.

Grüße
Thomas
[Bild: 2021-01-14-01-32-56-15.jpg] 
[Bild: 2021-01-14-01-36-36-16.jpg]
Zitieren
#6
Hallo,

wie gesagt, Office ist kein IrfanView ...

Dieser Code liest alle Bild-Dateien ein und markiert sie alle zusammen.
Code:
Option Explicit

Sub BilderImport()
'*********************************************************************************
'** Bilder werden in die Spalte A eingefügt. Die Bilder werden auf die
'** eingestellte Spaltebreite skaliert. Die Zeilenhöhe wird an die
'** skalierte Bildhöhe angepasst
'*********************************************************************************
 
'* * Dimensionierung der Variablen
Dim strVerzeichnis$, strDatei$
Dim pct As Picture
Dim lngZeile As Long 'Zeile zum Eintragen der Bilder
Dim lngSpalte As Long 'Spalte zum Eintragen der Bilder
Dim varBreite As Variant 'Spaltenbreite
Dim varHoehe As Variant
Dim shp As Long
 
'** Verzeichnis und Dateinamen definieren und auslesen
strVerzeichnis = "E:\Excel\Bilder"
strDatei = Dir(strVerzeichnis & "\*.bmp")
 
'** Startzeile + Spalte festelegen
lngZeile = 5
lngSpalte = 1
 
'** Ermittlung der Spaltenbreite
varBreite = Columns("A:A").Width
 
shp = 1
'** Bild 1 bis n durchlaufen
Do While strDatei <> ""
   If strDatei = "" Then Exit Do
   Cells(lngZeile, lngSpalte).Select
   Set pct = ActiveSheet.Pictures.Insert(strVerzeichnis & "\" & strDatei)
   pct.Name = "Picture " & shp
   ActiveSheet.Shapes("Picture " & shp).Select
   Cells(lngZeile, lngSpalte + 1) = strDatei  ' schreiben Dateinamen
   Selection.ShapeRange.LockAspectRatio = msoTrue
   
   Selection.ShapeRange.Width = varBreite '* 5.355 'Bild auf Spaltenbreite skallieren
   
   '** Zeilenhöhe festlegen
   varHoehe = ActiveSheet.Shapes("Picture " & shp).Height
   Rows(lngZeile).RowHeight = varHoehe
   
   '** Zeilenzähler erhöhen
   lngZeile = lngZeile + 1
   
   '** Shape-Zahler erhöhen
   shp = shp + 1
   strDatei = Dir()

Loop
ActiveSheet.Pictures.Select
End Sub
Sabina
Zitieren
#7
Big Grin 
Hallo Sabina,
ganz herzlichen Dank. Der Code läuft ohne Probleme.
Mit kleinen Änderungen auch genau so für *.jpg-Dateien zu verwenden ...
Vielleicht bekomme ich es noch hin, alle gängigen Bildformate nacheinander zu importieren. Dann wäre es perfekt für meine Zwecke.
Ich wünsche Dir einen sehr schönen Tag
Thomas
Zitieren


Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions