Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Nach Datum Druckbereich einstellen

Betrifft: Nach Datum Druckbereich einstellen von: Harald S
Geschrieben am: 11.09.2004 15:25:26

Hallo
habe heute am Vormittag geposte[Makro wird langsamer]

habe versucht dieses Problem zu lösen, ist mir jedoch nicht gelungen.
nach einigen Stunden Suche im Herberforum hab ich einenSourcecode gefunden, der excellent für doese Aufgabe ist.

der Haken jedoch daran ist,das der Druckbereich zwar bis zum angegebenen Enddatum eingestellt wird, ich habe aber Mehrere gleiche Enddatums, die zwar sortiert sind. Aber der Code nimmt mir in diesem Fall nur das 1. Enddatum und die anderen nicht.

Weis wer Rat

Sub DatePrint()
   Dim varStart As Variant, varEnd As Variant
   Dim dStart As Double, dEnd As Double
   Dim sStart As String, sEnd As String
    sStart = InputBox("Start:")
   If sStart = "" Then Exit Sub
   sEnd = InputBox("Ende:")
   If sEnd = "" Then Exit Sub
   On Error Resume Next
   dStart = CDbl(DateValue(sStart))
   dEnd = CDbl(DateValue(sEnd))
   If Err > 0 Then
      Err.Clear
      MsgBox "Ungültige Eingaben!"
      Exit Sub
   End If
   If dEnd < dStart Then
      Beep
      MsgBox "Das Enddatum darf nicht kleiner " & _
         "als das Startdatum sein!"
   End If
   varStart = Application.Match(dStart, Columns(5), 0)
   varEnd = Application.Match(dEnd, Columns(5), 0)
   ActiveSheet.PageSetup.PrintArea = _
      Range(Cells(varStart, 5), Cells(varEnd, 50)).Address 'hier hänge ICH
   ActiveSheet.PrintPreview
End Sub

  


Betrifft: AW: Nach Datum Druckbereich einstellen von: Ramses
Geschrieben am: 11.09.2004 15:48:30

Hallo

Benutze entweder die "Find"-Methode bis "Find" Nothing ist, oder bau dir eine Schleife die Spalte D bis zum letzten Eintrag durchfräst

'Neu
Dim lRow as Long

...
End If
varStart = Application.Match(dStart, Columns(5), 0)
varEnd = Application.Match(dEnd, Columns(5), 0)
For i = 1 to cells(65536,5).end(xlup).Row
If Cells(i,5).Value = dEnd Then
lRow = i
End if
Next i
ActiveSheet.PageSetup.PrintArea = _
Range(Cells(varStart, 5), Cells(lRow, 50)).Address
ActiveSheet.PrintPreview
End Sub

Mit dieser Schleife wird auf jeden Fall der letzte Eintrag des Datums gefunden.

Gruss Rainer


  


Betrifft: AW: Nach Datum Druckbereich einstellen von: Harald S
Geschrieben am: 11.09.2004 16:32:41

Hallo Ramses
hab nun den Code vervollständigt und es funktioniert einwandfrei.

werd mich aber trotzdem noch mit der " Find-Methode" befassen um auch diese mal zu kapieren.

DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


  


Betrifft: Merci :-) Geschlossen o.T. von: Ramses
Geschrieben am: 11.09.2004 16:45:58

...


 

Beiträge aus den Excel-Beispielen zum Thema "Nach Datum Druckbereich einstellen"