Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1516to1520
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

Frage über arrays

Frage über arrays
30.09.2016 15:15:18
Max
Hallo Leute,
ich habe verschiedene Arrays mit unterschiedlichen Nutzerdaten.
Der Verfasser(x) steht in einer KomboBox, wenn Verfasser(0) ausgewählt wurde soll
in ein Dokument dass dann geöffnet wird in bestimmte Textmarken: Tel(0), Vor(0) und Nach(0) eingefügt werden.
hier die Arrays:

Dim Verfasser(15)               As String
Dim Tel(15)			As String
Dim Vor(15)			As String
Dim Nach(15)		        As String
Hier ein unschönes blödes stück Code
		If strCb1 = Verfasser(5) Then
objDMTName.Range.Text = Vor(5) & " " & Nach(5)
objDMTMail.Range.Text = LCase(Vor(5)) & "." & LCase(Nach(5))
objDMTTel.Range.Text = Tel(5)
End If 
So ist dass aber ewig viel Code da ich für jeden Verfasser eben einen If-Block habe,
gibt es eine Möglichkeit ihm zu sagen dass er wenn Verfasser(x) ausgewählt die anderen Arrays mit dem gleichen (x) wert verwendet ?
(Bestimmt merkt ihr dass Verfasser und Vor + Nach mehr oder weniger das gleiche ist, aber Verfasser ist erst Nachname dann Vorname und für die Dokumente brauche ich es anders herum und ich wollte nicht großartig "Split(...(Variable...etc.))" verwenden

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage über arrays
30.09.2016 15:39:49
ChrisL
Hi Max
Array können auch mehrdimensional (16 Zeilen, 4 Spalten) verwendet werden. Ich denke dies könnte in deinem Fall der richtige Ansatz sein.
Wenn du beim Abfüllen der ComboBox die gleichen Daten und Reihenfolge verwendest, dann ergibt sich aus dem ComboBox Index die "Array-Zeile". Um konkreter auf dein Problem einzugehen müsste man somit beim Abfüllen der Combobox resp. Array beginnen.
cu
Chris
AW: Frage über arrays
30.09.2016 16:34:51
Max
So ich bin ja auch blöd... so einfach hat sich dass gelöst :D
        For i = 0 To 15
If strCb1 = Verfasser(i) Then
objDMTName.Range.Text = Vor(i) & " " & Nach(i)
objDMTMail.Range.Text = LCase(Vor(i)) & "." & LCase(Nach(i)) & strDekra
objDMTTel.Range.Text = Tel(i)
End If
Next i

Anzeige
Hier bietet sich ein Dictionary oder ein ...
30.09.2016 16:39:43
Luc:-?
Array-Typ an, der landläufig als Arrays in an Array bezeichnet wird, Max;
d.h., du legst ein 1dimensionales VBA-Array an, dessen 15 Elemente ebenfalls aus Arrays bestehen, die so zusammengesetzt sind:
• Position 0: Verfasser
• Position 1: Tel
• Position 2: Vor
• Position 3: Nach
Dieses Array kann mit For Each x In arrName durchlaufen wdn, wobei die Eingabe mit arrName(0) verglichen wird, um dann ggf x komplett ins Ziel zu schreiben.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Hier bietet sich ein Dictionary oder ein ...
30.09.2016 16:59:38
Max
Ahh ok, vielen Dank !
Werde ich auf jeden fall ausprobieren.
Habe erst vor kurzem mit VB/VBA angefangen und kenne mich noch nicht so aus, ist auch meine erste Programmiersprache und ich muss leider zugeben dass ich die größten Probleme mit den Arrays habe :(
AW: Frage über arrays
30.09.2016 19:54:13
Michael
Hi,
die Struktur finde ich gar nicht sooo schlecht; auch wenn man das in EIN Array steckt, wird die Kodierung nicht weniger...
Nur: so, wie es ist, läßt sich auch eine "Array-Suchfunktion" einsetzen, und zwar derart:
Sub test()
Dim Verfasser(15) As String
Dim Tel(15) As String
Dim strCb1 As String
Dim Fundort
Verfasser(0) = "Meier"
Verfasser(1) = "Müller"
Verfasser(2) = "Mustermann"
Tel(0) = "0-12"
Tel(1) = "1-12"
Tel(2) = "2-12"
strCb1 = "Müller"
Fundort = Application.Match(strCb1, Verfasser, 0)
If Fundort  False Then
MsgBox Verfasser(Fundort - 1) & ": " & Tel(Fundort - 1)
End If
End Sub
Schöne Grüße,
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige