Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bilder übernehmen

Bilder übernehmen
19.02.2023 08:05:45
Ralf
Guten morgen alle zusammen,
Ich hätte da mal eine Frage.
Ich arbeite mit mehrere Partner die alle den gleichen Vordruck ( Excel-Datei ) verwenden, jedoch jeder sein eigenes Logo hat. Momentan kopiere ich das Logo jedes mal manuell in den Vordruck.
Gibt es da vielleicht eine Möglichkeit, das durch ein Wort ( z.B. ABC ) das passende Logo an eine vorher bestimmte Position im Vordruck hochgeladen wird, so das ich dann
den kompletten Vordruck in PDF wandeln kann.
Ich stelle mir vor das ich in einer Tabelle in der Zelle B2 den Namen habe ( ABC ) und in der Zelle C2 dann das passende Logo habe usw.
Im Vordruck habe ich dafür eine feste Zelle vorgesehen.
Ich würde m ich freuen, wenn jemand da eventuell eine IDEE hätte
Gruß
Ralf

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder übernehmen
19.02.2023 09:12:33
volti
Hallo Ralf,
natürlich lässt sich das Logo von irgendwoher kopieren oder gar aus einer Datei importieren...
Vorab vielleicht eine andere Idee. Setze alle Logos an die vorgesehene Stelle im Vordruck und blende alle Logos aus, bis auf das jeweils gewünschte.
Da kann man sich das Kopieren und das Löschen des bisherigenLogos (denn das müsstest Du ja auch machen) sparen.
Idee: Wenn Du den Code in die Open-Funktion der Arbeitsmappe legst könntest Du auch die Logos so nennen, wie die Usernamen der Nutzer sind. Dann hat jeder immer sein eigenes Logo.
Hier ein Beispiel-Code:
Code:


Private Sub Workbook_Open() Dim oShp As Object For Each oShp In Sheets("Tabelle1").Shapes oShp.Visible = oShp.Name Like Sheets("Tabelle1").Range("B2").Value ' oShp.Visible = oShp.Name =Environ("Username") Next oShp End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bilder übernehmen
19.02.2023 10:39:01
Ralf
Hallo Karl-Heinz,
ich habe zwischenzeitlich ein Tabellenblatt mit intiligenter Tabelle für die Logos angelegt. In der Stale A steht der Matchcode und in der Spalte B das dazugehörige Logo
Im Datenblatt Zelle R1 wird der aktuelle Kunde ( Matchcode) ausgewiesen.
Nun soll wenn ich den Kunden wechsel auch das Logo gegen das neue ersetzt werden.
https://www.herber.de/bbs/user/157901.xlsm
Gruß Ralf
AW: Bilder übernehmen
19.02.2023 10:44:57
Ralf
Hallo Karl-Heinz,
beachte bitte dass das Datenblatt im Arbeitsmodus geschützt ist.
Gruß
Ralf
AW: Bilder übernehmen
19.02.2023 11:30:58
volti
Hallo Ralf,
hier ein Makro, welches das entsprechende Logo austauscht, sobald man in R1 einen anderen Kunden auswählt.
Die Variante ist ggü. meines vorherigen Vorschlags ist allerdings umfangreicher.
Um die Grafiken nicht benennen zu müssen, werden sie anhand ihrer Position in einer Schleife gesucht. Kann man natürlich auch anders gestalten.
Bzgl. der Position und der Größe habe ich noch entsprechenden Code mit aufgenommen.
Probiere es halt mal aus....
Logo_Wechseln.xlsm
Code:


Option Explicit Sub Logo_Wechseln() Dim WSh As Worksheet, oShape As Object Dim vGefunden As Variant Set WSh = ThisWorkbook.Sheets("Datenblatt") ' Bild suchen und kopieren With ThisWorkbook.Sheets("Logos") vGefunden = Application.Match(WSh.Range("R1").Value, .Columns(1), 0) If IsError(vGefunden) Then Exit Sub For Each oShape In .Shapes If oShape.TopLeftCell.Address = .Cells(vGefunden, "B").Address Then oShape.CopyPicture Appearance:=xlScreen, Format:=xlBitmap DoEvents: Exit For End If Next oShape End With ' Bild einfügen, vorher altes löschen WSh.Select WSh.Unprotect ' Blatt entschützen On Error Resume Next WSh.Shapes.Range("Logobild").Delete ' Altes Bild löschen ActiveSheet.Paste ' Neues Bild einfügen With Selection .Name = "Logobild" .Width = 130 ' Mit Größe und Position spielen... .Top = WSh.Range("I2").Top + 2 .Left = WSh.Range("I2").Left + 110 End With Range("A1").Select WSh.Protect ' Blatt schützen End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bilder übernehmen
19.02.2023 12:09:22
Ralf
Hallo Karl-Heinz,
erstmal Danke für dein Makro, es gibt jedoch 2 Probleme dabei,
1. das Makro wird erst ausgeführt wenn in in MAKRO "Makro ausführen" manuell bestätige,
2. werden die Logos mal normal mal klein im Datenblatt angezeigt. Siehe hier Sendo Solar ( normal ) und weiss-blau oder Ennrgy ( sehr klein )
Gruß
Ralf
AW: Bilder übernehmen
19.02.2023 12:54:11
Ralf
Hallo Karl-Heinz,
bitte den Blattschutz rausnehmen
ich muss dann zukünftigt in diesen Blatt ohne Schutz arbeiten
Gruß
Ralf
AW: Bilder übernehmen
20.02.2023 12:18:10
Ralf
Ich bin es nochmal,
Kann man das Makro erweitern, und zwar so das die Funktion autom. ausgeführt wird. und ist es erforderlich jedesmal zu entsperren.
Ansonsten finde ich die Funktion super.
Gruß
Ralf
Anzeige
AW: Bilder übernehmen
21.02.2023 08:20:40
ChrisL
Hi Ralf
Ja, du musst entsperren. Folgender Code ins Modul der Tabelle Datenblatt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("R1")) Is Nothing Then Call Logo_Wechseln
End Sub
Etwas spät, aber hier ein ganz anderer Ansatz ohne VBA (Kamera-Funktion bzw. Picture-Link):
https://www.excel-inside.de/beispiele_vba/973-dynamische-bilderanzeige
cu
Chris
AW: Bilder übernehmen
21.02.2023 12:40:55
Ralf
Hallo Chris,
Dein Code funktioniert, danke dir. Jedoch gibt es in meinen Hauptprogramm ein Problem damit.
In der Zelle R1 steht eine Formel die lautet: =Kundendatenbank!AG1
das bedeutet, das sich R1 jedesmal den Matchcode aus der Kundendatenbank holt.
Gruß
Ralf
Anzeige
AW: Bilder übernehmen
21.02.2023 13:58:49
ChrisL
Hi
Eigentlich wollte ich dich dazu bringen, die Angelegenheit ohne VBA zu erledigen. Picture-Links finde ich ziemlich cool :)
Das Change Ereignis sollte dann ins Modul der Tabelle "Kundendatenbank".
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("AG1")) Is Nothing Then Call Logo_Wechseln
End Sub
cu
Chris
AW: Bilder übernehmen
21.02.2023 14:17:48
Daniel
Hi
für deine Beispieldatei so. in der Zelle R1 steht der Name der Firma, deren Logo angezeigt werden soll.
1. lege über den Namensmanager einen Namen an, bspw LOGO mit dieser Formel bei "Bezieht sich auf:
=INDEX(Logos!$B:$B;VERGLEICH(Datenblatt!$R$1;Logos!$A:$A;0))
2. kopiere jetzt aus der Logo-Tabelle irgendeine Zeile der Spalte B, die ein Logo enthält (egal welche) und füge sie auf Datenblatt als "verknüpfte Grafik (N)" ein (ist in der Erweiterung Inhalte Einfügen unten rechts)
3. markiere die so eingefügte Grafik und ersetze in der Bearbeitungszelle den Zellbezug =Logos!B2 durch den Namen, den du unter 1. erstellt hast: =LOGO
Gruß Daniel
Anzeige
AW: Bilder übernehmen
21.02.2023 14:50:53
Ralf
Hallöchen,
ich habe mal was probiert.
in der Maske KUNDEN habe ich in den dort bestehenden Code was eingefügt. Mit der Folge, das im Datenblatt sich das Logo ändert ohne das ich den Blattschutz
berühre. Soweit alles richtig.
ABER nun springt mir die Ansicht vom KUNDEN zum DATENBLATT was es nicht soll !!!! Irgendwie fehlt da noch was.
Sheets("Datenblatt".Range ("R1").Formula ="=Kundendatenbank!AG1"
Zu dir Daniel,
danke erstmal für deine Idee, leider werde ich nicht ganz schlau damit. ( bedingt durch Unwissenheit )
Gruß
Ralf
AW: Bilder übernehmen
21.02.2023 15:03:36
Daniel
Hi
naja, das Prinzip ist einfach.
du erstellst eine verknüpfte Bildkopie (also die Kopie einer Zelle als Grafik, die sich aber immer an den jeweiligen Zellinhalt anpasst)
und als Zellbezug für diese diese Zelle nimmst du keinen festen Zellbezug, sondern einen berechneten , der immer auf die gewünschte Zelle verweist.
da man aber für die verknüpfte Grafik so eine Berechnungsformel nicht angeben darf, muss man das über den Namen machen.
also wie gesagt, einfach nur Kopieren+Inhalte einfügen und Namen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige