Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bild in Verzeichnis suchen und einfügen

Bild in Verzeichnis suchen und einfügen
16.12.2004 12:18:03
Chris26
Hallo,
wer weiß wie ich mit VBA Excel beibringe das es mir den Bildnamen der Zelle A1 nimmt, dann ein Verzeichnis mit allen Unterordnern durchsucht und falls es gefunden wird an Stelle c5 einfügt.
Den Code zum durchsuchen habe ich:

Private Sub CommandButton1_Click()
Dim i As Long
With Application.FileSearch
.LookIn = "Verzeichnis 1"
.LookIn = "Verzeichnis 2"
.SearchSubFolders = True
.Filename = Cells(1, 1)
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles.Item(i)
Next i
End If
End With
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild in Verzeichnis suchen und einfügen
Uduuh
Hallo,
warum 2x .LookIn? Es wird nur das letztere Verzeichnis durchsucht.
Bild einfügen kannst du dir prima aufzeichnen.
Gruß aus'm Pott
Udo
AW: Bild in Verzeichnis suchen und einfügen
Chris26
Hallo,
Das ist weil ich verschiedene Verzeichnisse auf verschiedenen Laufwerken habe.
Ich habe ein Eingabeblatt auf dem der Anwender eine Nummer eingibt. Nun soll mir VBA diese Verzeichnisse nach dem Namen des Bildes durchsuchen. Mit aufzeichnen ist da nicht viel getan. Ich brauch dazu den VBA Code. Er zeigt mir ja den Pfad an mit der MSGbox in dem das Bild steht. Nur wie bekomme ich das Bild nun ins Excel importiert?
gruß
Anzeige
AW: Bild in Verzeichnis suchen und einfügen
Uduuh
Hallo,
Genau die Frage beantwortet dir der Rekorder.
activesheet.pictures.insert(.foundfiles(i))
Gruß aus'm Pott
Udo

Danke
Chris26
Vielen Dank. Diesen Befehl suchte ich. Hat mir wirklich sehr geholfen.
Gruß zurück
AW: Frage
Chris26
Hallo nochmal
wie kann ich jetzt noch den einfügeort und die größe bestimmen?
Anzeige
AW: Frage
U_
Hallo,
indem du die top- left- height- und width-Eigenschaft entsprechend einstellst.
AW: Frage
Chris
Hallo,
ja, das wollte ich auch machen, aber ich habe hier einen grundlegenen Fehler drin. Ich komme nicht weiter.

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim höhe
Dim breite
Dim I As Long
With Application.FileSearch
.LookIn = "H:\FT13\BERICHTE\Artikeldatenbank"
.SearchSubFolders = True
.Filename = Cells(20, 19)
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles.Item(I)
ActiveSheet.Pictures.Insert (.FoundFiles(I))
.Shapes(.FoundFiles(I)).Select
breite = 358 / Selection.ShapeRange.Width        'angabe wie breit das Bild sein soll
höhe = 242 / Selection.ShapeRange.Height         'angabe wie hoch das Bild sein soll
Selection.ShapeRange.ScaleWidth breite, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight höhe, msoFalse, msoScaleFromTopLeft
Next I
End If
End With
Application.ScreenUpdating = True
End Sub

gruß Christian
Anzeige
AW: Frage
u_
ActiveSheet.Pictures.Insert (.FoundFiles(I)).select
with selection
.height=40
.top=40
.left=Range("C2").left
.top=Range("C2").top
end with
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Excel suchen und einfügen mit VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Private Sub CommandButton1_Click()
       Application.ScreenUpdating = False
       Dim höhe As Double
       Dim breite As Double
       Dim i As Long
    
       With Application.FileSearch
           .LookIn = "Verzeichnis 1" ' Passe den Pfad an
           .LookIn = "Verzeichnis 2" ' Passe den Pfad an
           .SearchSubFolders = True
           .Filename = Cells(1, 1) ' Bildname aus Zelle A1
    
           If .Execute() > 0 Then
               For i = 1 To .FoundFiles.Count
                   ActiveSheet.Pictures.Insert (.FoundFiles(i)).Select
                   With Selection
                       .Height = 40 ' Höhe festlegen
                       .Top = 40 ' Top-Position festlegen
                       .Left = Range("C2").Left ' Position in Zelle C2
                   End With
               Next i
           End If
       End With
    
       Application.ScreenUpdating = True
    End Sub
  4. Button hinzufügen: Füge einen Button zu deinem Excel-Blatt hinzu und verlinke ihn mit dem obigen Makro.

  5. Makro ausführen: Klicke auf den Button, um das Bild zu suchen und einzufügen.


Häufige Fehler und Lösungen

  • Fehler: Bild wird nicht gefunden

    • Lösung: Stelle sicher, dass der Bildname in Zelle A1 korrekt ist und dass die Verzeichnisse, die du durchsuchen möchtest, existieren.
  • Fehler: Bild wird nicht eingefügt

    • Lösung: Überprüfe den Code auf Syntaxfehler und stelle sicher, dass die angegebene Höhe und Breite korrekt sind.

Alternative Methoden

  • Bild einfügen über die Benutzeroberfläche: Du kannst auch manuell ein Bild einfügen, indem du auf Einfügen > Bilder klickst. Dies ist jedoch weniger automatisiert als die VBA-Methode.

  • Excel-Add-Ins nutzen: Es gibt verschiedene Add-Ins, die das Suchen und Einfügen von Bildern erleichtern können.


Praktische Beispiele

  • Beispiel 1: Wenn du den Bildnamen in Zelle A1 als "urlaub.jpg" festlegst, wird der Code alle Unterordner in "Verzeichnis 1" und "Verzeichnis 2" durchsuchen und das Bild in Zelle C2 einfügen.

  • Beispiel 2: Du kannst die Position und Größe des Bildes dynamisch anpassen, indem du die .Top, .Left, .Height und .Width Eigenschaften entsprechend änderst.


Tipps für Profis

  • Verwendung von Variablen: Du kannst die Pfade als Variablen definieren, um den Code flexibler zu gestalten.

  • Fehlerbehandlung einfügen: Implementiere On Error Resume Next, um Fehler zu behandeln, falls ein Bild nicht gefunden wird.

  • Bilder in einer Schleife einfügen: Du kannst die Schleife erweitern, um mehrere Bilder nacheinander einfügen zu lassen, ohne den Code erneut auszuführen.


FAQ: Häufige Fragen

1. Wie kann ich die Suchkriterien anpassen?
Du kannst die .Filename-Eigenschaft ändern, um nach anderen Bildformaten oder Namen zu suchen. Beispiel: .Filename = "*.jpg".

2. Kann ich die Größe des Bildes anpassen?
Ja, du kannst die Höhe und Breite im Code anpassen, indem du die entsprechenden Werte bei .Height und .Width änderst.

3. Wie kann ich sicherstellen, dass das Bild immer an der gleichen Stelle eingefügt wird?
Setze die .Top und .Left Eigenschaften auf die gewünschten Zellpositionen, um eine konsistente Platzierung zu gewährleisten.

4. Funktioniert dies auch in Excel 365?
Ja, der Code sollte in Excel 365 sowie in anderen Versionen von Excel funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige