Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bilder/Shapes austauschen bzw. einfügen (Logik)

Bilder/Shapes austauschen bzw. einfügen (Logik)
10.11.2004 11:12:42
Dennis
Hallo liebes Forum!
Habe folgendes Prob:
Auf alle Arbeitsblätter einer Mappe sollen als Kopfzeile Logos eines Kunden stehen. Es gibt 2 verschiedene Firmen mit jeweils einem eigenen Logo. Nun soll ein Firmenlogo gegen das andere getauscht werden, bei irgendeinem Ereignis, z.B. Worksheet_Change.
So weit so gut. Ich habe jetzt die Logos in einer Tabelle "Grafiken" angelegt und jedem Logo einen Namen vergeben. Ich möchte nämlich nicht die Logos übereinander legen in jeder Tabelle, die Logos sollen sich nämlich einfach austauschen lassen. Jetzt weiß ich von der Logik her nicht mehr weiter!
Meine Denkansätze:
1. Dummy-Logos in jeder Tabelle anlegen und diese jeweils mit dem Original aus meiner Hilfstabelle Grafiken verknüpfen (Wenn ja, wie?!)
2. Eine For-Schleife bauen, die in jede Tabelle springt und je nach ausgewählter Grafik (z.B. per Dropdown-Feld vorher die Logo-Art ausgewählt), das Original-Logo nehmen, dieses kopieren und an eine bestimmte Stelle jeder Tabelle einfügen. Wie mach ich das am dümmsten?!
3. Eine ganz andere Möglichkeit :P
Bin heute leider etwas blöd für die Lösung des Probs. ;)
Schonmal Danke im voraus für eure Vorschläge!
Gruß Dennis

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder/Shapes austauschen bzw. einfügen (Logik)
K.Rola
Hallo,
Grundfrage, sollen die Logos in der Datei gespeichert sein oder zur Laufzeit geladen werden? Um wieviel Blätter gehts?
Gruß K.Rola
AW: Bilder/Shapes austauschen bzw. einfügen (Logik)
10.11.2004 14:03:26
Dennis
Hi K.Rola!
Die Logos sind fest mit der Datei gespeichert, in der letzten Tabelle mit dem Namen "Grafiken".
Es handelt sich insgesamt um etwa 10-15 Arbeitsblätter.
Dennis
Danke, sehr elegante Lösung!
10.11.2004 14:42:28
Dennis
Hi K.Rola!
Danke, Deine Lösung ist natürlich wesentlich eleganter als meine ;)
Werde Deinen Code nehmen und so modifizieren, dass alle Blätter durchlaufen werden und ich nicht den Code in jedes Blatt kopieren muss.
Schönen Tag noch!
Gruß Dennis
Anzeige
AW: Danke, sehr elegante Lösung!
K.Rola
Hallo,
das ist nicht nötig, du kannst den Code auch zentral hinterlegen:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Gruß K.Rola
Aber...
10.11.2004 14:53:29
Dennis
Schon richtig, aber ich hab mir gedacht, wenn man dann mal mehrere Blätter auf einmal ausdrucken möchte(Also z.B. mit Strg markieren), steht auf einigen Blättern noch das alte Logo, da hierbei das Sheet_Activate-Ereignis nicht aufgerufen wird.
Deshalb sollte auf allen Blättern sofort das Logo umgestellt werden...
AW: Aber...
K.Rola
Hallo,
aha, das ist aber auch kein Problem. Falls du das nicht alleine hinbekommst,
nochmal Laut geben.
Gruß K.Rola
Anzeige
Das reicht schon
10.11.2004 15:32:58
Dennis
Hallo K.Rola,
Danke, mehr brauche ich eigentlich nicht zu wissen, mir hat halt "nur" der Denkanstoß gefehlt. Manchmal ist es doch zu einfach ;) Danke für das Angebot, wenn noch was ist, melde ich mich natürlich.
Vielen lieben Dank!
Gruß Dennis
Lösung gefunden!
10.11.2004 14:36:59
Dennis
Ok, habs jetzt selbst rausgefunden.
Hab folgendes sub in Modul grafiken_ändern geschrieben:
Sub swap_grafiken(typ As String) ' Erwartet den Betriebstyp als String
Call globale_tabellen
Dim i As Integer
'Tausche Logos...
If typ = "xxxx" Then 'Wenn Logo xxxx
For i = 1 To UBound(blattliste, 1) 'vom 1. bis zum letzten Bearbeitungsblatt
Worksheets(i).Shapes("logo_xxxx").Visible = True
Worksheets(i).Shapes("logo_yyyy").Visible = False
Next i
Else 'Andernfalls yyyy
For i = 1 To UBound(blattliste, 1)
Worksheets(i).Shapes("logo_xxxx").Visible = False
Worksheets(i).Shapes("logo_yyyy").Visible = True
Next i
End If
End Sub
dazu kommt dann noch das worksheet_change-ereignis:

Private Sub Worksheet_Change(ByVal Target As Range)
'Dynamische Änderung Logo (XXXX/YYYY) bei Auswahl des Betriebstyps
If Target.AddressLocal = Range("betriebstyp").Address Then 'Wenn Dropdown ausgewählt
Call swap_grafiken(Target.Value) 'Tausche Grafiken
End If
End Sub

Anzeige
AW: Lösung gefunden!
K.Rola
Hallo,
das hat nur den Nachteil, dass die Grafiken mehrfach vorhanden sind und somit Speicher beanspruchen.
Gruß K.Rola

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige