Microsoft Excel

Herbers Excel/VBA-Archiv

Logo einbetten, drucken, löschen

Betrifft: Logo einbetten, drucken, löschen von: Metin
Geschrieben am: 07.08.2020 11:10:39

Hallo Excel-Gemeinde,


ich benötige nach langen Jahren mal wieder eure Hilfe.


Bei mir auf der Arbeit haben wir eine .xlsm Datei mit bis zu 5002 Tabellenblättern. In 5000 (Blätter 003-5002) Blättern ist stets unser Firmenlogo oben links manuell eingefügt. Dies führt naürlich dazu das die Datei extrem groß und unhandlich wird. Bisher hatten wir allerdings maximal ca. 400 Blätter.


Gibt es eine Möglichkeit das Firmenlogo aus Tabellenblatt 003 vor dem Druckvorgang des aktiven Blattes zu kopieren, einzufügen und nach dem Ausdruck wieder zu löschen.


Bedanke mich im Voraus


Metin

Betrifft: AW: sieh mal
von: Fennek
Geschrieben am: 07.08.2020 11:17:48

Hallo,

mit VBA könnte es gehen. Sieh dir mal die ähnliche Frage an:
https://www. _
clever-excel-forum.de/Thread-Grafik-in-der-Kopf-und-Fusszeile

mfg

Betrifft: AW: Logo einbetten, drucken, löschen
von: Beverly
Geschrieben am: 07.08.2020 11:24:31

Hi Metin,

z.B. so:
Sub LogoEinfuegen()
    With ActiveSheet
        Worksheets("Tabelle1").Shapes("Logo").Copy  ' Tabellename u. Names des Bildes anpassen
        .Paste
        With .Shapes(.Shapes.Count)
            .Top = Range("B2").Top        ' Position Oben <== anpassen
            .Left = Range("B2").Left      ' Position Links <== anpassen
        End With
        .PrintPreview
        .Shapes(.Shapes.Count).Delete
    End With
End Sub

Das Logo ist nur einmalig vorhanden in Tabelle1, wird vor dem Drucken in die aktive Tabelle eingefügt, diese wird gedruckt und das logo wieder gelöscht.


GrußformelBeverly's Excel - Inn

Betrifft: AW: Logo einbetten, drucken, löschen
von: Metin
Geschrieben am: 07.08.2020 12:27:27

Vielen Dank Beverly,

geht genau genommen in die richtige Richtung. Habe aber mit der Umsetzung ein paar Probleme.

Deinen Code habe ich in "Diese Arbeitsmappe" kopiert und angepasst.
Sub LogoEinfuegen()
    With ActiveSheet
        Worksheets("01.mu.0001").Shapes("Picture 1").Copy  ' Tabellename u. Names des Bildes  _
anpassen
        .Paste
        With .Shapes(.Shapes.Count)
            .Top = Range("D1").Top        ' Position Oben <== anpassen
            .Left = Range("D1").Left      ' Position Links <== anpassen
        End With
        .PrintPreview
        .Shapes(.Shapes.Count).Delete
    End With
End Sub
jetzt funktioniert das Drucken aber nur wenn ich in VBA die Taste F8 nacheinander drücke. Es wäre schön wenn ich wie üblich die Kombination STRG+P oder das Shortcut in der Menüzeile drücke und das PrintPreview sich öffnet.

Nächstes Dilemma ist das der Code den expliziten Tabellenname benötigt.

Worksheets("01.mu.0001").Shapes("Picture 1").Copy

Der Name 01.mu.0001 ist aber eine Variable. Wenn ich im VBA Modus in den Explorer schau, steht da Tabelle323(01.mu.0001). Wenn ich das richtig verstehe, ist doch die Bezeichnung "Tabelle323" eine fixe Konstante. Kann man nicht diese Bezeichnung nehmen. Ändere ich das im Code, funktioniert das überhaupt nicht.

Kannst du mir vielleicht nochmal behilflich sein.

Gruß Metin

Betrifft: AW: Logo einbetten, drucken, löschen
von: Beverly
Geschrieben am: 07.08.2020 14:14:43

Hi Metin,

der Code gehört in ein Standardmodul - dann kannst du dem Makro eine Tastenkombination zuweisen.

Im VBA-Editor steht immer der Name in Klammern, welcher auf dem Tabellenreiter steht - also im konkreten Fall wäre das 01.mu.0001. Der Name vor der Klammer ist der Codename - den müsste man dann so benutzen:
Tabelle323.Shapes("Picture 1").Copy 

GrußformelBeverly's Excel - Inn

Betrifft: AW: Logo einbetten, drucken, löschen
von: Metin
Geschrieben am: 07.08.2020 14:33:19

Vielen Dank,

funktioniert genau wie ich es haben wollte.

Wünsche dir noch ein schönes Wochenende.

Beiträge aus dem Excel-Forum zum Thema "Logo einbetten, drucken, löschen"