'entwickelt von Winfried Radner 'e-mail: Wolf.W.Radzinski@onlinehome.de 'Benutzung frei - ohne Gewähr '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '+ '+ '+ splitted_sa.xla ist ein AddIn zur Anlage und Nutzung '+ einer NICHT ZUSAMMENHÄNGENDEN ScrollArea! '+ das AddIn gibt's unter http://www.rendar.de/excel '+ (runterladen, installieren und zusätzlich folgende '+ Codezeilen in einer eigenen XLS eintragen und schon '+ können Mehrbereichs_ScrollAreas in einem Arbeitsblatt '+ verwendet werden) '+ '+ VERSION 2: splitted_sa2.xla '+ im Unterschied zur ersten Version ist es möglich '+ die einzelnen Bereiche auch auf unterschiedlichen '+ Tabellenblättern zu definieren!!! '+ z.B.: '+ Run "splitted_sa2.xla!define_SAs", "Tabelle1!i9", "Tabelle3!j10" '+ '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '+ '+ '+ BEISPIELCode für "DieseArbeitsmappe": '+ delete_SAs '+ löscht alle zuvor definierten Bereiche, somit kann define_SAs '+ auch mehrfach hintereinander aufgerufen werden, d.h. es können '+ jetzt nicht nur 30 Bereiche (=max. Anzahl der Parameterliste), '+ sondern theoretisch 65535 Rechteckbereiche zu "einer einzigen" '+ nicht zusammenhängenden Scrollarea zusammengefaßt werden. '+ define_SAs '+ WENN DAS ADDIN GELADEN IST, dann kann mit folgendem Code '+ in der eigenen XLS Datei eine ScrollArea definiert werden, die '+ aus mehreren Rechteckbereichen besteht und diese Bereiche '+ automatisch in der zuvor definierten Reihenfolge wechselt '+ z.B. die Bereiche a8:a20,b5:c13,a12:f12,e5,f6,h8,i9 und j10 '+ '+ Rechteckbereiche, die nur aus EINER Zelle bestehen können '+ allerdings nur "vorwärts" durchlaufen werden! '+ '+ set_SA '+ wenn der Übergabeparameter <>0, dann wird der entsprechende '+ Bereich aus define_SAs zur aktiven ScrollArea bei =0 ist die '+ ScrollArea="" , d.h. abgeschaltet '+ '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Private Sub Workbook_Open() Run "splitted_sa.xla!delete_SAs" Run "splitted_sa.xla!define_SAs", "a8:a20", "b5:c13", "a12:f12" Run "splitted_sa.xla!define_SAs", "e5", "f6", "h8" Run "splitted_sa.xla!define_SAs", "i9", "j10" Run "splitted_sa.xla!set_SA", 1 End Sub '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '+ '+ Code für das Arbeitsblatt (z.B. Tabelle1) in welchem die '+ Scrollarea gesetzt werden soll: '+ set_acSA '+ prüft, ob die aktive Zelle innerhalb einer Scrollarea liegt '+ und wählt die zugehörige ScrollArea aus. Liegt die aktive '+ Zelle in KEINER ScrollArea, dann wird die 1.Scrollarea '+ (aus der define_SAs Liste) zur aktive Scrollarea, somit hat '+ man immer einen definierten Anfangszustand '+ switch_SAs '+ prüft nur, ob zur nächsten Scrollarea umgeschaltet werden '+ muß und tut dies wenn notwendig '+ '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Private Sub Worksheet_Activate() Run "splitted_sa.xla!set_acSA" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Run "splitted_sa.xla!switch_SAs", Target End Sub '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '+ '+ weitere Prozeduren, die über '+ Run "splitted_sa.xla!" '+ irgendwo im eigenen Code aufgerufen werden können '+ '+ Public Sub set_SA(i As Long) '+ setzt die ScrollArea auf den Bereich, der in der '+ define_SAs Liste als Parameter i definiert wurde '+ '+ Public Sub tempNoSA() '+ schaltet die ScrollArea temporär ein und aus '+ '+ Public Sub ScrollDirection(d As String) '+ bestimmt die Scrollrichtung '+ d kann ein Wert aus "R","RIGHT","RECHTS";"D","DOWN","UNTEN"; '+ "U","O","UP","OBEN";"L","LEFT","LINKS" sein '+ '+ oder man nutzt folgende vordefinierte Sub's '+ Public Sub scrRight() '+ '+ Public Sub scrLeft() '+ '+ Public Sub scrUp() '+ '+ Public Sub scrDown() '+ '+ es folgen Prozeduren der Version 2!!! '+ diese können nur über '+ Run "splitted_sa.xla!" '+ irgendwo im eigenen Code aufgerufen werden '+ '+ Public Sub deleteactiveSA() '+ löscht den aktiven Teil der zusammengesetzen Scrollarea '+ und entfernt diesen aus der Areas Liste '+ '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++