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
1404to1408
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

VBA: collection im ganzen Projekt verfügbar, wie?

VBA: collection im ganzen Projekt verfügbar, wie?
22.01.2015 09:11:25
Heiko
Hallo,
ich habe ein Problem das ich einfach nicht gelöst bekomme:
Ich möchte eine Collection einmalig beim Öffnen der Mappe befüllen.
Sie wird danach nicht mehr verändert.
Diese Collection soll dann im gesamten Projekt verfügbar sein.
Egal was ich bis jetzt versucht habe, entweder bricht Excel mit Fehler ab, oder die Collection ist wieder leer.
Wie geht man da am Besten vor?
Danke und Gruß
Heiko
Option Explicit
Public usedNames As Collection
Sub Workbook_Open()
Dim Nam As Name
Set usedNames = New Collection
For Each Nam In ActiveWorkbook.Names
If Left(Nam.RefersTo, 14) = "=Auftragsdaten" Then
usedNames.Add (Nam.Name)
'    Debug.Print nm.Name
End If
Next Nam
End Sub
Sub Hide_and_Unhide_Framesheets(activeFrameSheet)
Dim objWorksheet As Worksheet
For Each objWorksheet In Worksheets
If Left(objWorksheet.Name, 1) = "R" And objWorksheet.Visible = True Then
objWorksheet.Visible = False
End If
Next objWorksheet
If activeFrameSheet  "KEINEN" And activeFrameSheet  "" Then
Worksheets(activeFrameSheet).Visible = xlSheetVisible
End If
HighlightRequiredCells
End Sub
Sub HighlightRequiredCells()
Dim sht As Worksheet
Dim nm As Name
Dim Nam As Variant
Dim usedNames As Collection
For Each sht In ActiveWorkbook.Worksheets
If sht.Visible = xlSheetVisible And sht.Name  "Auftragsdaten" Then
sht.Activate
sht.UsedRange.Select
For Each CELL In Selection
If CELL.HasFormula = True Then
For Each Nam In usedNames
If InStr(1, CELL.Formula, Nam) > 0 Then
Sheets("Auftragsdaten").Range(Nam).Interior.Color = RGB(196, 189, 151)
End If
Next Nam
End If
Next CELL
End If
cells(1, 1).Select
Next sht
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA: collection im ganzen Projekt verfügbar, wie?
22.01.2015 10:01:08
Nepumuk
Hallo Heiko,
öffentliche Variable solltest du nur in Standardmodulen deklarieren. Ansonsten müsstest du immer die Klasse mit angeben.
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige