Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mac: Thumbnails automatisch einfügen
#1
Rainbow 
Hallo an alle clever-excel-Mitglieder,

Betriebssystem: Sierra 10.12.
Office 2016: Version 16.16

Ich würde mir gerne eine Inventarliste in Excel erstellen, die sowohl einen Thumbnail als auch den originalen Dateinamen (Fotos) enthält. In weiterer Folge kommen dann Keywords, Ausrichtung des Fotos (Hochformat, Quer) usw. dazu. Die Thumbnails sind deswegen so wichtig damit ich einen visuellen Bezug zu dem Fotos habe (und dann die erste Spalte sperren kann)

Die Thumbnails liegen alle in einem speziellen Ordner (/Users/ericL/Desktop/PrintReady/Thumbnail) und sollen dann später in Zelle A1, A2, usw. eingefügt werden.
Wichtig ist das die Fotos dann in der Zelle zentriert eingebettet sind damit sie beim sortieren nicht verrutschen.

Ich habe schon verschiedene Codes aus diversen Foren ausgetestet, leider haben die nicht wirklich hingehauen (die dürften nur für Windows funktionieren). Manuell habe ich die Fotos auch schon eingefügt aber das war auch nicht wirklich erfolgreich.
Die Entwicklertools habe ich aktiviert und die Codes die ich in ein Modul eingefügt habe funktionierten auch nicht.

Mein Wissen für VBA ist unter dem Minimum, den Pfad kann ich ändern aber das wars auch schon. =) Sorry.
Vielleicht mach ich auch was anderes falsch.
Gibt es überhaupt eine Lösung für dieses Problem oder eine ähnliche Lösung?  Huh

Hier ein Code der nicht funktionierte:
Sub InsertPictures()
Dim PicList() As Variant
Dim PicFormat As String
Dim Rng As Range
Dim sShape As Shape
On Error Resume Next
PicList = Application.GetOpenFilename(PicFormat, MultiSelect:=True)
xColIndex = Application.ActiveCell.Column
If IsArray(PicList) Then
xRowIndex = Application.ActiveCell.Row
For lLoop = LBound(PicList) To UBound(PicList)
Set Rng = Cells(xRowIndex, xColIndex)
Set sShape = ActiveSheet.Shapes.AddPicture(PicList(lLoop), msoFalse, msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
xRowIndex = xRowIndex + 1
Next
End If
End Sub


Danke schon im Vorhinein an alle die tatkräftig mitschreiben. LG
Antworten Top
#2
Hallöchen,

ich kann beim Thema MAC leider nicht mitreden. Aber mal allgemein, wenn ich für ein Projekt viele Bilder brauche versuche ich eine Lösung mit Hyperlinks auf die Bilddateien statt diese direkt in eine Exceldatei einzufügen.

Wenn Dein Code nicht läuft, wäre übrigensauch eine genauere Beschreibung eventueller Fehlern oder den nicht funktionierenden Funktionen Smile  von Interesse.

Dann mal noch ein paar Code-Tipps

Falls Du Option Explicit in Deinem Codemodul hast, bekommst DU für diese 3 Variablen eine Fehlermeldung

xColIndex, xRowIndex, lLoop

Die müssten dann oben auch mit Dim dimensioniert werden: Dim xColIndex&, xRowIndex&, lLoop&
(Das & steht übrigens für "As Long")

PicList = Application.GetOpenFilename(PicFormat, MultiSelect:=True)

PicFormat hast Du weiter oben zwar als String dimensioniert, aber nirgendwo gefüllt. Macht aber nix


xColIndex = Application.ActiveCell.Column

kommt ohne Application. aus, ebenso

xRowIndex = Application.ActiveCell.Row

(Macht aber ggf. auch nix)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
OK, ich versteh nur VBA-Bahnhof Blush




Habe mir mal einen Haltepunkt gesetzt und es Schritt für Schritt durchlaufen lassen. 

Bei PicList ruft er mir den Ordner auf, aber ich kann nur ein Bild auswählen und wenn ich das Bild auswähle - dann passiert gar nichts mehr.

Code:
Sub InsertPictures()

Dim xColIndex&, xRowIndex&, lLoop&
On Error Resume Next
PicList = Application.GetOpenFilename(PicFormat, MultiSelect:=True)
xColIndex = Application.ActiveCell.Column
If IsArray(PicList) Then
   xRowIndex = Application.ActiveCell.Row
   For lLoop = LBound(PicList) To UBound(PicList)
       Set rng = Cells(xRowIndex, xColIndex)
       Set sShape = ActiveSheet.Shapes.AddPicture(PicList(lLoop), msoFalse, msoCTrue, rng.Left, rng.Top, rng.Width, rng.Height)
       xRowIndex = xRowIndex + 1
   Next
End If
End Sub
Antworten Top
#4
Hallöchen,
Du musst mehrere Bilder auswählen. Das geht wie im Explorer auch mit strg oder shift.. Bei einem Bild passiert nix, weil du mit dem... Is array prüfst, ob mehrere gewählt wurden. Eins ist nicht vorgesehen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Das funktioniert leider nicht. Kann leider nicht mehr als ein Bild anwählen. Huh 
Kann ich den kompletten Ordner mit einer anderen Funktion auswählen?

Edit: Das mit dem Ordner habe ich auch schon getestet. Kann nicht den ganzen Ordner anwählen.

Edit2: HIER konnte ich nachlesen das es funktioniert aber total anders. Das macht das ganze nicht weniger verwirrend.
Für das reichen meine jetzigen Kenntnisse nicht aus, um das umzuschreiben.

Code:
Sub InsertPictures()


Dim xColIndex&, xRowIndex&, lLoop&
On Error Resume Next
ChDrive "Macintosh SSD"
ChDir "/Users/ericletourneur/Desktop/PrintReady/Thumbnail/"
PicList = Application.GetOpenFilename(PicFormat, MultiSelect:=True)
xColIndex = Application.ActiveCell.Column
If IsArray(PicList) Then
   xRowIndex = Application.ActiveCell.Row
   For lLoop = LBound(PicList) To UBound(PicList)
       Set rng = Cells(xRowIndex, xColIndex)
       Set sShape = ActiveSheet.Shapes.AddPicture(PicList(lLoop), msoFalse, msoCTrue, rng.Left, rng.Top, rng.Width, rng.Height)
       xRowIndex = xRowIndex + 1
   Next
End If
End Sub
Antworten Top
#6
Hallo, :19:

bevor das wieder ein ellenlanger Themenstrang wird, Office auf dem Mac und dann noch VBA - lass es sein, das wird nichts bzw. ein rechtes Gemurkse. :21:

Kurz mal Google - oder eine Suchmaschine deiner Wahl - angeworfen spuckt das aus: Undecided

But on a Mac the filefilter is not working and it is not possible to select more then one file...

Und das ist ja nicht alles. Ich wiederhole es zum zigsten Male - die Sandbox kann da auch noch zwischen funken - siehe Link von Ron de Bruin. Exclamation

Wenn du mehr mit VBA machen möchtest, aber unbedingt auf dem Mac arbeiten möchtest, dann solltest du dir überlegen Windows auf dem Mac zu nutzen:

Windows auf dem Mac installieren - so geht's...

Glaube mir - du ersparst dir eine Menge Ärger, denn da funktioniert VBA ganz gut. :05:
________
Servus
Case
Antworten Top
#7
Hi Case, danke für deine Antwort. Ich hatte nicht vor das es ein ellenlanger Thread wird, der am Schluss nichts ausspuckt und auch keine Erfahrung hier im Forum wie das sonst endet. 

Es muss nicht unbedingt sein, leider lässt sich es nicht anders lösen - das Problem mit den Bildern. Ich wollte einen Inventurliste machen mit Fotos und dann in Kategorien unterteilen (Land, Format, Erstellungsjahr usw.)

Gruß
Antworten Top
#8
Hallo, :19:

Office auf dem Mac und VBA ist auch in den anderen Excel Foren häufig schwierig, da es wenige gibt, die intensiv mit VBA arbeiten - und das unter Office auf dem Mac. Viele Dinge funktionieren nur eingeschränkt, oder schlicht und ergreifend gar nicht. Huh

Den Code von Ron kannst du aber nehmen und anpassen. Helfen wird da schwierig, da ich es nicht testen kann. :21:
________
Servus
Case
Antworten Top
#9
Hallöchen,
Bin halt nur am Smartphone und das schränkt ja ganz schön ein...
Unter Windows würde ich sagen - Lasse mal die Zeilen mit If, For, Next und End If weg.
Trotzdem noch eine Frage - hast du es denn schon mal mit Multiselekt versucht?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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