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

Seite einrichten per VBA, wie geht das

Seite einrichten per VBA, wie geht das
29.06.2004 16:50:47
Mandy
Hallo,
bei meiner kleinen Datei gibt es ein Druckmenü, in dem ich gern
sagen würde,
Widerholungszeile $1:$1
Widerholungsspalte $A:$A
Der Code, in den ich das gern reinhaben möchte lautet:

Private Sub Druck_cmd_Click()
Application.ScreenUpdating = False
AnfangGefunden = ""
EndeGefunden = ""
Anfangsdatum = Anfang_dtp.Value
Enddatum = Ende_dtp.Value
[a2].Select
For i = 1 To 370
If ActiveCell.Value = Anfangsdatum Then
AnfangGefunden = True
Anfang = ActiveCell.Row
Else
ActiveCell.Offset(1, 0).Select
End If
Next
[a2].Select
For i = 1 To 370
If ActiveCell.Value = Enddatum Then
EndeGefunden = True
Ende = ActiveCell.Row
Else
ActiveCell.Offset(1, 0).Select
End If
Next
If AnfangGefunden = "" Then
MsgBox "Das Anfangsdatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
Exit Sub
End If
If EndeGefunden = "" Then
MsgBox "Das Enddatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
Exit Sub
End If
Druck_frm.Hide
Range(Cells(Anfang, 1), Cells(Ende, 21)).Select
With ActiveSheet
.Unprotect Password:=""
.PageSetup.PrintArea = Selection.Address
.Protect Password:=""
End With
Selection.PrintOut
Application.ScreenUpdating = True
Heute
End Sub

Wo muss ich was einfügen, weiß das jemand?
Gruß Mandy

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seite einrichten per VBA, wie geht das
P@ulchen
Hi Mandy,
ohne den restlichen Code getestet zu haben:


Private Sub Druck_cmd_Click()
   Application.ScreenUpdating = False
   AnfangGefunden = ""
   EndeGefunden = ""
   Anfangsdatum = Anfang_dtp.Value
   Enddatum = Ende_dtp.Value
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Anfangsdatum Then
         AnfangGefunden = True
         Anfang = ActiveCell.Row
      Else
         ActiveCell.Offset(1, 0).Select
      End If
   Next
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Enddatum Then
         EndeGefunden = True
         Ende = ActiveCell.Row
      Else
         ActiveCell.Offset(1, 0).Select
      End If
   Next
   If AnfangGefunden = "" Then
      MsgBox "Das Anfangsdatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   If EndeGefunden = "" Then
      MsgBox "Das Enddatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   Druck_frm.Hide
   Range(Cells(Anfang, 1), Cells(Ende, 21)).Select
   With ActiveSheet
      .Unprotect Password:=""
      .PageSetup.PrintArea = Selection.Address
      .PageSetup.PrintTitleRows = "$1:$1"
      .PageSetup..PrintTitleColumns = "$A:$A"
      .Protect Password:=""
   End With
   Selection.PrintOut
   Application.ScreenUpdating = True
   Heute
End Sub


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
Danke, noch eine Frage - Anpassen nach $1:$1
29.06.2004 17:17:06
Mandy
Hallo Paulchen,
das klappt Supi !, vielen Dank. Nun habe ich noch ein Frage:
Kann ich auch sagen, das er die letzte beschriebene Zelle
in Zeile 1 suchen soll (oder die letzte sichtbare Zelle) und
daran die Seite des auszudruckenden anpassen soll? Ist so
etwas möglich?
Gruß Mandy
AW: Danke, noch eine Frage - Anpassen nach $1:$1
P@ulchen
Hi Mandy,
die letzte nichtleere Zelle in Zeile 1 kannst Du so bestimmen:
iCol = Cells(1, Columns.Count).End(xlToLeft).Column
dann Range(Cells(Anfang, 1), Cells(Ende, 21)).Select
durch Range(Cells(Anfang, 1), Cells(Ende, iCol)).Select
ersetzen.
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
Skalierung Anpassen nach $1:$1
29.06.2004 18:06:04
Mandy
Hallo Paulchen,
hab das eingebaut, was du gesagt hast, aber was macht das überhaupt? Eigentlich
hatte ich gedacht, dass er das letzte Feld sucht und danach die Seite anpasst
zum Ausdruck und danach wieder zurücksetzt, wenn so etwas überhaupt möglich ist.
Aber vielleicht hast du oder ein Anderer einen guten Tip dafür und meine Idee geht
doch zu verwirklichen.
Gruß Mandy
AW: Skalierung Anpassen nach $1:$1
P@ulchen
Hi Mandy,
wo ist die Anpassung ? Zeig mal den aktuellen Code...
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: Skalierung Anpassen nach $1:$1
30.06.2004 16:21:23
Mandy
Hallo Paulchen,
ich habe leider noch keine Skallierung drin, weil ich nicht so richtig weiß,
wo was hinmuss in der Beziehung und ob das was ich will, überhaupt geht.
Wär nicht schlecht, wenn du was findest, wie ich es machen könnte:

Private Sub Druck_cmd_Click()
Application.ScreenUpdating = False
AnfangGefunden = ""
EndeGefunden = ""
Anfangsdatum = Anfang_dtp.Value
Enddatum = Ende_dtp.Value
[a2].Select
For i = 1 To 370
If ActiveCell.Value = Anfangsdatum Then
AnfangGefunden = True
Anfang = ActiveCell.Row
Else
ActiveCell.Offset(0, 0).Select
End If
Next
[a2].Select
For i = 1 To 370
If ActiveCell.Value = Enddatum Then
EndeGefunden = True
Ende = ActiveCell.Row
Else
ActiveCell.Offset(1, 0).Select
End If
Next
If AnfangGefunden = "" Then
MsgBox "Das Anfangsdatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
Exit Sub
End If
If EndeGefunden = "" Then
MsgBox "Das Enddatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
Exit Sub
End If
Druck_frm.Hide
Range(Cells(Anfang, 1), Cells(Ende, iCol)).Select
With ActiveSheet
.Unprotect Password:=""
.PageSetup.PrintArea = Selection.Address
.PageSetup.PrintTitleRows = "$1:$1"
.PageSetup.PrintTitleColumns = "A$:B$"
.Protect Password:=""
End With
Selection.PrintOut
Application.ScreenUpdating = True
Heute
End Sub

Würde mich freuen, wenn das gehen würde.
Gruß Mandy
Anzeige
AW: Skalierung Anpassen nach $1:$1
P@ulchen
Hi Mandy,
probier mal so:


Private Sub Druck_cmd_Click()
   Application.ScreenUpdating = False
   AnfangGefunden = ""
   EndeGefunden = ""
   Anfangsdatum = Anfang_dtp.Value
   Enddatum = Ende_dtp.Value
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Anfangsdatum Then
         AnfangGefunden = True
         Anfang = ActiveCell.Row
      Else
         ActiveCell.Offset(0, 0).Select
      End If
   Next
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Enddatum Then
         EndeGefunden = True
         Ende = ActiveCell.Row
      Else
         ActiveCell.Offset(1, 0).Select
      End If
   Next
   If AnfangGefunden = "" Then
      MsgBox "Das Anfangsdatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   If EndeGefunden = "" Then
      MsgBox "Das Enddatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   Druck_frm.Hide
   iCol = Cells(1, Columns.Count).End(xlToLeft).Column
   Range(Cells(Anfang, 1), Cells(Ende, iCol)).Select
   With ActiveSheet
      .Unprotect Password:=""
      .PageSetup.PrintArea = Selection.Address
      .PageSetup.PrintTitleRows = "$1:$1"
      .PageSetup.PrintTitleColumns = "A$:B$"
      .Protect Password:=""
   End With
   Selection.PrintOut
   Application.ScreenUpdating = True
   Heute
End Sub


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
Skalierung Anpassen Ausdruck 1 Seite
01.07.2004 07:38:54
Mandy
Hallo Paulchen,
das mit der 1. Zeile klappt gut, nur bekomme ich die Skalierung
auf eine Seite nicht hin. Er sucht die letzte Zeile und passt
das dann nicht auf die Seite an sondern verwendet, wie ja auch
logisch irgend wie. Ich habe versucht, das irgend wie umzusetzten,
bekomme aber aus dem folgendem nichts passendes zusammen:
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Hatte überhaupt übersehen, dass ich einen kleinen Fehler bei meiner Kopie-
Datei hatte. Statt ActiveCell.Offset(0, 0).Select muss es natürlich auch
ActiveCell.Offset(1, 0).Select heißen, dass ist aber nicht der Grund. Hast
du schon mal was gehört, wie das mit dem Seite anpassen, damit er Ausdruck
auf eine Seite passt aussieht als allgemeiner Code?

Gruß Mandy
Anzeige
aber jetze...
P@ulchen
Hi Mandy,
so sollte es funktionieren (bei mir läuft es ohne Probleme):


Private Sub Druck_cmd_Click()
   Application.ScreenUpdating = False
   AnfangGefunden = ""
   EndeGefunden = ""
   Anfangsdatum = Anfang_dtp.Value
   Enddatum = Ende_dtp.Value
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Anfangsdatum Then
         AnfangGefunden = True
         Anfang = ActiveCell.Row
      Else
         ActiveCell.Offset(1, 0).Select
      End If
   Next
   [a2].Select
   For i = 1 To 370
      If ActiveCell.Value = Enddatum Then
         EndeGefunden = True
         Ende = ActiveCell.Row
      Else
         ActiveCell.Offset(1, 0).Select
      End If
   Next
   If AnfangGefunden = "" Then
      MsgBox "Das Anfangsdatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   If EndeGefunden = "" Then
      MsgBox "Das Enddatum " & Datum & " wurde nicht gefunden.", vbCritical + vbOKOnly, "Kein Eintrag"
      Exit Sub
   End If
   Druck_frm.Hide
   iCol = Cells(1, Columns.Count).End(xlToLeft).Column
   Range(Cells(Anfang, 1), Cells(Ende, iCol)).Select
   ActiveSheet.Unprotect Password:=""
   With ActiveSheet.PageSetup
      .PrintArea = Selection.Address
      .PrintTitleRows = "$1:$1"
      .PrintTitleColumns = "$A:$B"
      .Zoom = False
      .FitToPagesWide = 1
      .FitToPagesTall = 1
   End With
   ActiveSheet.Protect Password:=""
   Selection.PrintOut
   Application.ScreenUpdating = True
   Heute
End Sub


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
Große Freude und Danke ! :-)
01.07.2004 09:52:25
Mandy
Hallo Paulchen,
das ist Supi, es funktioniert wunderbar, vielen Dank!!!
Gruß Mandy

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige