Hallo,
danke,obwohl ich das nicht ganz geschnallt habe mit der
Funktion „Check“.
das was ich dir gepostet habe, war nur zu demozwecken wie es denn klappen könnte! Aber nun gut. Die Function macht ja ihren Dienst
Aber was verstehst du denn daran nicht?
Eine Function:
- Sie kann Parameter entgegennehmen.
- Sie kann wie eine Prozedure auch je nach dem ob sie ( die Parameter) Byval oder Byref übergeben werden, direkt geaendert werden!
- Sie koennen aufgerufen werden, wie Prozeduren
- Sie arbeiten einen Programm Source ab
Soweit ist es ja das selbe wie eine Prozedure!
Nun kommt aber der Unterschied
- Sie liefern dir ein Ergebnis zurueck, welches man auswerten kann.
_ Du musst dieser Funktion einen Wert zuweisen
Auf Deutsch heisst das… Du kannst eine Funktion wie eine Variable sehen, die du abfragst. Sprich du hast ne Function z.Bsp. Rechne die 2 Parameter entgegen nimmt. Nennen wir sie a und b
Die Function könnte nun wie folgt ausschauen
Function Rechne(A as Integer, B as Integer) as Integer
Rechne=A+B
End Function
Was macht das nun? Gehen wir mal von aus, du rufst sie nun wie folgt auf. Wir erinnern uns … Funktionen kann man als eine Variable sehen, die man abfragen kann
Textbox1.Text=Rechne(5,5)
In der Textbox würde nun 10 stehen. Warum ?
Schauen wir uns das mal genauer an
Wir versuchen der Textbox einen Wert zuzuweisen. Dabei rufen wir ueber Rechne einfach die Funktion auf und übergeben ihr 2mal den Wert 5. Schauen wir nun in die Function
Dort steht
Rechne=A+B
Du siehst das dem Functionsnamen ein Wert zugewiesen wird!
Das bedeutet das die Function den Wert zurueckliefert! Da A und B jeweils 5 sind, wird der Function nun der Wert 10 zugewiesen ( 5+5=10)
Man muss jedoch beachten. Bei der Definition der Function musst du angeben, was sie zurueckliefern soll. Das haben wir ja durch
Function Rechne(A as Integer, B as Integer) **as Integer**
gemacht. Durch das as Integer hinter der Function, sagen wir das sie eine Zahl zurueckliefern soll. Sprich einen Integer
Wie du siehst, ist es ganz simple Das man nun die Parameter selbst noch aendern kann, darauf gehe ich mal nicht weiter ein, denn sonst würde ich das Forum hier sprengen *gg*
Zurueck nun zu deinem Program. Ich weiss nicht mehr was ich dir gepostet habe, aber vom Prinzip her, habe ich nach verlassen der Textbox einfach die Function aufgerufen. Willst du einen Wert vergleichen, der vom Typ Boolean ist, so kann man sich nen bissl Arbeit ersparen ( ich bin eigentlich schreibfaul)
If MeineVariable=True then
'entspricht
If MeineVariable then
IF MeineVariable=False then
'entspricht
if not meineVariable then
Wie du siehst brauchst du nur den Variablennamen ( oder Functionsnamen, wenn sie ein Ergebnis vom Typ Boolean zurueckliefert) angeben um sie auf True zu prüfen. Ich daechte das ich das gemacht habe.
Wenn du nun in die Function schaust, wirst du sehen, das sie an verschiedenen Stellen verscheidene Werte bekommt! Entweder True oder False.
Dann wird einfach die Function verlassen und liefert je nach Eingaben in den Textboxen ein True oder False zurueck, welches wir ja beim verlassen der Textbox abfragen.
Ich daechte mich auch zu erinnern das ich in der Function etwas in der Art alla
Select Case True
Case ....
End Select
geschrieben habe. Die Variante ist für viele unbekannt. Aber was macht sie nun … Select Case überprüft einen Wert und je nachdem was er ist, springt er in die Case Klausel. Ok … aber wieso steht nun dort ein True ?
Das heisst so viel wie Wahr. Sprich. Sobald ein Ausdruck Wahr ( True) ist, springt er in die Case Klausel. Nun schaue dir mal die Case Klauseln an!
Case Len(Textbox1.text)=0 ' Ist die Länge des Stringes in der Textbox 0 ?
case csng(Textbox1.text)\>240 'Der Wert in Textbox1 wird in Single gewandelt
'und geprüft ob er grösser 240 ist
etc.
So nun erkennst du das ich einfach erst die Längen der Textbox Inhalte abfrage auf 0 und dann versuche zu vergleichen. Ist nun wiederrum ein Inhalt leer so wird die Function zu True und wird verlassen
Wie du siehst ist es eigentlich simple
Ich habs aber irgendwie hingekriegt und meine kleines
Programmchen funktioniert!
Ja aber macht es auch das, bei fehlenden Eingaben oder bei Falsch Eingaben?
Dort kannst du die Function erweitern zum Bsp. in dem du den Focus auf das Element setzt was die Fehleingabe beinhaltet oder eine MsgBox aufploppen lassen, mit einer Meldung etc.
Ich habs auch hochgeladen, wär nett wenn ihr mal reinschauen
könntet und mir noch Verbesserungsvorschläge macht, denn alles
funktioniert leider noch nicht…(erläuter ich gleich)
Nicht über komische Texte im Programm wundern- ich hab viel
experimentiert und wirklich hübsch sieht das ganze noch
nicht aus.
Wie gesagt, ich hab von VBA fast keine Ahnung Aber Reinhard hat sich dem Problem ja schon angenommen
also zu meinem letzten Problem:
ich krieg das einfach nicht hin, dass anhand der in den
Comboboxen ausgewählten Werte in der Excel-Tabelle ein Wert
entnommen wird (hier für „Sigma0“).
Ich würde den Selektierten Eintrag in der Combobox auslesen und daraufhin dann im Exel Sheet ( heisst das so?) die Daten auslesen
Achso was ich auch schon die ganze Zeit im Internet suche ist,
wie man das macht,dass meine Userform automatisch mit öffnen
der Datei abgespielt wird.
Die Sub Workbook_open oder so, würde ich mal vermuten
Danke schonmal!
mfg Michi
MfG Alex ( der mal Lust hatte ein wenig zu schreiben