Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Array in VBA verwenden

Betrifft: Array in VBA verwenden von: Tobias Jäger
Geschrieben am: 15.09.2004 20:03:50

Hallo Ihr,

ich habe folgendes Problem:

In einem Tabellenblatt habe ich mehrere Spalten, die Konteninformationen beinhalten z.B. K-Nr, Währung, Cust1, ...

Für eine Programmierung benötige ich nun diese Werte innerhalb eines Modules ohne jedesmal auf die Tabelle zugreifen zu müssen. Meine Idee ist nun, die Werte am Modulanfang per Schleife in einem Datenfeld zu speichern und anschliessend bei Bedarf auszulesen. Hierzu würde ich gerne die Detailinformationen je nach gewähltem Konto auslesen. Leider habe ich Arrays noch nie verwendet und bin mir nicht sicher, ob das überhaupt so funktionieren kann.

Ich stelle mir das so vor:

'Einlesen der Werte
for i=1 to 10
account = cells(i,1).value
währung(account) = cells(i,2).value
cust(account) = cells(i,3).value
next i

'Abfrage der Werte
account = "1234567890"
msgbox Währung(account) & " " & Cust1(account) = "abc"

Das Problem scheint mir aber zu sein, dass ein Array keine String-Werte innerhalb der Klammer zulässt.

Seht Ihr eine Möglichkeit das umzusetzen? Wie könnte das aussehen, und wie müssten die DIM aussehen? Wäre alternativ eine Type-Deklaration denkbar?

Vielen Dank!

Gruß
Tobias

  


Betrifft: AW: Array in VBA verwenden von: tobias
Geschrieben am: 15.09.2004 20:22:26

Hallo

hier ein ungetestetes Beispiel

Type Kontodaten
K_Nr As Long
Währung As String
Cust1 As String
End Type



Sub test()
Dim Feld() As Kontodaten
ReDim Feld(0 To 10)

For i = 1 To 10
Feld(i).K_Nr = Cells(i, 1).Value
Feld(i).Währung = Cells(i, 2).Value
Feld(i).Cust1 = Cells(i, 3).Value
Next

For i = 1 To 10
MsgBox Feld(i).K_Nr & " " & Feld(i).Währung & " " & Feld(i).Cust1
Next

End Sub


mfg tobias


  


Betrifft: AW: Array in VBA verwenden von: Tobias J.
Geschrieben am: 16.09.2004 10:15:50

Hallo Tobias,

erstmal danke für Dein Beispiel, es geht schon in die richtige Richtung. Leider ist es noch nicht so ganz wie ich es benötige. Zur Datenabfrage verwendest Du eine Schleife. Dies würde ich gerne umgehen, indem ich direkt die Details über die Account-Nr. abrufen kann.

Also die K-Nr. als Datenfeldvariable z.B cells(1,1) = währung(account)

Gruß
Tobias


  


Betrifft: AW: Array in VBA verwenden von: tobias
Geschrieben am: 16.09.2004 11:00:30

Hallo

z.B.:
account = 340500
For i = 1 To 10
if Feld(i).K_Nr = account then
MsgBox Feld(i).K_Nr & " " & Feld(i).Währung & " " & Feld(i).Cust1
'weitere Bearbeitung...
exit for
end if
Next

mfg tobias


  


Betrifft: AW: Array in VBA verwenden von: Tobias
Geschrieben am: 17.09.2004 09:28:42

Hallo Tobias,

danke für die Info. Ich werde es mal auf diese Weise versuchen.

Gruß
Tobias


  


Betrifft: nicht mehr offen? von: offener
Geschrieben am: 18.09.2004 22:24:21