Thema Datum  Von Nutzer Rating
Antwort
18.03.2017 19:13:09 Daniel
NotSolved
Blau 2 Bilder pro Zeile in Excel Datei einfügen - aber wie?
19.03.2017 08:32:47 Kai
NotSolved
19.03.2017 19:47:57 Gast90400
NotSolved
19.03.2017 19:49:22 Daniel
NotSolved
19.03.2017 20:18:01 Kai
NotSolved
19.03.2017 20:21:28 Kai
NotSolved
19.03.2017 22:44:50 Daniel
NotSolved
20.03.2017 20:52:57 Kai
NotSolved
21.03.2017 10:44:12 Daniel
NotSolved
22.03.2017 05:38:22 Kai
NotSolved
24.03.2017 11:05:35 Daniel
NotSolved
25.03.2017 07:00:19 Kai
NotSolved
27.03.2017 09:07:51 Daniel
NotSolved

Ansicht des Beitrags:
Von:
Kai
Datum:
19.03.2017 08:32:47
Views:
420
Rating: Antwort:
  Ja
Thema:
2 Bilder pro Zeile in Excel Datei einfügen - aber wie?

Hallo Daniel,

hiermit sollte es gehen:

Bitte beachte, dass der Code bei jedem Durchlauf die Fotos erneut einfügt.

Sollen diese vorher gelöscht und neu eingefügt werden die Kommentierung des Codes

'For Each sh In ws.Shapes
    'sh.Delete
'Next sh

im Code entfernen

Sub fotosEinfügen()

Dim ws As Worksheet
Dim strDateiPfad As String
Dim fs As Object, fPfad As Object, fFoto As Object, fFotos As Object
Dim i As Integer
Dim lz As Long
Dim strLecknummer As String, strLecknummerFoto As String
Dim laenge As Integer
dim sh as shape


'Annahme: Diese Datei liegt in dem Pfad, in dem die Bilder gespeichert sind
'Ich habe den Sheetnamen als "1" festgelegt. Bitte auf den entsprechenden Namen umändern
Set ws = Sheets("1")
strDateiPfad = ThisWorkbook.Path
'FileSystemObject erstellen um auf Ordner und Dateien zugreifen zu können
Set fs = CreateObject("scripting.FileSystemObject")
'Pfad festlegen, in dem die Fotos gespeichert sind
Set fPfad = fs.getfolder(strDateiPfad)
Set fFotos = fPfad.Files

'Code zum löschen aller Bilder hier einfügen
'For Each sh In ws.Shapes
    'sh.Delete
'Next sh

With ws
'letzte Zeile ermitteln
lz = .Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lz
        
        strLecknummer = .Cells(i, 1).Value
        'Alle in dem Ordner gespeicherten Fotos durchlaufen
        For Each fFoto In fFotos
            If Left(fFoto.Name, 4) = "Leck" Then
                'Länge des Fotonamens ermitteln
                laenge = Len(fFoto.Name)
                'Lecknummer aus Dateinamen ermitteln
                'Dateiname: Leck 1-2.jpg
                '-> Die ersten sieben und die letzten vier Zeichen müssen abgeschnitten werden, um die jeweilige Lecknummer zu ermitteln
                'Diese wird mit der Lecknumme rin Spalte A verglichen
                strLecknummerFoto = Mid(fFoto.Name, 6, (laenge - 11))
                'Prüfung, ob die aktuelle Lecknummer der Nummer in dem Foto entspricht
                If strLecknummer = strLecknummerFoto Then
                    'Aus dateinamen ermitteln ob es das Fot -2 oder -3 ist und entsprechend die Zelle festlegen, in der das Foto eingefügt werden soll.
                    If Left(Right(fFoto.Name, 5), 1) = "2" Then
                        'Einfügen des Fotos (40,40 bedeutet Breite, Höhe des Fotos in Pixeln
                        .Shapes.AddPicture fPfad & "\" & fFoto.Name, _
                        False, True, _
                        .Cells(i, 6).Left, _
                        .Cells(i, 6).Top, _
                        40, 40

                    ElseIf Left(Right(fFoto.Name, 5), 1) = "3" Then
                        .Shapes.AddPicture fPfad & "\" & fFoto.Name, _
                        False, True, _
                        .Cells(i, 7).Left, _
                        .Cells(i, 7).Top, _
                        40, 40

                    End If
                  
                End If
            End If
        Next fFoto
    
    Next i
    
End With

Ich hoffe das hilft.

 

Viele Grüße

 

Kai


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
18.03.2017 19:13:09 Daniel
NotSolved
Blau 2 Bilder pro Zeile in Excel Datei einfügen - aber wie?
19.03.2017 08:32:47 Kai
NotSolved
19.03.2017 19:47:57 Gast90400
NotSolved
19.03.2017 19:49:22 Daniel
NotSolved
19.03.2017 20:18:01 Kai
NotSolved
19.03.2017 20:21:28 Kai
NotSolved
19.03.2017 22:44:50 Daniel
NotSolved
20.03.2017 20:52:57 Kai
NotSolved
21.03.2017 10:44:12 Daniel
NotSolved
22.03.2017 05:38:22 Kai
NotSolved
24.03.2017 11:05:35 Daniel
NotSolved
25.03.2017 07:00:19 Kai
NotSolved
27.03.2017 09:07:51 Daniel
NotSolved