Anzeige
Archiv - Navigation
1388to1392
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

Seiten ein- bzw ausblenden

Seiten ein- bzw ausblenden
30.10.2014 13:30:06
Jochen
Hallo Excel Freunde,
in meiner Tabelle, siehe Anlage, blende ich mit einem Drehfeld Seiten ein- bzw. aus. Besteht die Möglichkeit mein Makro so umzuschreiben das es erkennt in welcher Zelle (hier E58, es ist immer die Spalte “E“) der letzte Eintrag ist und dann entsprechend die Seitenzahl anpasst. Es sollten aber immer ganze Seiten zu sehen sein. Auf der letzten Seite sind immer Unterschriftenfelder.
Ich hoffe ich konnte mein Problem einigermaßen erklären.

Die Datei https://www.herber.de/bbs/user/93460.xlsm wurde aus Datenschutzgründen gelöscht


Danke schon einmal.
Gruß
Jochen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seiten ein- bzw ausblenden
30.10.2014 15:53:52
fcs
Hallo Jochen,
probiere mal folgendes.
Soweit freie Zeilen vorhanden sind wird der Unterschriftenbereich unten auf der letzten Seite angezeigt,
Gruß
Franz
' Eingabe Zeilen für Maste ausblenden
Private Sub SpinButton1_SpinUp()
Call SeiteAusblenden
End Sub
' Eingabe Zeilen für Maste einblenden
Private Sub SpinButton1_SpinDown()
Call SeiteEinblenden
End Sub
Sub SeiteEinblenden()
'Blendet nach der letzten benutzten Zeile in Spalte E eine leere Seite ein
Dim Zeile_E As Long, Seite As Long
Dim Zeile1 As Long, Zeile2 As Long, Zeile3 As Long
Zeile1 = 22
Zeile3 = 1127
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
Rows.Hidden = False
Zeile_E = IIf(Cells(Zeile3, 5)  "", Zeile3, Cells(Zeile3 + 1, 5).End(xlUp).Row)
If Zeile_E > Zeile3 - 28 Then
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
'do nothing (alle eingeblendet)
ElseIf Zeile_E = 46 - 3, 0, 3)
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
Else
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0) + 1
Zeile2 = 46 + (Seite - 1) * 31 - IIf(Zeile_E >= 46 + (Seite - 1) * 31 - 3, 0, 3)
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
End If
Range("J7") = Seite
Application.ScreenUpdating = True
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub SeiteAusblenden()
'Blendet nach der letzten benutzten Zeile in Spalte E alle leeren Seite aus
Dim Zeile_E As Long, Seite As Long
Dim Zeile1 As Long, Zeile2 As Long, Zeile3 As Long
Zeile1 = 22
Zeile3 = 1127
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
Rows.Hidden = False
Zeile_E = IIf(Cells(Zeile3, 5)  "", Zeile3, Cells(Zeile3 + 1, 5).End(xlUp).Row)
If Zeile_E > Zeile3 - 28 Then
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
'do nothing (alle eingeblendet)
ElseIf Zeile_E = 46 - 3, 0, 3)
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
Else
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
Zeile2 = 46 + (Seite - 1) * 31 - IIf(Zeile_E >= 46 + (Seite - 1) * 31 - 3, 0, 3)
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
End If
Range("J7") = Seite
Application.ScreenUpdating = True
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Anzeige
AW: Seiten ein- bzw ausblenden
30.10.2014 16:43:33
Jochen
Hllo Franz, das ist soweit schon sehr gut aber:
Es muß noch berücksichtigt werden das wenn die letzten 3 Zeilen beschrieben werden sollte noch eine ganze Seite hinzugegeben werden , ist nur für Auge.
Ich hoffe es ist verständlich beschrieben.
Danke
Jochen

AW: Seiten ein- bzw ausblenden
31.10.2014 08:34:14
fcs
Hallo Jochen,
mit den folgenden Anpassungen sollte der Unterschriftenbereich auch auf der letzten ggf. leeren Seite unten sein.
Gruß
Franz
' Eingabe Zeilen für Maste ausblenden
Private Sub SpinButton1_SpinUp()
Call SeiteAusblenden
End Sub
' Eingabe Zeilen für Maste einblenden
Private Sub SpinButton1_SpinDown()
Call SeiteEinblenden
End Sub
Sub SeiteEinblenden()
'Blendet nach der letzten benutzten Zeile in Spalte E eine leere Seite ein
Dim Zeile_E As Long, Seite As Long
Dim Zeile1 As Long, Zeile2 As Long, Zeile3 As Long
Zeile1 = 22
Zeile3 = 1127
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
Rows.Hidden = False
Zeile_E = IIf(Cells(Zeile3, 5)  "", Zeile3, Cells(Zeile3 + 1, 5).End(xlUp).Row)
If Zeile_E > Zeile3 - 28 Then
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
'do nothing (alle eingeblendet)
ElseIf Zeile_E = 46 - 3 Then
Zeile2 = Zeile2 + 28
Seite = Seite + 1
Else
Zeile2 = Zeile2 - 3
End If
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
Else
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0) + 1
Zeile2 = 46 + (Seite - 1) * 31
If Zeile_E >= 46 + (Seite - 1) * 31 - 3 Then
Zeile2 = Zeile2 + 28
Seite = Seite + 1
Else
Zeile2 = Zeile2 - 3
End If
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
End If
Range("J7") = Seite
Application.ScreenUpdating = True
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub SeiteAusblenden()
'Blendet nach der letzten benutzten Zeile in Spalte E alle leeren Seite aus
Dim Zeile_E As Long, Seite As Long
Dim Zeile1 As Long, Zeile2 As Long, Zeile3 As Long
Zeile1 = 22
Zeile3 = 1127
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
Rows.Hidden = False
Zeile_E = IIf(Cells(Zeile3, 5)  "", Zeile3, Cells(Zeile3 + 1, 5).End(xlUp).Row)
If Zeile_E > Zeile3 - 28 Then
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
'do nothing (alle eingeblendet)
ElseIf Zeile_E = 46 - 3 Then
Zeile2 = Zeile2 + 28
Seite = Seite + 1
Else
Zeile2 = Zeile2 - 3
End If
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
Else
Seite = 1 + Application.WorksheetFunction.RoundUp((Zeile_E - 45) / 31, 0)
Zeile2 = 46 + (Seite - 1) * 31 - IIf(Zeile_E >= 46 + (Seite - 1) * 31 - 3, -28, 3)
If Zeile_E >= 46 + (Seite - 1) * 31 - 3 Then
Zeile2 = Zeile2 + 28
Seite = Seite + 1
Else
Zeile2 = Zeile2 - 3
End If
Range(Rows(Zeile2), Rows(Zeile3)).EntireRow.Hidden = True
End If
Range("J7") = Seite
Application.ScreenUpdating = True
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Anzeige
AW: Seiten ein- bzw ausblenden
31.10.2014 09:08:26
Jochen
Guten Morgen Franz, danke für Deine Mühen. Habe das Makro ausgetauscht, jetzt werden 28 Zeilen zuwenig ausgeblendet.
Gruß
Jochen

AW: Seiten ein- bzw ausblenden
31.10.2014 11:39:01
fcs
Hallo Jochen,
ersetze in Sub SeiteAusblenden
die Zeile
    Zeile2 = 46 + (Seite - 1) * 31 - IIf(Zeile_E >= 46 + (Seite - 1) * 31 - 3, -28, 3)
durch
    Zeile2 = 46 + (Seite - 1) * 31

Gruß
Franz

AW: Seiten ein- bzw ausblenden
31.10.2014 14:10:02
Jochen
Hallo Franz, Klappt hervorragen!!!
Danke noch einmal und ein schönes Wochenende.
Gruß
Jochen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige