Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1572to1576
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

Mehrere Bereiche als Public deklarieren

Mehrere Bereiche als Public deklarieren
10.08.2017 11:24:51
Henner
Hallo zusammen,
ich bekomme es nicht hin mehrere Bereiche als Public zu deklarieren.
So habe ich es zuletzt erfolglos versucht:

Public rngHead As Range = Range("G7:AK20, G23:AH36")
Ich bin mir nicht sicher ob die Syntax richtig ist und ob die Variable per Set gesetzt werden muss. Vielen Dank für Eure Unterstützung.
Gruss Henner

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Bereiche als Public deklarieren
10.08.2017 11:30:42
Matthias
Hallo
Public rngHead As Range
Sub tt()
Set rngHead = Range("G7:AK20, G23:AH36")
rngHead.Select 'als Test
End Sub
Gruß Matthias
AW: Mehrere Bereiche als Public deklarieren
10.08.2017 14:03:38
Henner
Hallo Matthias
Besten Dank für Deine Antwort. Ich möchte gerne 3 Bereiche global definieren, und diese in verschiedenen Subs verwenden. Ziel der globalen Deklarierung soll sein, dass ich die Bereiche bei allfälligen Veränderungen nicht in jeder Sub anpassen muss. Daher möchte ich die Bereiche nicht in den Subs zuweisen, sondern global für alle Subs. Habe es nun mit Deinem Vorschlag so gelöst, dass jede Sub eine Set-Routine aufruft. Funktionieren würde es so, vllt. gibt es ja noch eine schönere Lösung. Ansonsten ist die gewünschte Funktion erreicht. Merci nochmal und Gruss, Henner

Public rngHead As Range
Public rngBody As Range
Public rngCont As Range
Sub SetRNG()
Set rngHead = Range("G6:AK6,G22:AH22,G38:AK38,G54:AJ54,G70:AK70,G86:AJ86")
Set rngBody = Range("G7:AK20,G23:AH36,G39:AK52,G55:AJ68,G71:AK84,G87:AJ100")
Set rngCont = Range("G6:AK20,G22:AH36,G38:AK52,G54:AJ68,G70:AK84,G86:AJ100")
End Sub


Sub COL_Clear()
Call SetRNG
If Intersect(ActiveCell, rngBody) Is Nothing Then Exit Sub
End Sub
Sub COL_Fill()
Call SetRNG
If Intersect(ActiveCell, rngHead) Is Nothing Then Exit Sub
End Sub
Sub COL_Chnge()
Call SetRNG
If Intersect(ActiveCell, rngCont) Is Nothing Then Exit Sub
End Sub

Anzeige
AW: Mehrere Bereiche als Public deklarieren
10.08.2017 14:16:04
Daniel
Hi
wenn du dir den Aufruf der SetRNG-Routine sparen willst, könntest du die globalen Variablen durch eine Function ersetzen.
Function rngHead() as range
Set rngHead = Range("G6:AK6,G22:AH22,G38:AK38,G54:AJ54,G70:AK70,G86:AJ86")
End Function
Sub COL_Fill()
If Intersect(ActiveCell, rngHead()) Is Nothing Then Exit Sub
End Sub
hier musst du jedoch aufpassen, wenn du mit mehrern Tabellenblättern arbeitest.
in der Function wird der Zellbereich bei jedem Aufruf neu zugewiesen und verwendet dann immer das gerade aktive Blatt (weil nichts angegeben ist)
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige