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

Bildschirmansicht vs Seitenansicht - VBA

Bildschirmansicht vs Seitenansicht - VBA
15.08.2013 20:24:54
Matze
Hallo Wissende,
Vorgabe: das Blatt "Beruf"
Nutzbereich der maximal A1:A52
Makro im Blatt Beruf :
Private Sub Worksheet_Activate()
With ActiveSheet
.Rows("8:45").EntireRow.AutoFit
.Rows("8:45").Select
With Selection
.VerticalAlignment = xlCenter 'mittig
.WrapText = True 'Umbruch in der Zelle an
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End With
End Sub
Wird wunderschön abgearbeitet, mit allerdings "nervigen" Sachen :
1. Die "leeren Rows" in haben auch keine Formel sind vorher mit Höhe 4 formatiert.
Nach dem Makroablauf haben die plötzlich alle Höhe 15.(nicht witzig)
2. Die Rows von 8:45 werden selektiert und mit Center mittig in die Zellen gesetzt.
Ebenso der Zeilenumbruch eingeschaltet.Wird wunderbar erledigt.
Die Rows die "NICHT leer" sind haben alle eine Formel die lediglich das Ergebnis pro Row aus einem anderen Tbl.-blatt holt.
Im Blatt Beruf sieht nun alles perfekt aus aber in der Seiten Ansicht sind nun einige Rows dabei die aussehen wie gequetscht (obere kannte und untere Kante der Row)
Merkwürdig ist: Mache ich das in einer ganz neuen Mappe funktioniert das mit Punkt 2
Punkt 1 geht weiterhin auf Höhe 15
So, jetzt bin ich aber mal gespannt was mir da weiterhelfen kann, danke
Matze
Ps.: Die Originaldatei kann u. darf ich nicht einstellen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Umstellungen
16.08.2013 00:52:37
Erich
Hi Matze,
an diesem Code war einiges zu tun. Probier mal

Private Sub Worksheet_Activate()
With Rows("8:45")
.VerticalAlignment = xlCenter 'mittig
.WrapText = True 'Umbruch in der Zelle an
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.AutoFit
End With
End Sub
Ich gehe mal davon aus, dass der Code im Modul eines Tabellenblatts steht.
Dann ist die Angabe "With ActiveSheet" überflüssig bis widersinnig.
Man kann es durch "With Me" ersetzen oder ganz einfach weglassen.
Rows("8:45").EntireRow ist nichts anderes als Rows("8:45")
EntireRow ist hier überlüssig.
Warum überhaupt Rows("8:45").Select? Select wird vermutlich nicht gebraucht.
AutoFit sollte nicht vor, sondern nach Aktionen stehen, die die Zellhöhe beeinflussen können,
also z. B. nach WrapText und MergeCells.
Es ergibt keinen Sinn, Excel erst otimieren zu lassen und dann die Voraussetzungen dafür zu ändern.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Danke Erich,...weitere Frage
16.08.2013 07:51:07
Matze
Morjen,
hatte den Code mit dem Makrorecorder aufgezeichnet, die Reihenfolge allerdings erst mit Autofit und dann die Zellen mittig ausrichten,... nun bin ich schlauer,..
Ich brauche aber noch einen Seitenumbruch, wie baue ich den dort ein?
Der Bereich im Original hat sich nun geändert und ich mache das über C-Button im Blatt Beruf:
Private Sub CommandButton5_Click()
With Rows("8:53)
....
Zeilen 1-40 sollen mit "Blatt auf einer Seite Darstellen" auf Seite 1, dann
der Seitenumbruch mit Zeile 41 auf der 2ten Seite beginnen.
Kannst du mir dabei bitte helfen, danke.
Matze

Anzeige
Seitenumbruch, Zoom
16.08.2013 09:29:09
Erich
Hi Matze,
wo genau ist jetzt eigentlich dein Problem?
Das Einfügen des Seitenumbruchs vor Zeile 41 kannst du per Makrorekorder aufzeichnen,
dann noch die Selects entfernen - fertig.
Was meinst du mit "Blatt auf einer Seite darstellen"?
Meinst du Anpassen - auf x Seiten hoch oder y Seiten breit ausdrucken?
Das ist nicht mit dem manuell gesetzten Seitenumbruch vor Zeile 41 vereinbar. Wer hätte dann das Sagen?
Wenn du auf der ersten Seite 40 Zeilen haben willst, dann
- Seitenumbruch vor A41
- Zoom (Verkleinern auf x% der Normalgröße), wenn die ersten 40 Zeilen nicht auf 1 Seite passen
Das hab ich hier für dich getan:

Sub Makro1()
With Sheets("Tabelle2")       ' oder evtl. ActiveSheet o.ä.
.PageSetup.Zoom = 92                   ' Wert ermitteln
.HPageBreaks.Add Before:=.Range("A41")
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Seitenumbruch, Zoom
16.08.2013 18:39:31
Matze
Danke Erich ,
habe alles in die Tat umgesetzt, klappt bestens.
Matze

Zeilen-AutoFit
16.08.2013 00:55:27
Erich
Hi Matze,
beim Autofit ist es wohl so, dass die Breite leerer Spalten nicht verändert wird,
leere Zeilen hingegen auf Standardhöhe umgestellt werden. It's a feature, not a bug?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

46 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige