Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array für mehrere Modulle

Array für mehrere Modulle
17.02.2007 14:00:00
Hans
Hallo,
ich möchte aus mehreren Modullen und UserForms auf ein und dasselbe Array zugreifen. Da ich das Array oft ändern bzw. erweitern muß, möchte ich es für alle allgemein vorsehen, um nicht jedes mal in den einzelnen Modullen und UserForms Änderungen vorzunehmen - kann man evtl. aus einer Liste aus einem Tabellenblatt dieses Array erstellen, wenn ja wie.
Mit der Pubic-Eigenschaft habe ich das irgendwie nicht hinbekommen. Geht das überhaupt?!?
Hier das benötigte Array:
Name = Array("Name1", "Name2", "Name3", "Name4", "Name5")
Gruß und schon mal danke für die Hilfe
Hans

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array für mehrere Modulle
17.02.2007 14:22:57
Peter
Hallo Hans,
in einem allgemeinen Modul definierts du: Public aName As Variant
unter DieseArbeitsmappe, dort unter

Private Sub Workbook_Open()
aNamen = Array("Name1", "Name2", "Name3", "Name4", "Name5")
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Array für mehrere Modulle
17.02.2007 14:22:57
Daniel
Hallo
wenn du das Array Modul-übergreifend einsetzen willst, mußt du es in einem allgemeinen Modul aber oberhalb der Prozeduren (dh. ganz oben, direkt unter OPTION EXPLICIT) als PUBLIC deklarieren
(die Pubic-Eigenschaft geht hier nicht, den sie bezeichnet genau das gegenteil ;-))
die Zuweisung der Werte kann dann in irgendeinem Makro erfolgen, es muß nur gewährleistet sein, daß die Zuweisung auf jeden Fall vor der ersten Verwendung des Arrays erfolgt.
Hier mal ein kleines Beispiel:

Option Explicit
Public arrTest
Sub Makro1()
arrTest = Array("A", "B", "C")
Call makro2
End Sub
Sub makro2()
Dim a
For Each a In arrTest
Cells(65000, 1).End(xlUp).Offset(1, 0).Value = a
Nex
End Sub

wenn sich das Array die Daten aus einer Exceltabelle holen soll, geht das auch ganz einfach mit
arrTest = range("A1:A14").value
das Array wird dabei automatisch auf die passenden Grösse dimensioniert.
Gruß, Daniel
Anzeige
AW: Array für mehrere Modulle
ransi
Hallo Hans
Versuch es mal so:


Unter dieseArbeitsmappe das hier:
Option Explicit
Private Sub Workbook_Open()
Call mach_Public
End Sub
Und in ein Modul das hier:
Option Explicit
Public arrName
Public Sub mach_Public()
arrName = Array("Name1""Name2""Name3""Name4""Name5")
End Sub

ransi
Anzeige
AW: Array für mehrere Modulle
17.02.2007 15:45:00
Hans
Aller guten Dinge sind drei. Dank euch - funktioniert super :o)
Daniel:

Sub Makro1()
arrTest = Sheets("Tabelle2").Range("A1:A11").Value
End Sub

-> funktioniert leider nicht. Was mach ich falsch?!?
Gruß Hans
AW: Array für mehrere Modulle
17.02.2007 15:52:20
Daniel
Hallo
keine Ahnung, bei mir gehts.
allerdings sind dein Angaben ein bisschen dürftig.
falls du mit OPTION EXPLICIT arbeitest (was zu empfehlen ist), wo und wie hast du arrTest deklariert?
Gruß, Daniel
AW: Array für mehrere Modulle
17.02.2007 16:14:00
Peter
Hallo Hans,
noch eine Variante:
Option Explicit
Public arrTest As Variant

Sub Alter_Test()
arrTest = Sheets("Tabelle2").Range("A1:K1").Value
MsgBox arrTest(1, 5)
End Sub

Ich meine die Tabelleneinträge dürfen nur waagerecht vorkommen.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Array für mehrere Modulle
17.02.2007 16:19:00
Peter
Hallo Hans,
so geht es mit vertikalen Tabelleneinträgen:

Sub Erneuter_Versuch()
arrTest = Sheets("Tabelle2").Range("A1:A11").Value
MsgBox arrTest(5, 1)
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Array für mehrere Modulle
17.02.2007 16:26:00
Daniel
Hallo
normalerweise gehts auch mit mehrspaltigen Zellbereichen:
Dim arrTEST
arrTest = Range("A1:K11").value
sollte funktionieren.
Gruß, Daniel
AW: Array für mehrere Modulle
17.02.2007 15:55:55
Peter
Hallo Hans,
so könnte es gehen:
Option Explicit
Public arrTest() As Variant

Sub Neuer_Versuch()
Dim iIndex  As Integer
For iIndex = 1 To 11
ReDim Preserve arrTest(iIndex)
arrTest(iIndex) = Sheets("Tabelle2").Range("A" & iIndex).Value
Next iIndex
MsgBox arrTest(5)
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige