Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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

Variable mit Array Auslesen

Variable mit Array Auslesen
Benny
Huhu ich habe eine variable ich ich mit ReDim zu einem Array gemacht habe
devcst(2) ich bekomme also bis zu 3 Variablen.
ich brauche nun eine Möglichkeit zu überprüfen welche davon befüllt ist, weil diese Variablen mit einem Split Befehl gefüttert werden. Und diese zwischen 1 und 3 Stellen haben, also deswegen 1 bis 3 Variablen.
Ich habe das nun so gelöst, aber leider geht er alle 3 durch, und nicht immer aktualisiert Excel den letzten Fund. Es gibt doch sicher eine Möglichkeit zu Prüfen ob 0 oder 0 und 1 oder 0 und 1 und 2 befüllt sind.
(0 ist auf Jedenfall IMMER Befüllt, weil ich bei dem Split min. 1 Stelle habe aber max 3)
If devcst(0) "" Then
Cells(ActiveCell.Row, a).Value = 1
End If
If devcst(1) "" Then
Cells(ActiveCell.Row, a).Value = 2
End If
If devcst(2) "" Then
Cells(ActiveCell.Row, a).Value = 3
End If
Als Rückgabewert wie ihr sehen könnt reicht mir wirklich eine einfache Zahl 1 2 oder 3 *g*
Gut wäre es wenn der Code Prüft devcst(2) befüllt dann führe aus... und ende. Nicht die anderen auch noch Prüfen. Ist devcst(2) nicht befüllt dann Prüf ob devcst(1) befüllt ist wenn ja usw. in meinem Fall leider ist alles 3 Wahr wenn alle 3 Befüllt sind.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
uBound(Array)
23.04.2010 14:31:47
ransi
HAllo
Schau dir mal lBound(array) und uBound(Array) an.
Damit geht das.
ransi
AW: Variable mit Array Auslesen
23.04.2010 14:49:02
Rudi
Hallo
Cells(ActiveCell.Row, a)=ubound(devcst)+1
Gruß
Rudi
AW: Variable mit Array Auslesen
23.04.2010 14:56:31
Benny
Huhu danke Rudi, ich hab deinen Code mal getestet
Cells(ActiveCell.Row, a)=ubound(devcst)+1
bekomme so aber immer nur 3 als Rückwert. Mach ich da was Falsch?. Ich schreib noch mal den Code mit hinzu wie die Variablen erstellt werden.
Sub lvlupCat_Klikk()
Dim actcell As String
If Sheets("Stats").Range("AL5")  "" Then
actcell = "H" & ActiveCell.Row
If ActiveCell.Column = "16" Then
devcst = Split(Range(actcell).Text, ";")
ReDim Preserve devcst(2)
Call dev_cost
'catForm.Show
End If
Else
MsgBox "LEVEL UP IS NOT ACTIVE!"
End If
End Sub
Function dev_cost()
Dim a As Integer
If ActiveSheet.Name = "Category" Then
a = 14
Else
a = 12
End If
Cells(ActiveCell.Row, a) = UBound(devcst) + 1
End Function

Anzeige
AW: Variable mit Array Auslesen
23.04.2010 15:20:13
IngGi
Hallo Benny,
entferne die Zeile mit der ReDim-Anweisung. Wenn die Variable devcst mit dem Typ Variant deklariert ist, übernimmte VBA die Dimensionierung beim Befüllen mit Split automatisch mit der erforderlichen Anzahl von Indizes. Dann lässt sich mit UBound die Größe des Arrays auslesen. Mit der ReDim-Anweisung dimensionierst du die Variable dagegen immer mit 3 Indizes von 0 bis 2. Dadurch ergibt UBound immer 2. UBound gibt immer den höchsten Index eines Arrays zurück.
Gruß Ingolf
AW: Variable mit Array Auslesen
23.04.2010 15:33:45
Benny
hui das hat geklappt, großes DANKESCHÖN für die Hilfe und den Tip.
AW: Variable mit Array Auslesen
23.04.2010 15:47:38
Benny
Eine frage hätte ich noch, aber ka ob das hier richtig ist. Wenn ich die Funktion aufrufe damit meine Zelle mit 1 2 oder 3 befüllt wird. Kommt es noch immer ab und zu vor das eine Falsche Zahl dort steht. Wähle ich die Selbe stelle nochmal (er führt also alles nochmal aus) stimmt das Ergebniss dann. Das kommt oft vor wenn ich eine änderung in der Anzahl der Arrays habe.
Erste auswahl z.B. sind alle 3 befüllt, bei der nächsten sollte nur 1 Befüllt sein, dann schreibt er mir aber 3 rufe ich nochmal die selbe Stelle auf steht da Brav 1. Das passiert auch andersrum also 2 an stelle von 1 oder 3. Gibt es da auch noch einen guten Tip?
Anzeige
AW: Variable mit Array Auslesen
23.04.2010 16:24:55
IngGi
Hallo Benny,
bei mehreren Programmläufen hintereinander, ohne die Datei zwischendurch zu schließen, ist es unter Umständen notwendig, das Array zurückzusetzen. Füge dafür am Ende der Funktion folgende Zeile ein:
Erase devcst
Gruß Ingolf
AW: Variable mit Array Auslesen
23.04.2010 16:29:30
Benny
Danke dir nochmal hat mir sehr geholfen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige