Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Array mit Userform bearbeiten

Array mit Userform bearbeiten
30.01.2015 20:26:27
Dibana

Guten Abend,
ich habe eine Datenbank.xls und eine EingabeAusgabe.xlsm.
Auf der Datenbank.xls werden Daten von mehreren Mitarbeitern gespeichert. Folglich darf die Datenbank nur kurz zum Schreiben oder Auslesen geöffnet werden.
In der EingabeAusgabe.xlsm soll im Userform ein Listfeld sein das die Indexe der Datensätze aus der Datenbank anzeigt. Wählt man ein Index im Listfeld aus, sollen die Daten in Textfeldern angezeigt werden. Im nächsten Schritt kann man die Daten in den Textfeldern ändern und anschließend speichern.
Ich habe das Konzept schon umgesetzt für die Anwendung innerhalb einer Arbeitsmappe. hier greife ich immer direkt in der selben Arbeitsmappe auf die Daten in dem entsprechenden Tabellenblatt zu.
Jetzt meine Frage:
wenn ich die Daten aus der Datenbank.xls in einem Array speichere, kann ich diese dann mit mehreren in sich abgeschlossenen "Prozeduren" (subs) bearbeiten und erst mit schließen des Userforms wieder in die Datenbank.xls ausgeben?
Werden die Daten in einem Array immer nach dem Abschluss eines/des Subs gelöscht?
Vielen Dank schon mal.
Mit freundlichen Grüßen,
Dibana

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array mit Userform bearbeiten
31.01.2015 09:43:26
Christian
hallo Dibana,
- wenn du eine Variable auf Prozedur-Ebene deklarierst, dann gilt sie nur innerhalb der Prozedur (siehe Test_1a)
- wenn du eine Variable auf Modul-Ebene deklarierst, dann gilt sie für alle Prozeduren innerhalb des Moduls (Test_2a und Test_2b) und wenn du eine Variable auf Modul-Ebene als Public deklarierst, gilt sie für diese gesamte Anwendung (Excelmappe).
- Des Weiteren kannst du Variablen als Paramter (ByRef bzw. ByVal) an weitere Prozeduren übergeben (Test_3a und Test_3b)

Option Explicit
Dim lngArr(2) As Long           ' gilt für das gesamte Modul
Sub Test_1a()
Dim strArr(0, 1) As String  ' gilt innerhalb der Prozedur
strArr(0, 0) = "a"
strArr(0, 1) = "b"
Debug.Print strArr(0, 0); strArr(0, 1)
End Sub
Sub Test_1b()
' erzeugt Fehler, da strArr nicht deklariert / dimensioniert
strArr(0, 1) = "c"
End Sub
Sub Test_2a()
lngArr(0) = 2
lngArr(2) = 5
Debug.Print lngArr(0); lngArr(1); lngArr(2)
End Sub
Sub Test_2b()
lngArr(1) = 4
lngArr(2) = 10
Debug.Print lngArr(0); lngArr(1); lngArr(2)
End Sub
Sub Test_3a()
Dim vntArr(1) As Variant    ' gilt innerhalb der Prozedur
vntArr(0) = 4
vntArr(1) = "a"
Debug.Print vntArr(0); vntArr(1)
'Aufruf von Test_3b mit Verweis (ByRef) auf das Array vntArr
Call Test_3b(vntArr)
End Sub
Sub Test_3b(ByRef vntRef() As Variant)
vntRef(1) = "abc"
Debug.Print vntRef(0); vntRef(1)
End Sub
Gruß
Christian

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige