Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1336to1340
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

Fehler bei Druckbereich

Fehler bei Druckbereich
28.10.2013 14:29:17
Albert
Hallo zusammen,
ich bin am Verzweifeln... Was stimmt an dieser Codezeile nicht?
Der im Internet verfügbare Code wurde von mir einfach und die entsprechenden Zeilen bzw. Spalten verändert.
Sub Druckbereich_einfügen()
Dim Seite3 As String
'Sheet anwählen
Sheets("3.Test").Select
Sheets("3.Test").Activate
'Range auswählen
'Seite3 = Range("A1:E" & Range("E1000").End(xlUp).Row).Select
'ActiveSheet.PageSetup.PrintArea = x
Sheets("3.Test").PageSetup.PrintArea = Range("A1:E" & Range("E1000").End(xlUp).Row).Select
End Sub
Bitte helft mir weiter, bevor ich den Mist aus dem Fenster werf.
Gruß
A.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Druckbereich
28.10.2013 14:46:50
EtoPHG
Hallo Albert,
Den Mist darfst du ruhig aus dem Fenster werfen. Das grenzt an kriminelle VBA-Verschmutzung ;-)
    With ThisWorkbook.Worksheets("Tabelle1")
.PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(.Rows.Count, 5).End(xlUp)).Address
End With
Gruess Hansueli

P.S. Alle anderen Codezeilen zum Fenster...
28.10.2013 14:47:56
EtoPHG

Einen hab ich noch...
28.10.2013 14:59:17
Albert
Servus Hansueli, servus EtoPHG,
erstmal danke für die aufbauenden Worte und euren Hilfscode. Hat mir sehr gut weitergeholfen.
Dann ist wohl dieser Code auch falsch?!
'Sheet anwählen
Sheets("3.Ref - 3.2.Maße - 3.3.Matrix").Select
'Worksheet für letzte Spalte definieren
Set WkSh_Z = ThisWorkbook.Worksheets("3.Ref - 3.2.Maße - 3.3.Matrix")
'Maximale Zeilenanzahl ermitteln
'Letzte Spalte suchen
nSpalte_Z = WkSh_Z.Cells(4, Columns.Count).End(xlToLeft).Column
'Letzte Zeile suchen
nZeile_Z = Range("M1000").End(xlUp).Row
'Bereich markieren
With WkSh_Z
nSpalte_Z = .Cells(4, .Columns.Count).End(xlToLeft).Column
'Letzte Zeile suchen
nZeile_Z = .Range("M1000").End(xlUp).Row 'Bringt den Wert 6
With ThisWorkbook.Worksheets("3.Ref - 3.2.Maße - 3.3.Matrix")
.PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(nZeile_Z, nSpalte_Z)).Select
End With
End With
Gruß
A.

Anzeige
Und noch einen drauf...
28.10.2013 15:07:11
EtoPHG
Albert,
Wie gesagt: Vergiss all den .Select/Activate Schrott!! und in deinem obigen Fall den gesamten Code, ausser:
With ThisWorkbook.Worksheets("3.Ref - 3.2.Maße - 3.3.Matrix")
.PageSetup.PrintArea = .UsedRange.Address
End With

Ich weiss nicht wer dich auf die Idee mit .Select und dann Set Objekt = und dann höchsten 1000 Zeilen und dann wieder .Select gebracht hat. Vergiss das alles, BITTE!
Ich bekomm sonst Anfälle ;-)
Gruess Hansueli

AW: Und noch einen drauf...
28.10.2013 15:14:32
Albert
Hi Hansueli,
Das ist ja mein Problem. Im zuletzt genannten Bereich kenne ich ja den Umfang der verwendeten Zeilen nicht.
Es handelt sich hierbei um eine Tabelle, die sowohl in die Breite als auch in die Länge wächst.
Wie soll ich ermitteln, was die letzte Spalte bzw. die letzte Zeile ist?
.UsedRange hatte ich schon mal, aber es gab nicht das gewünschte Resultat.
Ich gebe mir Mühe, umständliche Sachen wegzulassen und zeige mich offen gegenüber "Standards". In meiner Not hab ich hald was ausprobiert.
Danke trotzdem
A.

Anzeige
AW: Und noch einen drauf...
28.10.2013 15:25:10
EtoPHG
Hallo Albert,
Zitat:".UsedRange hatte ich schon mal, aber es gab nicht das gewünschte Resultat.
Dann war es höchstens so, dass UsedRange einen zu grossen Bereich zurückgeben hat.
Wenn du Spalten / Zeilen schon einmal benutzt hast und diese dann nur vom Inhalt befreist, sind sie immer noch Bestandteil von UsedRange.
Lokalisierst du aber mal manuell deine letzte benutzte Zelle und löschst (DELETE) alle Spalten rechst davon und alle Zeilen unter dieser, dann ist nach einer Speicherung der Mappe UsedRange wieder richtiggestellt. Die 'Übergrösse' von Usedrange entsteht also meist durch manuelles Gefummel in Zellen ausserhalb des angestrebten Datenbereichs!
Zum Themas .Select und .Activate, lies bitte diesen Artikel!
Gruess Hansueli

Anzeige
Dankeschön! owT
28.10.2013 15:29:07
Albert
s

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige