Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape

Forumthread: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape

Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 01:16:25
Martin
Buenas Noches Profis!

Ich möchte gerne: WENN die Spaltenbreiten 90 übersteigt, DANN "horizontal" drucken, SONST "vertikal".

integer_LetzteSpalte = ActiveSheet.UsedRange.Columns.Count ' z.B. 7

'Von ZELLE("Breite";A1) bis Spalte_7 = G1 (???):
IF (ZELLE("Breite";A1) + ZELLE("Breite";B1) + ... +ZELLE("Breite";G1)) = 90 Then
With ActiveSheet.PageSetup
.Orientation = xlPortrait
End With
Else
With ActiveSheet.PageSetup
.Orientation = xlLandscape
End With
end if

'Keine Scalierung!
'Range("A1") = Rows("1:7").Height 'OK
'Range("B1") = Columns("1:7").Width 'nOK

SpaltenAnzahl und SpaltenBreiten können unterschiedlich sein.
Bestimmt gibt es schon die Lösung irgendwo, aber ich kann nicht finden oder richtig formulieren.
Vielen Dank und mfG.
Martin
18.10.2024 01:15
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 01:47:20
Onur
ZELLE("Breite";A1) ????
Was soll das denn sein? Zelle ist eine EXCEL-Funktion.
Excel ist Excel und VBA ist VBA.
Wie es richtig geht, weisst du doch (beinahe) schon, denn du hast es weiter unten angewendet:
Range("A1").ColumnWidth
Wozu ist diese Zeile:
integer_LetzteSpalte = ActiveSheet.UsedRange.Columns.Count ' z.B. 7
wenn du die Variable sowieso nicht benutzt?
Anzeige
AW: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 11:49:12
daniel
Hi
für diese Aufgabe würde ich mit der Gesamtbreite der Spalten arbeiten (Width)
der ist hier besser geeignet weil:
- du damit die Gesamtbreite über alle Spalten in einem Schritt ermitteln kannst.
die ColumnWitdh kannst du immer nur für eine Spalte ermitteln und musst addieren.
- die ColumnWidth ein spezieller Wert ist, nämlich die Anzahl an Ziffern, die in Standardschriftart in dieser Spalte vollständig angezeigt werden können. ColumnWith ist auch nur die innere Breite, dh ohne Breite des Rahmens und des Mindestabstands zwischen Rahmen und Zeichen
dh wenn du die ColumnWidth von 100 Spalten addierst, dann ist der Wert kleiner, als wenn du eine einzige Spalte mit der selben Gesamtbreite hast.

du solltest also den Wert: ActiveSheet.Usedrange.Width für diese Entscheidung verwenden

oder wenn es für eine bestimmte Anzahl Spalten sein soll. Columns(1).Resize(, 7).Width

Gruß Daniel
Anzeige
AW: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 11:25:11
Martin
Ich soll "SpaltenAnzahl" irgendwie benutzen, weil sonst ich keine Ahnung habe, wie viele Spalten ich summieren soll.
Wie kann ich weiter bis zur letzten nicht leeren Spalten addieren?
Range("A1").ColumnWidth + Range("B1").ColumnWidth... + ???
Gibt es die Möglichkeit in der Formeln die Spalten-Nr zu benutzen: Column(7).ColumnWidth ?
Dann könnte ich vielleicht da rein Integer einfügen:
For Column(SpaltenAnzahl).ColumnWidth to 7 

Column(SpaltenAnzahl).ColumnWidth = Column(SpaltenAnzahl).ColumnWidth + Column(SpaltenAnzahl).ColumnWidth
Next

Danke für die Antwort.
Anzeige
AW: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 11:33:27
Onur
Nimm
ActiveSheet.UsedRange.Width

Dann hast du nötige Seitenbreite in Punkten - Musst du nur anpassen, bis du die passende Zahl hast, weil diese Zahl viel grösser ist als dein Wert von 90 (90 heisst nämlich die geschätzte Anzahl von Zeichen).
Dann brauchst du nix zu addieren.
z.B.:
If ActiveSheet.UsedRange.Width > XYZ
Anzeige
AW: Automatisch: ActiveSheet.PageSetup.Orientation = xlLandscape
18.10.2024 21:00:31
Martin
Danke! Für die anderen, die das brauchen, die volle Version:
        If ActiveSheet.UsedRange.Width > 514 Then

' ActiveSheet.PageSetup.Orientation = xlPortrait
' Else
ActiveSheet.PageSetup.Orientation = xlLandscape
End If
Anzeige
Gerne !
18.10.2024 23:21:26
Onur
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige