Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1380to1384
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

Welcher Datentyp um diese Daten zu speichern

Welcher Datentyp um diese Daten zu speichern
05.09.2014 14:26:17
BlackDevil
Hallo zusammen,
ich habe in meinem aktuellen Vorhaben noch ein weiteres Problem - in diesem Fall mit dem Speichern von Daten.
Der Benutzer lädt *.csv Dateien in ein Verzeichnis, welches sich im gleichen Ordner befindet wie die *.xlsm. Nach der Prüfung ob Ordner und Daten vorhanden sind und die Dateinamen stimmen les ich die *.csv nach und nach ein und schreibe sie in Tabellen. Während ich das mache extrahiere ich aus den Dateinamen "Kategorien". Jede dieser Kategorien (maximal 10) beinhalten verschieden viele Elemente (maximal 50). Nun bin ich kein Fan von starren Strukturen sondern davon, dass die Anwendung dynamisch auf ihre Umgebung reagiert. Sprich: Lädt der Nutzer statt 10 Kategorien nur 2 dann soll die Anwendung trotzdem funktionieren und das von sich aus erkennen und entsprechend verarbeiten/reagieren.
Ich suche nun eine möglichkeit eine Tabelle in VBA anzulegen welche die Kategorien und die Elemente beinhaltet. Das sieht dann ca so aus:
Tabelle= [A, (E1, E2, E3, E4)]; [B, (E1, E2, E3, E4, E5)]; [C, (E1, E2)]
In anderen Programmiersprachen, zum Beispiel C/C++/C# oder Matlab, würde ich mich wohl eines Structs bedienen. In einer Schleife würde ich für jede vorhandene Kategorie ein Struct erstellen welches den Namen der Kategorie und die Elemente als Liste beinhaltet. Alternativ ginge ein Array in einem Array. Aber beides scheint mit VBA nicht zu funktionieren.
Hat jemand eine Idee?

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

Betreff
Datum
Anwender
Anzeige
AW: Welcher Datentyp um diese Daten zu speichern
05.09.2014 15:40:23
BlackDevil
Manchmal klappts erst nach zwei weiteren Espressi ...
Public Type typeKategorie
Kategorie As String
Elements() As String
End Type
Sub TuWas()
Dim KategorieSammler() As typeKategorie
ReDim Preserve KategorieSammler(i)
KategorieSammler(i).Kategorie= KategorieList(i)
With Worksheets(KategorieList(i))
colNum = 2
ReDim Preserve KategorieSammler(i).Elements(0)
For j = 0 To .Cells(1, Columns.Count).End(xlToLeft).Column / 3 - 1
ReDim Preserve KategorieSammler(i).Elements(j)
KategorieSammler(i).Elements(j) = .Cells(1, colNum).Value
colNum = colNum + 3
Next j
End Sub
Das macht was es soll und zwar 1a. Ich habe das ganze minimal gelassen und die Deklaration von colNum und das Füllen der Arbeitsblätter bewusst rausgelassen (Symbolisiert durch ' [...] ).
Vielleicht stolpert ja jemand drüber und findet so eine Lösung für sein Problem.
Meta
Excel VBA dynamische Arrays Struct Struktur Typ

Anzeige
AW: Welcher Datentyp um diese Daten zu speichern
05.09.2014 15:52:26
fcs
Hallo BlackDevil,
der benutzerdefinierte Variablen-Type ist natürlich die optimale Lösung, da übersichtlicher in der Auswertung und Beschreibung der Daten. Es funktioniert aber auch mit jedem Variant-Datenfeld.
Zum Testen hab ich hier einfach mal 2 gleich große Arrays zu einem zusammengeführt.
Gruß
Franz
Sub bbTest()
Dim varData(), intData As Integer, arrTemp(), intTemp
Dim int1 As Integer, int2 As Integer, var1, var2, int3 As Integer
'Tabelle= [A, (E1, E2, E3, E4)]; [B, (E1, E2, E3, E4, E5)]; [C, (E1, E2)]
var1 = Array("A", "B", "C")
var2 = Array(Array("E1", "E2", "E3", "E4"), Array("E1", "E2", "E3", "E4", "E5"), Array("E1", " _
E2"))
intData = 0
For int1 = LBound(var1) To UBound(var2)
intData = intData + 1
ReDim Preserve varData(1 To 2, 1 To intData)
varData(1, intData) = var1(int1)
Erase arrTemp: intTemp = 0
For int3 = LBound(var2(int1)) To UBound(var2(int1))
intTemp = intTemp + 1
ReDim Preserve arrTemp(1 To intTemp)
arrTemp(intTemp) = var2(int1)(int3)
Next int3
varData(2, intData) = arrTemp
Erase arrTemp
Next int1
End Sub

Anzeige
AW: Welcher Datentyp um diese Daten zu speichern
05.09.2014 16:27:59
BlackDevil
Zugegeben, da ist die Lösung mit dem eigenen Typ etwas eleganter :D Ich bin eh ein Fan von Structs, die sind so schön übersichtlich :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige