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

Data Strucute an Funktion übergeben

Data Strucute an Funktion übergeben
28.12.2012 14:50:44
Benni
Hallo,
ich habe ein kleines Problem bei der Übergabe von Daten Strukturen an eine Funktion, folgender Aufbau liegt vor:
Ich möchte in der unten S ub "berechnen" die Datenstrukur werte2 übergeben, allerdings sollen in dieser Datenstruktur auch die Werte von der Struktur werte1 enthalten sein (nur 3 Werte sollen anders belegt sein).
Es muss zudem aber auch möglich sein, die selbe Funktion mit der Struktur wert1 aufzurufen, siehe unten.
Private Type werte1
dbWert1 As Double
dbWert2 As Double
dbWert3 As Double
End Type
Private Type werte2
alte_werte As werte1
dbWert1neu As Double
dbWert2neu As Double
DbUndwasganzneues As Double
End Type
Function werte1_einlesen() As werte1
Dim w As werte1
With w
.dbWert1 = Cells(1, 1)
.dbWert2 = Cells(2, 1)
.dbWert3 = Cells(3, 1)
End With
werte1_einlesen = w
End Function
Function neueWerte_einlesen() As werte2
Dim w As werte2
With w
.dbWert1 = Cells(15, 1)
.dbWert2 = Cells(16, 1)
.DbUndwasganzneues = Cells(2, 5)
End With
neueWerte_einlesen = w
End Function

Sub berechnen()
Dim Werte As werte1
Dim werte2 As werte2
Dim neueZahl As Double
neueZahl = FUNKTIONAUFRUFEN(werte2)
neueZahl = FUNKTIONAUFRUFEN(werte1)
End Sub
Function FUNKTIONAUFRUFEN(werte1 as werte1) 
Ich habe es jetzt nur hinbekommen immer eine Daten-Struktur zu übergeben.
Kann ich das Problem irgendwie lösen und ist es verständlich gewesen? :-)
Vielen Dank!
Gruß!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum brauchst du 3 Fktt? Reicht es nicht, ...
28.12.2012 17:34:14
Luc:-?
…mal die 1. und mal die 2. aufzurufen und die Entscheidung darüber (die hier gar nicht ersichtlich ist!) in die Subroutine zu verlegen, Benni?
Gruß Luc :-?

AW: Warum brauchst du 3 Fktt? Reicht es nicht, ...
29.12.2012 15:09:45
Benni
Hallo,
es geht im speziellen darum, dass ich zwei verschiedene (komplexere) Berechnungsvorgänge durchführen möchte, bei denen jedoch 90% der Variablen identisch sind.
Die Funktion FUNKTIONSAUFRUFEN, in der die Routine dazu steht benötigt ca. 10 Übergabeparameter und ich wollte es vermeiden, bei jedem Aufruf 10 Parameter an die entsprechende Funktion zu übergeben, sowohl bei Berechnungsvariante1 als auch bei der zweiten Variante, wo nur ein paar Variablen anders sind.
Bei diesem Beispiel könnte ich einfach die Datenstruktur an die Fkt übergeben und alle Werte sind vorhanden.
Vielen Dank für die Antwort.
Gruß!

Anzeige
Das erschließt sich aus deinem Code nicht, ...
30.12.2012 00:14:08
Luc:-?
…Benni!
Außerdem verwende ich Fktt idR nicht so wie du es hier tust. Aus diesen Gründen kann ich nicht beurteilen, ob dein Lösungsansatz optimal ist. Ich fürchte, eher nicht!
Gruß Luc :-?

...ansonsten wäre nur Folgendes ...
30.12.2012 17:58:21
Luc:-?
…vorzuschlagen, Benni:
Function FUNKTIONAUFRUFEN(Optional wt1 As werte1, Optional wt2 As werte2)
Dann natürl alles weitere davon abhängig machen, ob Arg1 oder Arg2 angegeben wurde (ggf bei Angabe beider Argumente F-Meldung, aber das pgmierst du ja selbst und wirst dich doch wohl nicht irren!).
Evtl noch diese Fktt in ein Option Private Module-Modul setzen, damit sie nicht im xlFktsAssi angezeigt wdn, falls sie nur in Subroutinen aufgerufen wdn sollen.
GRutsch, Luc :-?
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige