Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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

Blatt mit Bild mittels Makro kopieren

Blatt mit Bild mittels Makro kopieren
22.12.2014 13:50:42
Debian
Hallo zusammen :-)
Ich habe in Excel ein bescheidenes Rechnungsprogramm gebastelt. Es besteht aus den Blättern "Kundenstammdaten" mit den Adressen, Rechnungsnummern etc., dem Blatt "Verkauf fortlaufend" in dem die einzelnen Rechnungspositionen für jeden Kunde eines Monats eingegeben werden, sowie dem Blatt "Rechnungsformular", welches eine leere Vorlage für alle zu erstellenden Rechnungen ist. In diesem Blatt hat es eine Dropdownliste, mittels derer der gewünschte Kunde ausgewählt wird, anschliessend klickt man den Button "Rechnung erstellen" an und alle erforderlichen Daten werden aus den ersten beiden Blättern in das Rechnungsformular übertragen. Die so erstellte Rechnung wird in der selben Mappe als Kopie (Werte ohne Formeln) gespeichert (ich benutze diese Mappe rechnerübergreifend auf Windows und Mac, da passen die Seitenumbrüche nicht genau, so das ich da nachjustieren muss bevor ich drucken kann).
Meine Frage ist nun diese:
Die zu druckende Rechnungskopie wird via dieses Makro erstellt:

Sub Kopie()
Application.Goto Reference:="Print_Area"
Selection.Copy
Sheets.Add after:=Sheets(ActiveWorkbook.Sheets.Count)
Selection.PasteSpecial (xlPasteColumnWidths)
Selection.PasteSpecial (xlPasteAll)
Selection.PasteSpecial (xlPasteValues)
'ActiveSheet.Paste        'Daten einfuegen
Application.CutCopyMode = False
ActiveWindow.DisplayZeros = False
ActiveSheet.Name = Left([A15], 10) & " - " & [D29]
'Seite einrichten
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.511811023622047)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
'Zeilenhoehe
Rows("39:39").RowHeight = 28.5
End With
End Sub

Sub Kopie_aktuelles_Blatt_ohne_Formeln()
Call SchutzAus
Dim WB As Workbook
Dim b As Range
Dim Anwort
Anwort = MsgBox("Aktuelles Tabellenblatt ohne Formeln in eine neue Mappe kopieren?", _
vbInformation + vbYesNo, "Tabellenblatt Kopieren Ja oder Nein.")
If Anwort = vbNo Then Exit Sub
Application.ScreenUpdating = False
'Aktuelles Tabellenblatt Kopieren
ActiveSheet.Copy
Set WB = ActiveWorkbook
' Formeln durch Zelleninhalt ersetzten
For Each b In WB.ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
b = b.Value2
Next b
Application.ScreenUpdating = True
Call SchutzEin
End Sub

Sub Druck()
Application.Goto Reference:="Print_Area"
Selection.PrintOut Copies:=2, Collate:=True
End Sub

Mein Problem ist nun, dass das Logo, welches ich in den Briefkopf des Rechnungsformulars einfüge, nicht in die Rechnungskopie übernommen wird. Auch nicht, wenn ich es in die Kopfzeile einfüge!) Wie muss der Code angepasst werden, damit das Logo mitgenommen wird?
Und das zweite: Weiss jemand einen Weg, wie ich die Seitenumbrüche so einrichten kann, das die Seitenränder und die Umbrüche zwischen Excel für Windows und Excel für Mac gleich bleiben? Das ist ein grosses Ärgernis.
Anbei die Musterdatei, damit ihr sehr, von was ich geschrieben habe.
Hier der Link dazu:

Die Datei https://www.herber.de/bbs/user/94544.xlsm wurde aus Datenschutzgründen gelöscht

Für eure Hilfe besten Dank im Voraus :-)
Grüsse aus Zürich.
Debian

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zu Frage 1
22.12.2014 19:06:56
Beverly
Hi Debian,
ohne mir deine Mappe angesehen zu haben - hast du schon mal folgenden versucht: anstelle dass du den Druckbereich in eine neue Tabelle zu kopierst, das komplette Tabellenblatt zu kopieren, die Formelinhalte in Werte umzuwandeln und die eventuell nicht benötigten Zellinhalte zu löschen? Dann sollte das Logo doch mitgenommen werden - oder sehe ich das falsch?


AW: zu Frage 1
24.12.2014 16:35:23
Debian
Hallo Karin :-)
Hab leider erst jetzt gesehen, das Du schon vorgestern geantwortet hast :-)
Ich hab das Problem gefunden, ich habe "ActiveSheet.Paste" eingefügt, schon werden alle enthaltenen Grafiken mitgenommen.
Die Geschichte mit den Seitenumbrüchen ist da schon eher tricky, da Excel in Windows und Excel auf dem Mac nicht mit den gleichen Masseinheiten arbeiten. Es geht aber halbwegs, wenn man die Skalierung auf Biegen und Brechen bei 100% hält und dem alles andere unterordnet. Dann klappts beinahe auch auf einem anderen Rechner :-)
Allerdings geht mein "Problem" in der selben Mappe mit was Neuem weiter. Ich hab ein Clear.Content-Makro drin, das auf zwei Blättern (nämlich "Verkauf fortlaufend" und "Debitorenliste" die Inhalte löscht.
Jetzt bin ich auf den Fall gestossen, das im laufenden Monat zwar Leistungen erbracht/Artikel verkauft wurden, die Rechnung dafür aber nicht im selben Monat, sondern erst nach Abschluss eines Auftrages versendet werden soll. Bislang wurde die gesamte Mappe immer unter dem Namen des neuen Monats gespeichert und dann via Button/Makro die Inhalte gelöscht. Dann gings von Neuem los. Jetzt müsst ich das Makro so anpassen, das ich gewissermassen eine Auswahlbox angezeigt bekomme, welche Kunden (sortiert nach Kunden-Kürzel) NICHT aus der Liste gelöscht werden sollen. Alle anderen Eintragungen sollen wie gewöhnlich entfernt werden.
Hast Du da eine Idee dazu? Oder vielleicht eine Datei, wo sowas in der Art schon mal umgesetzt wurde? Oft genug hab ich lediglich eine "Denk-Blockade" und komm einfach nur nicht auf den richtigen Ansatz ;-)
Merci im Voraus und frohe Weihnachten euch allen :-)
LG
Ringo
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige