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

Verzerrte Ansicht

Verzerrte Ansicht
26.08.2014 16:56:48
Robin
Guten Tag liebe Excel Freunde,
ich bin mir nicht sicher wie ich das Problem sonst benennen soll (welches im Betreff steht), aber verzerren trifft es schon ziemlich gut.
Mit verzerren meine ich, ich bastle eine Datei, diese verschicke ich Perfekt passend.
Der andere öffnet sie und es kommt entweder verkleinert oder nicht mehr passend (auf einer Seite) bei ihm an. Was bedeutet ich muss an sein Gerät gehen und dort die Zellen anpassen (Zeilenhöhe, Zeilenbreite).
So nun habe ich eine Sache, die aber leider etwas Zeit kostet und zwar:
Ich habe ein Makro das beim öffnen der Datei startet, diese geht dann in die einzelnen Tabellenblätter rein und passt die Werte so an, wie ich sie vorgeben habe.
Nunja, alles schön und gut es funktioniert 99,9 % super (zumindest passt es immer auf ein Blatt, manchmal leider trotzdem kleiner als vorgegeben, immerhin besser als ein vorgegebenes Blatt auf 4 Seiten - verzerrt).
Hier einmal die Makro:
Makro 1 beim öffnen:

Sub Workbook_Open()
Call refresh
End Sub

Makro 2 aufgerufen durch Makro 1:

Sub refresh()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("Blattname").Select
Call unprotectstart
With Sheets("Blattname")
.Columns("A:A").ColumnWidth = 10.71
.Columns("B:B").ColumnWidth = 10.71
.Columns("C:C").ColumnWidth = 4.14
.Columns("D:D").ColumnWidth = 16.29
.Columns("E:E").ColumnWidth = 3.57
.Columns("F:F").ColumnWidth = 4.14
.Columns("G:G").ColumnWidth = 6.57
.Columns("H:H").ColumnWidth = 4.71
.Columns("I:I").ColumnWidth = 10.71
.Columns("J:J").ColumnWidth = 10.71
.Rows("1:3").RowHeight = 19.5
.Rows("4:13").RowHeight = 15
.Rows("14:14").RowHeight = 19.5
.Rows("15:23").RowHeight = 15
.Rows("24:26").RowHeight = 19.5
.Rows("27:27").RowHeight = 15
.Rows("28:30").RowHeight = 19.5
.Rows("31:31").RowHeight = 15
.Rows("32:38").RowHeight = 19.5
.Rows("39:39").RowHeight = 15
.Rows("40:45").RowHeight = 19.5
End With
Range("H6").Select
Call protectstart
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Ich habe momentan 10 Blätter in dieser Datei, dass bedeutet das das Makro (welches ich gekürzt habe "Makro 2", sich so ungefähr in der Form wiederholt).
Nun ja es dauert schon eine Weile, bis die Datei dann offen ist.
Mein Frage nun: Geht es auch anders bzw. schneller, oder gibt es einen anderen Weg diesem Problem aus dem Weg zu gehen?
Vielen dank im voraus.
Mit freundlichen Grüßen
Robin Heiming

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzerrte Ansicht
27.08.2014 07:09:34
Martin
Hallo Robin,
erst einmal würde ich das Makro etwas optimieren:
Sub refresh()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
Sheets("Blattname").Select
Call unprotectstart
With Sheets("Blattname")
.Columns("A:B", "I:J").ColumnWidth = 10.71
.Columns("C:C", "F:F").ColumnWidth = 4.14
.Columns("D:D").ColumnWidth = 16.29
.Columns("E:E").ColumnWidth = 3.57
.Columns("G:G").ColumnWidth = 6.57
.Columns("H:H").ColumnWidth = 4.71
.Rows("1:45").RowHeight = 19.5
.Rows("4:13", "15:23", "27:27", "31:31", "39:39").RowHeight = 15
End With
Range("H6").Select
Call protectstart
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Ob alles auf ein Blatt passt, ist auch von der Druckerkonfiguration abhängig. Am selben Computer kann bei einem Drucker alles auf eine Seite passen, aber bei Wahl eines anderen Druckers nicht mehr. Mit folgendem Code kann das Problem aber behoben werden:
    With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Viele Grüße
Martin

Anzeige
AW: Verzerrte Ansicht
27.08.2014 14:56:51
Robin
Grüße Martin,
das hab ich mir schon gedacht gehabt, danke für diesen Vorschlag.
Ganz hatte es, so wie du es dargestellt hattest, nicht funktioniert.
Falsch (alt):
.Columns("A:B", "I:J").ColumnWidth = 10.71
Richtig (neu):
.Range("A:B, I:J").ColumnWidth = 10.71
zumindest war das bei mir so, dass ich es ändern musste.
Ich habe den zweiten Teil noch nicht ausprobiert, ich weis auch noch gar nicht so recht wohin ich diesen Teil hängen soll, könntest du mir das bitte erläutern? *dumm anstell*
Eventuell wäre es hilfreich zu erwähnen, dass ich die ganze Arbeitsmappe über ein Makro drucken lasse.
Grüße
Robin

Anzeige
Thread Open
27.08.2014 14:57:51
Robin
Kontrollkästchen vergessen...

AW: Thread Open
29.08.2014 20:36:19
schauan
Hallo Robin,
Du kannst den code entweder in Dein Sub anstelle des bisherigen einfügen oder in das Modul DieseArbeitsmappe. Dort wählst Du oben links Workbook und oben Rechts BeforePrint aus und dort fügst Du den code ein. Dein komplettes Makro brauchst Du in dem Fall nicht mehr.
Hoffe geholfen zu haben, Grüße von André (schauan) aus Gera - Excel-97-2013

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige