Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

fortführung eines makros

fortführung eines makros
13.06.2007 11:10:00
dieter
Hallo Forum, Hallo Matthias L.
ich komme mit diesem makro nicht weiter.
Der obere teil funktoniert (logisch,ist ja von euch profis)
ich möchte erreichen,dass es im anschluss das Gefundene auch druckt.
Und dazu ist der untere Teil wohl ungeeignet
Option Explicit

Sub print_shippinglist()
Dim C As Variant, X As Variant
For Each C In ActiveSheet.UsedRange
If C.Value  "" Then X = C.Address
Next
MsgBox "letzter Wert im Bereich steht in Zelle " & X
-----------------------------------------------unterer teil:
'    Range("A1:O65").Select
'    ActiveSheet.PageSetup.PrintArea = "$A$1:$O$65"
'    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub


danke für euer gehirnschmalz
gruss dieter

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: fortführung eines makros
13.06.2007 11:14:33
Hajo_Zi
Hallo Dieter
-----------------------------------------------unterer teil:
' Range("A1:O65").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$O$" & X
ActiveWindow.SelectedSheets.PrintOut

AW: fortführung eines makros
13.06.2007 11:25:23
dieter
Hallo Hajo_Zi,
ein fettes Danke! dafür.
Allerdings kommt die meldung: Die PrintArea-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden (Laufzeitfehler 1004)
wenn ich debugge kommt dies: ActiveSheet.PageSetup.PrintArea = "$A$1:$O$" & X
gruss dieter

AW: fortführung eines makros
13.06.2007 11:31:29
Hajo_Zi
Hallo Dieter,
X ist schon eine Zahl 0 ?
Die Tabelle ist nicht zufällig geschützt?
Gruß Hajo

Anzeige
AW: fortführung eines makros
13.06.2007 11:47:05
dieter
Hallo Hajo_Zi,
ist nicht geschützt.
Allerdings entstehen die Leerzeichen immer wieder.Und dann läuft es doch nicht...
gruss dieter

AW: fortführung eines makros
13.06.2007 11:51:00
Hajo_Zi
Hallo Dieter,
Option Explicit

Sub print_shippinglist()
Dim C As Variant, X As Variant
For Each C In ActiveSheet.UsedRange
If C.Value  "" Then X = C.Address
Next
MsgBox "letzter Wert im Bereich steht in Zelle " & X
'-----------------------------------------------unterer teil:
'    Range("A1:O65").Select
With ActiveSheet
.PageSetup.PrintArea = "$A$1:" & X
.PrintOut
End With
End Sub


Gruß Hajo

Anzeige
AW: fortführung eines makros
13.06.2007 12:35:51
dieter
Hallo Hajo,
muss bei: Range("A1:O65").Select
mit der A1:O65 etwas geändert werden? die legt ja fest. während der übrige teil des makros ja angibt : "letzter Wert im Bereich steht in Zelle " & X .
(ganz schön schwierig,find ich)
zusatzfrage?: was müsste ich schreiben,damit das makro den/einen festgestellten bereich löscht
gruss dieter

AW: fortführung eines makros
13.06.2007 12:47:02
Hajo_Zi
Hallo Dieter,
die Zeile wird in meinem Code nicht ausgeführt. Auf Select usw kann in VBA zu 99,9% verzichtet werden.
Range("$A$1:" & X).Delete ' mal ohne Testung
Gruß Hajo

Anzeige
AW: fortführung eines makros
13.06.2007 13:16:13
dieter
Hallo Hajo,
:die Zeile wird in meinem Code nicht ausgeführt.
wird das durch das vorangestellte Hochkomma verhindert ?
Noch ne Frage: mit dem code möchte ich eine zweite tabelleblatt drucken lassen.
bedingungen sind bis auf den sheet-namen die gleichen.
wo im code muss der sheetname stehen?
Dank dir auch dafür.
gruss dieter

AW: fortführung eines makros
13.06.2007 13:24:48
Hajo_Zi
Hallo Dieter.
ja durch ' wird die Zeile nicht ausgeführt.
Im Code ist nicht Explicit ein Tabellennamen angegeben. Er wird immer in der Aktiven Tabelle ausgeführt.

Anzeige
AW: fortführung eines makros
13.06.2007 13:41:00
dieter
Hallo Hajo,
"Im Code ist nicht Explicit ein Tabellennamen angegeben. Er wird immer in der Aktiven Tabelle ausgeführt."
So ist es nicht möglich explicit einen Namen anzugeben?
Demnach müsste ich erst den tabellenblatt-reiter klicken und dann das makro starten?
Was ich erreichen will ist,das zweite Blatt die "Kopie" drucken; die "Kopie" hat einige Spalten weniger
gruss dieter

AW: fortführung eines makros
13.06.2007 13:47:00
Hajo_Zi
Hallo Dieter,
Du möchtest also nicht unterschiedliche Blätter drucken, sondern immer die Tabelle Kopie?
Option Explicit

Sub print_shippinglist()
Dim C As Variant, X As Variant
With Worksheets("Kopie")
For Each C In .UsedRange
If C.Value  "" Then X = C.Address
Next
MsgBox "letzter Wert im Bereich steht in Zelle " & X
'-----------------------------------------------unterer teil:
'    Range("A1:O65").Select
.PageSetup.PrintArea = "$A$1:" & X
.PrintOut
End With
End Sub



Anzeige
AW: fortführung eines makros
13.06.2007 14:40:11
dieter
Hallo Hajo,
"Du möchtest also nicht unterschiedliche Blätter drucken, sondern immer die Tabelle Kopie?"
Jein.
Es handelt sich um Packlisten. Eine bleibt "bei mir" die Andere (die Kopie) geht mit in die Sendung.
Und auf der Kopie stehen dann u.a. keine Kundennamen.
dafür soll das sein.
Es soll schon -ich sag mal Blatt1 und BlattKopie gedruckt werden. Aber ich würde die lieber getrennt ansprechen/drucken
Und wenn die Liste gedruckt ist, wird die mit dem makro geleert und eine neue wird begonnen.
gruss dieter

AW: fortführung eines makros
13.06.2007 14:51:25
Hajo_Zi
Hallo Dieter,
dann Frage doch mit einer Inputbox den Tabellennamen ab. Die Änderung müßtest Du ja reinbekommen.

Anzeige
AW: fortführung eines makros
13.06.2007 17:49:37
dieter
"dann Frage doch mit einer Inputbox den Tabellennamen ab.
Inputbox? Wat dat denn? Hajo, willst du mich fertig machen?
gruss dieter

AW: fortführung eines makros
13.06.2007 18:18:34
Hajo_Zi
Hallo Dieter,
Du hast geschrieben VBA Kenntnisse. Inputbox sehe ich als Grundlage.
Option Explicit

Sub print_shippinglist()
Dim C As Variant, X As Variant
Dim StTabelle As String
StTabelle = InputBox("Bitte Tabellennamen eingeben!")
If StTabelle = "" Then Exit Sub
On Error GoTo Fehler
With Worksheets(StTabelle)
For Each C In .UsedRange
If C.Value  "" Then X = C.Address
Next
MsgBox "letzter Wert im Bereich steht in Zelle " & X
'-----------------------------------------------unterer teil:
'    Range("A1:O65").Select
.PageSetup.PrintArea = "$A$1:" & X
.PrintOut
End With
Fehler:
End Sub


Gruß Hajo

Anzeige
AW: fortführung eines makros
13.06.2007 18:58:30
dieter
Hajo, fetten dank für deine Geduld.
damit wird´s wohl klappen.
"Kaum Excel/VBA-Kenntnisse" niedriger kann ich nicht anklicken.
danke nochmals.
dieter

AW: fortführung eines makros
14.06.2007 17:54:57
dieter
Hallo Hajo.
ich verwende dein obiges makro.
Das zweite Blatt erstellt eine weitestgehende Kopie des Ersten.
Nur habe ich die zellen in Tabelle2 miteinander verlingt durch =Tabelle1!A500.
Da das makro ja feststellt, in welcher zelle der letzte Eintrag ist, wird mir hier immer A500 angegeben und dann immer 9 seiten ausgedruckt. Was tun? Gibt es eine andere Methode Zellinhalte in ein Arbeitsblatt zu kopieren; derart dass wenn in Blatt1 der Eintrag bis O57 geht, dieser auf Blatt 2 auch nur bis 057 geht?
danke und gruss
dieter
(wat probleme)

Anzeige
AW: fortführung eines makros
14.06.2007 19:00:13
Hajo_Zi
Hallo Dieter,
dieser Beitrag sagt mir absolut nichts.
Gruß Hajo

AW: fortführung eines makros
14.06.2007 19:56:00
dieter
Hallo Hajo, es bezieht sich hierauf: https://www.herber.de/forum/archiv/876to880/t877566.htm
und dein posting vom 13.06. 18:18Uhr:

Sub print_shippinglist()
Dim C As Variant, X As Variant
Dim StTabelle As String
StTabelle = InputBox("Bitte Tabellennamen eingeben!")
If StTabelle = "" Then Exit Sub
On Error GoTo Fehler
With Worksheets(StTabelle)
For Each C In .UsedRange
If C.Value  "" Then X = C.Address
Next
MsgBox "letzter Wert im Bereich steht in Zelle " & X
'-----------------------------------------------unterer teil:
'    Range("A1:O65").Select
.PageSetup.PrintArea = "$A$1:" & X
.PrintOut
End With
Fehler:
End Sub


Nun meine Antwort :
Hallo Hajo.
ich verwende dein obiges makro.
Das zweite Blatt erstellt eine weitestgehende Kopie des Ersten.
Nur habe ich die zellen in Tabelle2 miteinander verlingt durch =Tabelle1!A500.
Da das makro ja feststellt, in welcher zelle der letzte Eintrag ist, wird mir hier immer A500 angegeben und dann immer 9 seiten ausgedruckt. Was tun? Gibt es eine andere Methode Zellinhalte in ein Arbeitsblatt zu kopieren; derart dass wenn in Blatt1 der Eintrag bis O57 geht, dieser auf Blatt 2 auch nur bis 057 geht?
danke und gruss
dieter
(wat probleme)

Anzeige
AW: fortführung eines makros
15.06.2007 06:43:41
Hajo_Zi
Hallo Dieter,
dieses M akro erstellt keine Kopie einer Tabelle, sonder kpiert Daten in eine vorhandene Tabelle.
Excel stellt ab und zu die letzte Zeile nicht korrekt fest falls am Ende Zeilen gelöscht wurden, da hilft nur speichern.
Gruß Hajo

AW: fortführung eines makros
15.06.2007 07:09:00
dieter
Moin Hajo,
ich meine, es kopiert nicht,es druckt aus.Aber: das makro ist ja in Ordnung! Das problem ist der Inhalt meines zweiten Blattes; weil dort der letzte Eintrag in Zelle O 500 ist ( =Blatt1!A500)
Somit wird blatt 2 immer bis zeile 500 gedruckt; egal ob ob blatt 1 bei zeile 80 ist oder 150.
Meine Frage: gibt es einen anderen Copybefehl als "=Blatt1!Zellangabe "
frühe Grüsse
dieter

AW: fortführung eines makros
15.06.2007 08:11:35
Hajo_Zi
Hallo Dieter,
mit der Schleife

For Each C In .UsedRange
If C.Value  "" Then X = C.Address
Next


stellts Du die letzte Zeile im Benutzten Bereich fest und danach wird der Druckbereich festgelegt. Ist das nicht mehr so?
Gruß Hajo

AW: fortführung eines makros
dieter
Hallo Hajo,
"und danach wird der Druckbereich festgelegt. Ist das nicht mehr so?"
doch.das ist und bleibt auch so.
weil ich aber auf dem 2.Blatt in zelle 500 den Eintrag habe: =Blatt1!O500 druckt es mir das zweite Blatt auch immer bis zeile 500 aus, egal ob dort ein Wert aus Blatt1 zelle O 500 übernommen wird oder nicht.
Ich muss also die Angabe =blatt1!O500 dort löschen.Nur was mache ich dann, wenn auf blatt1 tatsächlich in O500 ein Eintrag steht?

AW: fortführung eines makros
13.06.2007 11:30:45
dieter
Es geht,es geht.
Ich habe die leerstellen bei & und x entfernt...
danke.
dieter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige