Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Pfad für Bilderimport setzen

Forumthread: Pfad für Bilderimport setzen

Pfad für Bilderimport setzen
09.12.2024 15:47:01
Tinu K
Hallo zusammen
ich bin VBA Anfänger und habe ein kleines Problem.
In eine Excel-Liste importiere ich mit VBA automatisch Bilder, nach einer Auswahl von mehreren Kriterien.
Die Excel-Datei ist so geschützt, dass sie nicht unter dem gleichen Namen gespeichert werden kann.
Die User speichern die Datei in Ihren jeweiligen Projekten.
Nun sollten die User jedoch die Möglichkeit haben, die automatisch importierten Bilder manuell auch mal
durch andere ersetzten zu können.
Da wir über eine Verknüpfung auf die Ursprungsdatei zugreifen, ist den Usern nicht immer bekannt, wo die
Excel-Datei und die Bilder gespeichert sind.
Nun würde ich jedoch gerne für den Manuellen Bildimport ins Excel (Einfügen - Bilder - in Zelle platzieren - 
dieses Gerät) den Pfad auf die Bilder setzen.
Leider hat meine Internetsuche bis anhin nichts gebracht und mit Makroaufzeichnen komme ich auch nicht weiter
Gruss und Dank
Martin
Anzeige

32
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad für Bilderimport setzen
09.12.2024 16:04:17
Onur
Was erwartest du jetzt eigentlich genau ? Dass Jemand vorbeikommt und sich deine Datei und deine Makros anschaut, damit er helfen kann?
AW: Pfad für Bilderimport setzen
09.12.2024 16:24:50
Charles
Hallo,
es gab hier im Forum auch so eine ähnliche Anfrage und die wurde mit dem Link zu https://www.alle-meine-vorlagen.de/fotodoku/
und das könnte helfen.

Charles
Anzeige
Pfad für Bilderimport setzen
09.12.2024 19:55:52
Martin
Hallo nochmals

@Charles: leider sind die Makros und VBA in dieser Datei Passwortgeschützt.
@Onur: eigentlich habe ich gedacht, es könnte mir jemand einen Tipp geben, wie ich in VBA den Standardpfad setzen kann
um manuell ein Bild in Excel einzufügen (Einfügen - Bilder - in Zelle platzieren - dieses Gerät).
Standardmässig geht Excel auf:
C:\Benutzer\Bilder oder C:\Benutzer\Dateien
Ich hätte jedoch gerne den Pfad auf den Ursprung der Datei gesetzt, die geöffnet wurde.
Ich weiss, wie ich den Pfad der Datei lese und abspeichere.
Ich weiss jedoch nicht, wo ich den Pfad hinschreiben soll, damit bei Einfügen - Bilder - in Zelle platzieren - dieses Gerät
der Pfad auf diesen Pfad verweist, den ich ausgelesen habe.

Sub Auto_Open()
'Makro startet beim Öffnen der Datei
Dim name As String
Dim pfad As String
name = ActiveWorkbook.name
pfad = ThisWorkbook.Path
ActiveSheet.Cells(2, 13) = pfad
ActiveSheet.Cells(3, 13) = name
End Sub

und hier sollte der Pfad dann erscheinen, wenn ich "Dieses Gerät" anwähle

Userbild

Gruss und Dank für Eure Hilfe
Martin
Anzeige
AW: Pfad für Bilderimport setzen
09.12.2024 20:42:29
Onur
Du hast ja einiges geschrieben, aber NIX von "wie ich in VBA den Standardpfad setzen kann ".
Dim pfad

pfad = Application.DefaultFilePath ' Standardpfad Auslesen
Application.DefaultFilePath = "D:\Neuer Ordner\" 'Standardpfad Setzen
AW: Pfad für Bilderimport setzen
09.12.2024 22:02:07
Martin
Hallo Onur

besten Dank für Dein Bemühen.

Leider sehe ich, dass Erklären nicht wirklich meine Stärke ist. Ich versuche es deshalb nochmals:

Ich habe eine Excel-Datei "test.xlsm" im Laufwerk "S:\x\y" und Bilder im Laufwerk "S:\x\y\z".
Jeder User hat für jedes seiner Projekte einen Projektordner irgendwo auf dem Netzwerk.
Über eine Verlinkung in seinem Projektordner kann er die Excel-Datei "test.xlsm" öffnen.

Das Laufwerk "S:\x\y" und seine Unterlaufwerke sind schreibgeschützt.

Der Projektleiter speichert die Datei "test.xlsm" nun in seinem Projektordner unter irgeneinem Namen, an irgendeinem Ort.

Den Dateipfad "S:\x\y" schreibe ich, beim Öffnen der Datei "test.xlsm", im Excel in eine Zelle, damit ich den Pfad auf die Bilder immer finde.
Sobald der Projektleiter seine Auswahlen in der Datei "test.xlsm" getroffen hat und den Button "Bilder importieren" drückt, werden automatisch die geforderten Bilder eingefügt.

Nun gibt es aber spezielle Begebenheiten, wo der User ein Bild austauschen oder hinzufügen möchte.

In diesem Fall soll er über die Standardfunktion "Einfügen - Bilder - in Zelle platzieren - dieses Gerät" das Bild einfügen.
Da die Datei "test.xlsm" jedoch über einen Link geöffnet wurde, kennt der User nicht unbedingt, den Pfad auf die Bilder "S:\x\y\z".

Also möchte ich, dass in diesem Fall mit "Einfügen - Bilder - in Zelle platzieren - dieses Gerät" nicht der Standardpfad "Dieser PC\Bilder" erscheint, sondern
direkt der Pfad "S:\x\y\z" im Fenster unten eingestellt ist.

Userbild

Gruss und Dank
Martin
Anzeige
AW: Pfad für Bilderimport setzen
09.12.2024 22:26:00
Onur
Es gibt kein "Standardpfad für Bilder" - es wird immer der Ordner genommen, der zuletzt zum Einfügen eines Bildes benutzt wurde.
AW: Pfad für Bilderimport setzen
09.12.2024 22:37:14
Onur
Wenn du also willst, dass ein bestimmter Ordner geöffnet wird, wenn ein Bild eingefügt werden soll, setzt du einfach irgend ein Bild aus diesem Ordner in irgend eine Zelle und löschst es wieder.
z.B. so:
    Range("C8").InsertPictureInCell ("D:\Neuer Ordner\Photos\Bilder2\DSC_0378.JPG")

Range("C8").ClearContents
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 06:55:47
Martin
Hallo Onur

besten Dank nochmals für Deine Antwort.
Irgendwie funktioniert das bei mir jedoch nicht.

So sieht mein Makro nun aus:

Sub Auto_Open()


'Makro startet beim Öffnen der Datei
Dim name As String
Dim pfad As String
Dim Bildpfad As String

Worksheets("Daten").Unprotect ("Passwort")

name = ActiveWorkbook.name
pfad = ThisWorkbook.Path

ActiveSheet.Cells(2, 13) = pfad 'schreibt den Pfad in Zelle "M2"
ActiveSheet.Cells(3, 13) = name 'schreibt den Namen der Datei in Zelle "M3"

Bildpfad = pfad & "\Feuerung & Kessel\UTSR 3200-8000.42-1.png" 'Definiert Pfad und Bilddatei, die es einzufügen gilt

Range("J1").InsertPictureInCell (Bildpfad) 'sollte das Bild in Zelle "J1" einfügen und der Standardbidpfad für Bildimport sollte gesetzt werden
Range("J1").ClearContents 'sollte das Bild aus Zelle "J1" löschen

Worksheets("Daten").Protect ("Passwort")
End Sub


Effektiv wird das Bild nun jedoch nicht in Zelle "J1" eingefügt, sondern in die Zelle, die im Moment angewählt ist.
Das Bild wird nach dem Einfügen nicht gelöscht und auch der Standardbildpfad bleibt auf "eigene Bilder"

Ich bin verwirrt

Gruss Martin
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 11:29:56
Onur
Klappt offenbar nur mit Selection.
Aber so:
   Range("C8").Select

Selection.InsertPictureInCell ("D:\Neuer Ordner\Photos\Bilder2\DSC_0378.JPG")
Selection.ClearContents
AW: Pfad für Bilderimport setzen
10.12.2024 12:16:50
Martin
Hallo Onur

ja, so funktioniert es mit dem Bild einfügen und löschen. Leider hat dies auf den Standardpfad für das Einfügen von Bildern in eine Zelle nach wie vor keinen Einfluss.
Ich befürchte, dass dies eine Never Ending Story wird.

Ich versuche es nun mal über einen separaten Button mit Dropdown-Menu, wo angewählt werden kann, wo das Bild eingefügt werden soll.
Im schlimmsten Fall melde ich mich wieder

Gruss
Martin
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 12:22:02
Onur
" Leider hat dies auf den Standardpfad für das Einfügen von Bildern in eine Zelle nach wie vor keinen Einfluss."? Nochmal: es gibt keinen Standardpfad, es wird der letzte Ordner genommen, der dafür geöffnet wurde und bei MIR funktioniert es. Irgendwas machst DU falsch.
Was genau hast du denn gemacht ???
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 12:40:51
Martin
Das hier:
Sub Auto_Open()


'Makro startet beim Öffnen der Datei
Dim name As String
Dim pfad As String
Dim Bildpfad As String

Worksheets("Daten").Unprotect ("Password")

name = ActiveWorkbook.name
pfad = ThisWorkbook.Path

ActiveSheet.Cells(2, 13) = pfad 'schreibt den Pfad in Zelle "M2"
ActiveSheet.Cells(3, 13) = name 'schreibt den Namen der Datei in Zelle "M3"

Bildpfad = pfad & "\Feuerung & Kessel\UTSR 3200-8000.42-1.png"

Range("$J$1").Select
Selection.InsertPictureInCell (Bildpfad)
Selection.ClearContents

Worksheets("Daten").Protect ("Password")
End Sub

Ist nun das ganze Makro beim Aufstarten der Datei

Gruss Martin
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 12:45:22
Onur
Die Frage lautete doch: "Was genau hast du denn gemacht ??? " und nicht "Wie lautet der Code?"
Von hier aus kann ich es nicht sehen - Was genau hast du denn gemacht, um auf die Überzeugung zu kommen, "es funktioniert nicht"? Es funktioniert bei MIR. WAS GENAU funktioniert bei dir nicht???
AW: Pfad für Bilderimport setzen
10.12.2024 14:25:20
Martin
ich habe das Makro durchlaufen lassen und dann unter "Einfügen - Bilder - in Zelle platzieren - dieses Gerät" versucht ein Bild einzufügen.
Der Pfad war da aber leider immer noch auf C:\Bilder gesetzt
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 14:30:52
Onur
Kann es sein, dass du noch irgendwo in der Datei ein Makro hast, das ein Bild aus "C:\Bilder" importiert und somit dauernd dazwischenfunkt? Wie sonst sollte Excel auf ausgerechnet "C:\Bilder" kommen ?
Lass doch mal im ganzen Code der Datei nach "C:\Bilder" suchen.
AW: Pfad für Bilderimport setzen
10.12.2024 15:22:29
Martin
Ich habe nun die Markros durchsucht, aber nirgends ist der Pfad auf "C:\Users\mku\Pictures" gesetzt.

Wenn ich jedoch einmal ein Bild manuell einfüge "Einfügen - Bilder - in Zelle platzieren - dieses Gerät"
bleibt der Pfad auf diesen Ordner gesetzt.
Also wird der Pfad wirklich gesetzt
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 15:25:32
Onur
"C:\Users\mku\Pictures" ? Was denn jetzt ? Du hast doch geschrieben "C\Bilder" .
"auf diesen Ordner" ? WELCHEN denn ?
AW: Pfad für Bilderimport setzen
10.12.2024 21:48:18
Martin
Hallo Onur

es spielt doch nicht wirklich eine Rolle, wohin der Pfad geht. Der User könnte Excel ja schon offen haben und in einem anderen File irgendwelche Bilder importiert haben.
Dann wäre der Pfad einmal so und einmal so.
Sobald er jedoch mein Tool aufmacht, soll der Pfad auf die Zeichnungen/Bilder für mein Dokument gesetzt sein.
Wenn dies jedoch nicht möglich ist, muss ich mir einen anderen Weg suchen.
Danke für Deine Informationen
Gruss Martin
Anzeige
AW: Pfad für Bilderimport setzen
10.12.2024 21:54:32
Onur
Man kann den Esel zwar zum Wasser führen, aber wenn er das Wasser nicht mal erkennt, weil er alles besser weiss und nicht mal richtig zuhört, verdurstet er eben.
Ich kann damit leben...
AW: Pfad für Bilderimport setzen
11.12.2024 18:26:04
Martin
Hallo Onur

ich habe keine Ahnung, was ich gemacht habe um Dich so zu verärgern.
Ich weiss nur nicht, was ich falsch machen soll, da es im Büro und zu Hause nicht so funktioniert, wie ich das möchte.
Vielleicht sprechen wir auch nicht von genau der selben Sache.
Leider habe ich keine Ahnung, wie ich es noch erklären soll.
Wenn es eine Möglichkeit gibt, das Problem so zu lösen, dann gerne.
Meinen Code habe ich Dir in einem Vorherigen Post geschickt und sonst ist nirgends etwas mit Pfaden vorhanden, was
irgendetwas zurücksetzen könnte. Ich arbeite im ganzen Program mit dem Pfad der Excel-Datei, die ich bearbeiten möchte.
Falls Du mir trotzdem noch helfen möchtest und eine Möglichkeit siehst, das Problem zu lösen, dann wirklich gerne.
Ich müsste nur genau wissen, was ich Dir noch mitteilen soll.
Gruss und Dank im Voraus
Martin
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 19:02:01
Onur
Ich versuche es noch letztes einmal.
Aber keinen Blödsinn mehr erzählen wie "Der Pfad war da aber leider immer noch auf C:\Bilder gesetzt" und dann jedoch "Ich habe nun die Markros durchsucht, aber nirgends ist der Pfad auf "C:\Users\mku\Pictures" gesetzt. ". Dann kriege ich nach meiner Nachfrage noch die patzige Antwort ; "es spielt doch nicht wirklich eine Rolle, wohin der Pfad geht" - Überlasse MIR die Entscheidung,was eine Rolle spielt und was nicht. So kann man nicht arbeiten!
Erkläre mir noch den genauen Ablauf: Du hast ein Tool gebastelt, das den Pfad setzen soll. WO ist dieses Tool? Ist das eine separate Arbeitsmappe oder ist das in der Datei, dier die Kollegen öffnen?
Warum benutzt du Auto_Open? Das gibt es eigentlich schon seit Jahrzehnten nicht mehr, stattdessen benutzt man Workbook_Open() der Arbeitsmappe.
Wo ist denn der restliche Code ? Du schriebst ja: "Die Excel-Datei ist so geschützt, dass sie nicht unter dem gleichen Namen gespeichert werden kann".
Ist der restliche Code in der "Ursprungsdatei" ?

Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 21:15:03
Martin
Hallo Onur

Nochmals sorry, wenn Dir eine meiner Äusserungen in den falschen Hals gekommen ist, das war sicherlich nicht meine Absicht. Fangen wir doch nochmals vorne an.
Ich habe eine Excel-Datei (Name: "Schnittstellenliste.xlsm"), die es den Projektleitern vereinfachen soll, aus unseren unzähligen Datenblättern für unsere Heizungen die Schnittstellendaten für den Kunden zur Verfügung zu stellen. Heute wird in mehreren Mails und Dokumenten jeder Anschluss von Heizwasser, Kühlwasser, Abgas etc. dem Kunden geschickt.
Ich habe die Schnittstellenliste so erstellt, dass sie, anhand von Heizungstyp, Leistung, Brennstoff etc. aus allen unseren Datenblättern diese Schnittstellen zusammenfasst und
mit Bildern erklärt.
Über Makros wird anhand der Eingaben die Sprache umgestellt, die Bilder eingefügt und nicht benötigte Zeilen ausgeblendet, damit der Projektleiter zum Schluss ein
schön aufgemachtes, mehrseitiges Dokument als .pdf drucken kann, welches er dem Kunden schicken kann. Damit die Schnittstellenliste nicht unendlich gross wird, sind die Bilder in mehreren Ordnern nach Thema abgelegt und es werden nur die Bilder in die Datei geladen, die auch wirklich benötigt werden.
Für jedes Projekt wird ein Projektordner erstellt, in welchem diverse Links und Dokumente schon vorhanden sind.
Unter anderem wird ein Link auf diese Schnittstellenliste vorhanden sein.
Die Datei wird dann unter einem anderen Namer z.B. "Kunde XY - Schnittstellenliste.xlsm" im jeweiligen Projektordner abgespeichert.
Nun ist der Pfad auf die Bilder ein komplett anderer, wie derjenige auf die Kundenspezifisch Schnittstellenliste.
Aus eigener Erfahrung geht der effektive Pfad, wo das Dokument mit den Bildern liegt vergessen.
Die Schnittstellenliste liegt auf dem Server (S:\...............\Schnittstellenliste\Schnittstellenliste.xlsm)
Die Bilder liegen auf dem Server eine Ebene weiter unten (S:\\...............\Schnittstellenliste\BRA\BRA 1.png)
Ab und zu gibt es jedoch spezielle Projekte, wo man mit dieser Schnittstellenliste nicht alles automatisch abdecken kann.
Deshalb möchte ich den Projektleitern die Möglichkeit geben, eigene oder andere Bilder in die Schnittstellenliste einzufügen.
Aus diesem Grund wäre es schön, wenn ich den Pfad, um die Bilder einzufügen (Einfügen - Bilder - in Zelle plazieren - dieses Gerät) schon direkt auf die Bilder setzen könnte.
So, nun genug zum allgemeinen und weiter zu den Antworten auf Deine Fragen.
Ich habe eine Excel-Datei mit dem Namen "Schnittstellenliste" und mache alle Aktionen über Makros mit VBA aus den Entwicklertools im gleichen Excel-Dokument.
Die Schnittstellenliste besteht aus mehreren Tabellenblättern. Eines um die Auswahlen und Angaben einzutragen, eines um alles schön zusammen zu tragen und einen Druck zur Verfügung zu stellen und mehrere mit allen Daten, die, je nach Auswahl automatisch über Sverweis zusammengefügt werden.
Die Funktion "Auto_Open()" habe ich über Google suche gefunden und funktioniert bei mir einwandfrei, auch wenn sie sehr alt ist.
Ich habe sie nun jedoch auf "Workbook_Open()" geändert und in "diese Arbeitsmappe eingefügt.
Alle meine Makros sind auf 3 Module verteilt. Workbook_Open() nun in "diese Arbeitsmappe.
Die Schnittstellenliste habe ich einfach mit rechtsklick auf den Dateinamen und unter Eigenschaften - Schreibgeschützt.
So, nun habe ich viel geschrieben und hoffentlich nicht für zu viel Verwirrung gesorgt. Lass mich wissen, wenn Du noch eine Info benötigst
Gruss und Dank im Voraus
Martin
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 21:33:17
Onur
Hi Martin,
Wie ich mir gedacht habe; "Über Makros wird anhand der Eingaben ..., die Bilder eingefügt ".
Excel merkt sich den Pfad, wo die letzten Bilder eingefügt wurden (also vom Makro) und schlägt das, beim nächsten (manuellen) Einfügen von Bildern auch als Pfad vor.
Genau da musst du auch ansetzen. Nachdem durch das Makro das letzte Bild eingefügt wurde, muss das neue Makro durch meinen Trick mit dem Einfügen und wieder Löschen den "Standardpfad zum Einfügen von Bildern" auf den gewünschren Pfad setzen und nicht bei Auto_Open oder Wuorkbook_Open. Denn das was beim Öffnen der Datei passiert, wird ja danach durch deine anderen Makros zum Laden von Bildern wieder rückgängig gemacht.
Ich hoffe, dass ich alles richtig verstanden habe.

Gruß
Onur
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 21:47:41
Martin
Hallo Onur

ja, Du hast es im Prinzip richtig verstanden.
Aber noch eine Frage zum Verständnis:
Wenn ich Deinen Trick im Workbook_Open() in "diese Arbeitsmappe" ausführe und kein anderes Makro ausführe, müsste der Pfad doch noch entsprechend gesetzt sein, oder?
Sub Workbook_Open()


'Makro startet beim Öffnen der Datei
Dim name As String
Dim pfad As String
Dim Bildpfad As String

Worksheets("Daten").Unprotect ("Password")

name = ActiveWorkbook.name
pfad = ThisWorkbook.Path

ActiveSheet.Cells(2, 13) = pfad 'schreibt den Pfad in Zelle "M2"
ActiveSheet.Cells(3, 13) = name 'schreibt den Namen der Datei in Zelle "M3"

Bildpfad = pfad & "\Feuerung & Kessel\UTSR 3200-8000.42-1.png"

Range("$J$1").Select
Selection.InsertPictureInCell (Bildpfad)
Selection.ClearContents

Worksheets("Daten").Protect ("Password")
Range("A1").Select 'Blattschutz einschalten
End Sub

Gruss Martin
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 21:53:11
Onur
Baue doch mal ein
Stop

direkt hinter
Selection.ClearContents

ein und versuche dann, manuell ein Bild einzufügen - welcher Pfad wird dann vorgeschlagen ?
AW: Pfad für Bilderimport setzen
11.12.2024 22:05:21
Martin
Hallo Onur

mit dem Stop auf dieser Zeile zeigt er mir folgenden Pfad für das Bild an "D:\Planungstool\Feuerung & Kessel\UTSR 3200-8000.42-1.png" in der Zelle an.
Wenn ich nun auf "Einfügen - Bilder - in Zelle platzieren - dieser Computer" gehe steht der Pfad immer noch auf "C:\Users\Martin\Dokumente" (das ist jetzt auf dem PC zu Hause)
Gruss Martin
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 22:08:58
Onur
"mit dem Stop auf dieser Zeile zeigt er mir folgenden Pfad für das Bild an" - Und wie genau hast du das festgestellt?
AW: Pfad für Bilderimport setzen
11.12.2024 22:11:41
Martin
Der Cursor steht nach dem Einfügen des Bildes in dieser Zelle.
In der Zelle wird das Bild angezeigt und oben im Eingabefeld (neben fx - ich weiss nicht wie man dieses Feld nennt)
schreibt er den Pfad des Bildes rein
Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 22:14:24
Martin
Userbild
AW: Pfad für Bilderimport setzen
11.12.2024 22:18:12
Onur
Wie genau (Schritt für Schritt) fügst du das Bild manuell ein?
Ausserdem, wenn du direkt nach dem "Stop" in die Zelle schaust, darf da doch kein Bild sein - es wurde doch vom Makro gelöscht !
AW: Pfad für Bilderimport setzen
11.12.2024 22:31:36
Martin
Sorry, mein Fehler.
Ich habe den Stop auf die Zeile und nicht nach der Zeile gesetzt, deshalb ist das Bild noch da.
Habe den Stop nun eine Zeile nach unten gemacht und das Bild ist natürlich nun auch bei mir weg.

Manuell füge ich ein Bild wie folgt ein:
- Zelle anwählen
- oben in der Taskliste auf "Einfügen"
- danach auf "Bilder" (bei Illustrationen)
- nun "in Zelle platzieren"
- und zum Schluss "Dieses Gerät"

Userbild
Userbild


Anzeige
AW: Pfad für Bilderimport setzen
11.12.2024 22:15:06
Onur
Poste mal ein Screenshot davon, denn bei mir ist es anders.

Forumthreads zu verwandten Themen