Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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-Problem

Array-Problem
05.02.2009 20:11:00
Mathias
Hallo liebe Excel-Gemeinde,
ich habe ein Array-Problem, zu dem ich bisher keine adäquate Lösung gefunden habe:
Ich habe ein Array konstruiert, dass Daten speichert. Ich möchte diese Daten nun auslesen. Hierbei ist es mir wichtig, die verschieden zusammen gestellten Array-Werte mathematische Ereignisse (Plus,Minus oder Mal) ausführen zu können und mir das Ergebnis in einer Messagbox anzeigen lassen. Ich möchte jetzt nur nicht jeden einzelnen Wert ansprechen, sondern irgendwie Enbloc...
Mein Code bisher:

Public Sub MeinDatenFeld()
' Variablen definieren
Dim Tage(1 To 31) As Currency
'---- Datenfeld befüllen ----
'eine Variable deklarieren, die vorgibt wie oft und wohin gespeichert werden soll
Dim GradtageJanuar As Date
' mit einer For...Next-Schleife bleibt es übersichtlicher
For TageJanuar = 1 To 31 '


Ich hoffe ihr könnt helfen...
Gruß
Mathias

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

Betreff
Datum
Anwender
Anzeige
AW: Array-Problem
05.02.2009 20:20:21
Mathias
Sorry in alten Code war ein Fehler, hier der richtige:

Public Sub MeinDatenFeld()
' Variablen definieren
Dim Tage(1 To 31) As Currency
'---- Datenfeld befüllen ----
'eine Variable deklarieren, die vorgibt wie oft und wohin gespeichert werden soll
Dim TageJanuar As Date
' mit einer For...Next-Schleife bleibt es übersichtlicher
For TageJanuar = 1 To 31 '


Ich verstehe deine Frage nicht
05.02.2009 21:34:15
NoNet
Hallo Mathias,
Leider verstehe ich Deine Frage nicht - was genau möchtest Du denn wissen ?
Dein 2.Code funktionert ja grundsätzlich, aber was meinst Du mit mathematische Ereignisse (Plus,Minus oder Mal) ausführen ?
Weshalb subtrahierst Du Tage(15)-Tage(12) ? Da alle ARRAY-Elemente den Wert 5,8 enthalten ergibt das doch immer 0,oder ?
Beschreibe doch bitte präzise, was Du erreichen möchtest - Danke !
Gruß, NoNet
Anzeige
AW: Ich verstehe deine Frage nicht
06.02.2009 08:52:15
Mathias
Hallo NoNet,
Hallo an alle Anderen,
das mein Array funktioniert ist soweit ja schon einmal ganz gut. Daran soll auch erstmal nichts verändert werden.
Ich möchte lediglich eine Möglichkeit entwickeln, bei der ich z.B. die Datenwerte von Tag(15) bis Tag(28) auslese und diese dann z.B. summiere. Ich möchte allerdings nicht

ErgebnisTage = Tage(15) + Tage(16) + Tage(17) + Tage(18) ... Tage(28) 


schreiben, sondern in kürzerer Form! Und genau das ist mein Problem, bei dem ich nicht weiter komme.

Anzeige
AW: Ich verstehe deine Frage nicht
06.02.2009 10:30:00
Tino
Hallo,
mach es mit einer Schleife.

Dim i As Integer
For i = 15 To 28
ErgebnisTage = ErgebnisTage + Tage(i)
Next i


Gruß Tino

weiteres Problem mit Array
06.02.2009 15:21:09
Mathias
Hallo liebe Leute,
die Lösung meines ersten Problems hat ja schon einmal sehr gut geklappt.
Nun hab ich aber noch eins:
Ich habe jetzt ein in die Monate Januar bis Dezember unterteiltes Array mit monatlich jeweils verschiedenen Daten: Januar alle Tage mit dem Wert 5.8 belegt, im März 3.0, im Juni 0.9 usw.! Die Befüllung dieses Array ist statisch, ist also immer gleich.
Das Auslesen dieses Array ist allerdings nicht statisch (Ich versuchs mal zu erklären, was passieren soll):
Ich möchte meinem User eine Eingabemaske basteln, in der er eine beliebige Zeitspanne eingeben kann. Diese Eingabe muss soll sich nach dem Abschluss der zweiten Eingabe mit dem Array und seinen statischen Daten verbinden.
Das Array soll dann nach dem Wert der ersten Eingabe durchsucht werden. Dies ist dann mein Startpunkt. Anschließend soll der zweite Wert der Eingabe gesucht werden. Dies ist dann mein Ziel. Anschließend muss vom Start bis zum Ziel jeder einzelne Wert zu einem Gesamtwert summiert werden.
Einen eigenen Code hierzu habe ich leider nicht erstellen können, da mir hier der Ansatz einer Idee fehlt...
Anzeige
AW: weiteres Problem mit Array
06.02.2009 15:49:00
Tino
Hallo,
so richtig verstanden habe ich Deine Frage zwar nicht,
hier mal ein Beispiel wie man eine Area durchlaufen kann und nur Werte addiert die zwischen
zwei Werten liegen (inklusiver der Werte).
Dieses Beispiel hat jetzt keinen tieferen Sinn, soll nur als Beispiel dienen.
Sub Test()
Dim i As Integer
Dim booStart As Boolean
Dim Ergebnis!, sgStart!, sgEnde!
Dim mear() As Single

    'Area befüllen 
    For i = 1 To 1000
     Redim Preserve mear(i - 1)
     mear(i - 1) = 5 + (i / 10)
    Next i

    'Start und Endwert 
    sgStart = 5.3
    sgEnde = 12.9

    'Area durchlaufen 
    For i = Lbound(mear) To Ubound(mear)
     If mear(i) = sgStart Or booStart Then
        booStart = True
        Ergebnis = Ergebnis + mear(i)
      If mear(i) = sgEnde Then Exit For
     End If
    Next i

MsgBox Ergebnis
End Sub


Gruß Tino

Anzeige
AW: weiteres Problem mit Array
06.02.2009 18:30:23
Mathias
Hallo Tino,
Hallo Excel-Gemeinde
aber ganz missverstanden hast du mich auch nicht. So ähnlich stell ich mir das auch vor. Allerdings soll der Wert "mear" in seinen Klammern nicht 0,1,2 oder 1000 stehen haben, sondern 01.01.2008 oder 02.01.2008 oder 02.08.2008. Ich möchte anhand dieser Festlegung dann mit Hilfe von Start und Ende aus dem Array die dazu gehörigen Werte ermitteln und sie summieren.
Also ich mach mal einen Plan:

'Voraussetzung: User hat seine Eingaben gemacht, die sind auch korrekt usw.
'1. Das Array wird nach den Kalenderjahr organisiert.
'    Ausdruck eins soll heißen "Datum(01.01.2008)
'    Ausdruck zwei soll heißen "Datum(02.01.2008)
'    Ausdruck 366 soll heißen "Datum(31.12.2008)
'2. Jedem Ausdruck wird ein bestimmter Wert zugeordnet. Der ist hier nicht entscheidend.
'    Entscheidend ist der 1. Punkt.
'3. Das Ergebnis der 1. Eingabe wird ausgelesen und als Startpunkt definiert.
'4. Das Ergebnis der 2. Eingabe wird ausgelesen und als Zielounkt definiert.
'5. Anhand von Start- und Zielpunkt wird das Array über die Ausdrücke durchlaufen und jeder zum
'    Ausdruck dazugehörige Wert soll summiert werden.
'6. Das Ergebnis soll in einer Messagbox aufgeführt werden.


Ich hoffe das war verständlich.
Gruß
Mathias

Anzeige
AW: weiteres Problem mit Array
06.02.2009 18:50:07
Tino
Hallo,
mit Datum so.
Sub Test()
Dim i As Integer
Dim booStart As Boolean
Dim Ergebnis!, DaStart As Date, DaEnde As Date
Dim mear() As Single
     
     Redim mear((CDate("31.12.2009") - CDate("01.01.2009")), 1)
   
    'Area befüllen 
    For i = 0 To (CDate("31.12.2009") - CDate("01.01.2009"))
      mear(i, 0) = CDate("01.01.2009") + i
      mear(i, 1) = i
    Next i

    'Start und Endwert 
    DaStart = CDate("15.10.2009")
    DaEnde = CDate("11.11.2009")

    'Area durchlaufen 
    For i = Lbound(mear) To Ubound(mear)
     If mear(i, 0) = DaStart Or booStart Then
        booStart = True
        Ergebnis = Ergebnis + mear(i, 1)
      If mear(i, 0) = DaEnde Then Exit For
     End If
    Next i

MsgBox Ergebnis
End Sub


Gruß Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige