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

Makro für Drucken

Makro für Drucken
09.08.2008 13:00:26
Walter
Liebe Excelfreunde,
Trotz vieler Versuche bekomme ich es nicht hin.
Ich möcht nach anklicken des Button "DRUCKEN" die Ladeliste bis zum letzten Eintrag drucken.
Nach anklicken de Button "LÖSCHEN" sollen alle Eingabe aus der Eingabeliste gelöscht werden.
Bitte um Euere H I L F E !!!!
https://www.herber.de/bbs/user/54468.xls
Heißen Dank
Gruß Walter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Drucken und Löschen
09.08.2008 15:20:00
backowe
Hi Walter,
das Schlimmste was es nach meiner Meinung in Excel gibt sind verbundene Zellen. ;)
VBA-Code:
Sub Drucken()
With ActiveSheet
  .PageSetup.PrintArea = "$A$1:" & .Cells(Rows.Count, "E").End(xlUp).Row
  .PrintOut
  .PageSetup.PrintArea = ""
End With
End Sub
Sub Löschen()
Dim Zelle As Range
With ActiveSheet
  For Each Zelle In .Range("D2:D" & .Cells(Rows.Count, "D").End(xlUp).Row)
    If Zelle.Row Mod 2 = 0 And Zelle.MergeCells = True Then
      Zelle.MergeCells = False
      Zelle = ""
      Range(Cells(Zelle.Row, "D"), Cells(Zelle.Row + 1, "D")).Merge
    End If
  Next
  For Each Zelle In .Range("E2:E" & .Cells(Rows.Count, "E").End(xlUp).Row)
    If Zelle.Row Mod 2 = 0 And Zelle.MergeCells = True Then
      Zelle.MergeCells = False
      Zelle = ""
      Range(Cells(Zelle.Row, "E"), Cells(Zelle.Row + 1, "E")).Merge
    End If
  Next
  .Range("F2:F" & .Cells(Rows.Count, "F").End(xlUp).Row).ClearContents
  .Range("H2:H" & .Cells(Rows.Count, "H").End(xlUp).Row).ClearContents
  .Range("J2:J" & .Cells(Rows.Count, "J").End(xlUp).Row).ClearContents
  .Range("L2:L" & .Cells(Rows.Count, "L").End(xlUp).Row).ClearContents
End With
End Sub
Gruss Jürgen

Anzeige
Anpassung
09.08.2008 15:53:00
backowe
Hi Walter,
VBA-Code:
Sub Drucken()
With ActiveSheet
  .PageSetup.PrintArea = "A1:R" & .Cells(Rows.Count, "E").End(xlUp).Row + 1
'  .PrintOut
  .PageSetup.PrintArea = ""
End With
End Sub
Sub Löschen()
Dim Zelle As Range
With ActiveSheet
  For Each Zelle In .Range("D2:D" & .Cells(Rows.Count, "D").End(xlUp).Row)
    If Zelle.Row Mod 2 = 0 And Zelle.MergeCells = True Then
      Zelle.MergeCells = False
      Zelle = ""
      Range(Cells(Zelle.Row, "D"), Cells(Zelle.Row + 1, "D")).Merge
    End If
  Next
  For Each Zelle In .Range("E2:E" & .Cells(Rows.Count, "E").End(xlUp).Row)
    If Zelle.Row Mod 2 = 0 And Zelle.MergeCells = True Then
      Zelle.MergeCells = False
      Zelle = ""
      Range(Cells(Zelle.Row, "E"), Cells(Zelle.Row + 1, "E")).Merge
    End If
  Next
  .Range("F2:F" & .Cells(Rows.Count, "F").End(xlUp).Row).ClearContents
  .Range("H2:H" & .Cells(Rows.Count, "H").End(xlUp).Row).ClearContents
  .Range("J2:J" & .Cells(Rows.Count, "J").End(xlUp).Row).ClearContents
  .Range("L2:L" & .Cells(Rows.Count, "L").End(xlUp).Row).ClearContents
End With
End Sub
Gruss Jürgen

Anzeige
AW: Anpassung
09.08.2008 16:13:00
Daniel
Hi
das sind jetzt immer noch 14 Seiten ausdruck statt einer.
kleiner Tip: zum Testen von Druckmakros ohne Papierverschwendung das .PrintOut nicht auskommentieren, sondern, mit .PrintOut Preview:=True die Druckvorschau aktivieren.
dann sieht man auch gleich, obs funktioniert.
mal ne Frage, wozu soviel Aufwand zum löschen von verbundenen Zellen?
einfach D3 auf D2 ändern und das Löschen funktioniert.
verbundenen Zellen sind nicht so schlimm, wie man glaubt, man muss nur wissen, wie man damit umgeht.
Gruß, Daniel

Meine Eltern haben mir in den sechziger- und ...
09.08.2008 17:06:41
backowe
Hallo Daniel,
... Anfang der siebziger Jahre beigebracht, wenn man Unordnung verursacht, soll man auch gefälligst aufräumen! ;o)
Gruss Jürgen

Anzeige
AW: Makro für Drucken
09.08.2008 15:22:00
Daniel
Hi
wo ist jetzt dein Problem? kannst du keine Buttons anlegen?
das geht doch einfach so:
füge eine normales Grafik-Textfeld oder aus der Symbolleiste "Formular" eine Schaltfläche ein.
dann klickst du mit der Rechten Maustaste drauf und wählst im Kontextmenü "Marko zuweisen..."
dann kommt eine Auswahlliste der bestehenden Makros und du kannst dir aussuchen, welches du über die Schaltfläche starten willst.
dein Druckmakro sollte so aussehen, um nur den notwendigen Bereich zu drucken:

Sub Drucken()
Dim Zeile As Long
Zeile = Sheets("Ladeliste").Columns(3).Find(what:=Sheets("Eingabe").Cells(Rows.Count, 5).End( _
xlUp).Text,  lookat:=xlWhole, LookIn:=xlValues).Row + 1
Sheets("Ladeliste").PageSetup.PrintArea = "$A$1:$H$" & Zeile
Sheets("Ladeliste").PrintOut preview:=True
End Sub


dein Lösch-Makro geht nicht, weil du verschuchst, Zeile 3 zu löschnen, die Zeile 3 ist aber Teilweise mit Zeile 2 verbunden, dh. du hast verbundene Zellen nur Teilweise selektiert, dann kann man die nicht löschen.
probiers mal so:
Range("D2", Cells(Rows.Count, 8)).ClearContents
Gruß, Daniel

Anzeige
AW: Makro für Drucken Nachtrag
09.08.2008 15:36:00
Daniel
Hi
hab noch vergessen, vom Testen die Vorschauoption beim Drucken rauszunehmen.
wenn dich die stört, einfach den Textteil "preview:=True" löschen.
außerdem solltest du beim Lösch-Makro die Spalten vielleicht von 8 auf 13 ändern, um alles zu löschen
Gruß, Daniel

AW: @ Daniel
09.08.2008 15:51:05
hary
Hallo Daniel
Bin noch am lernen. Hatte das loeschen es so geloest:

Range("D2:L229").ClearContents


Ausser das dein Loesch-Makro ab der letzten besetzten Zelle loescht, besteht noch ein anderer gravierender Unterschied?
Gruss Hary

Anzeige
Im Bereich sind verbundene Zellen und Formeln! oT
09.08.2008 15:57:52
backowe

AW: @ Daniel
09.08.2008 16:03:41
Daniel
Hi
ist nicht mein Löschmakro, sondern das von Walter.
habs nur korrigiert, damit es nicht über die Verbundenen Zellen stolpert.
prinzipiell ist kein Unterschied, Walter löscht halt alle Zeilen zwischen der 2. und der Letzten Excelzeile und spart sich damit an dieser Stelle den änderungsaufand, falls es doch mal mehr als 230 Zeilen sind (und muss durch Rows.Count auch bei einem Wechsel auf eine Andere Excelversion nicht eingreifen)
das einzige, was micht gewundert hat, ist , daß der Editor seine Syntax im Range-Befehl so akzeptiert.
aber es funktioniert ja, von daher: wieder was gelernt ;-).
Gruß, Daniel

Anzeige
AW: danke Daniel,backowe owT
09.08.2008 16:07:00
hary
.

AW: danke
10.08.2008 08:28:00
Walter
Danke an Alle,
habe sehr sehr viel aus Eueren Hinweise gelernt ( z.B. Verbunden Zellen)
Habe alles zum Laufen gebracht
Heißen Dank
Schönen Sonntag
wünscht
Rentner Walter aus dem nördlichen Nordhessen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige