Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
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

Scrollbereich längerbleibend per VBA definieren

Scrollbereich längerbleibend per VBA definieren
20.08.2013 08:53:50
Jonas
Guten Morgen,
bin ziemlicher Neuling in VBA und konnte mit Hilfe dieses Forums schon einige Probleme lösen, sodass ich mich jetzt dazu entschlossen habe mich zu registrieren.
Zu meiner Frage:
Ich generiere mithilfe eines Macros ein File.
Dieses Setzt sich aus einem Template(enthält Überschriften und Grundstrucktur) und einer Liste von Daten (wird aus Start und Enddatum eines anderen Blattes generiert) zusammen.
Nun definiere ich zur Übersichtlichkeit einen Scrollbereich, sodass zumindest die letzten Daten immer auf dem Dokument ersichtlich sind.
WsSa.ScrollArea = WsSa.Cells(1, 1).Address & ":" & WsSa.Cells(eZ + Amount + 35, lS + 10).Address
  • eZ - erste Zeile der Daten

  • Amount - Anzahl der Daten

  • lS - letzte Spalte der Daten

  • Ich habe die Adressierung über eine Stringzusammensetzung erledigt, da die normale Range/Cells-Adressierung mit den Variablen irgendwie nicht funktioniert hat.
    Das wäre der erste Punkt bei dem ich um Hilfe bitten würde, falls mir jemand eine elegantere Lösung präsentieren könnte wäre ich dankbar.
    Grundsätzlich funktioniert mein Code wunderbar, mein Problem besteht nur darin, dass diese Eingränzung nur solange anhält bis die Mappe geschlossen und wieder geöffnet wird. Daher dachte ich mir ich definieren den Scrollbereich immer beim öffnen des Blattes, aber zum Zeitpunkt des erneuten Öffnens stehen mir die Variablen nicht mehr zur Verfügung.
    Soweit zum zweiten Teil meiner Frage: Gibt es eine Möglichkeit den Scrollbereich anhaltend zu definieren, oder muss ich die Variablen irgendwo zwischenspeichern und bei erneuter Öffnung der Mappe den Bereich neu definieren?
    Danke schon mal im Voraus
    Jonas

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Scrollbereich längerbleibend per VBA definieren
    20.08.2013 10:53:16
    Jonas
    Hallo Boris,
    danke für die schnelle Antwort!
    Ja, dass hab ich mir schon gedacht, dann muss ich mir wohl eine kompliziertere Lösung bauen. ;)
    Oder ich lass es einfach weg, ist auch nicht so essentiell.
    Mit freundlichen Grüßen
    Jonas

    Anzeige
    AW: Scrollbereich längerbleibend per VBA definieren
    20.08.2013 11:26:13
    fcs
    Hallo Jonas,
    hier mein Vorschlag, wie du die Scrollarea setzen kannst. Im Prinzip unabhäng von deinen Variablen.
    Die Scrollarea setzt du in einer separaten Routine, der als Parameter das Tabellenblatt und die zusätzlichen Zeilen/Spalten übergeben werden.
    Diese Routine kannst du dann auch von der Worbook_Open-Prozedur aus starten.
    Gruß
    Franz
    'Code in einem allgemeinen Modul
    Sub aaTest()
    Dim WsSa As Worksheet
    Set WsSa = Worksheets("Tabelle1")
    Call prcScrollBereich_Setzen(WsSa, 35, 10)
    End Sub
    Public Sub prcScrollBereich_Setzen(wks As Worksheet, _
    Optional Zeile_Plus As Long, _
    Optional Spalte_Plus As Long)
    'Setzt Scrollbereich = Zellbereich mit Daten, _
    Optional zusätzliche Zeilen und/oder Spalten
    Dim lngZeile_L As Long, lngSpalte_L As Long
    With wks
    'letzte Zeile und Spalte mit Inhalt (funktioniert bei mindestens einer Zelle _
    mit Inhalt - Fehler bei leerem Blatt)
    lngZeile_L = .Cells.Find(what:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
    lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row
    lngSpalte_L = .Cells.Find(what:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
    lookat:=xlWhole, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column
    .ScrollArea = .Range(.Cells(1, 1), _
    .Cells(lngZeile_L + Zeile_Plus, lngSpalte_L + Spalte_Plus)).Address
    End With
    End Sub
    
    
    'Makro unter diese Arbeitsmappe
    Private Sub Workbook_Open()
    Call prcScrollBereich_Setzen(Me.Worksheets("Tabelle1"), 35, 10)
    End Sub
    

    Anzeige
    AW: Scrollbereich längerbleibend per VBA definieren
    20.08.2013 11:46:28
    Jonas
    Hallo fcs,
    danke für die Antwort.
    Ja das klingt alles Recht einleuchtend, ich wusste nur nicht, dass es so einfach ist die letzte Zeile/Spalte zu suchen.
    Aber eine kurze Frage dazu: Geht das nicht stark auf die Performance wenn das ganze Blatt durchsucht werden muss?
    Tut mir leid, dass ich es noch nicht selbst probiert habe, werde ich am Nachmittag nachholen!
    Mfg Jonas

    AW: Scrollbereich längerbleibend per VBA definieren
    20.08.2013 13:39:24
    Jonas
    Hallo Franz,
    dein Script funktioniert super!
    Danke für deine Hilfe!
    Entspricht ziemlich genau dem was ich wollte (:
    mfg Jonas

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige