Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Integration

VBA Integration
25.02.2009 15:52:13
thomas
Hallo Leute bin neu hier, einige haben diese seite hier empfohlen und so bin ich hier gelandet
Zur Aufgabe:
Schreiben Sie ein Programm zur nummerischen Integration einer Funktion mit einer Variablen "x". Die Zellen eines Arbeitsblattes enthalten A1: die untere Integralgrenze, A2: die obere Integralgren-ze, A3: die Schrittweite, A4: x (muss vom Programm in einer Schleife bestimmt werden), A5: die Funktion als Formel. Das Integral soll in einer MsgBox ausgegeben werden.
So wie ich das hier verstanden habe ist in der Zelle A5, die Formel/Funktion...nur wie bau ich das alles dann in VBA ein.
Danke
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hausaufgabe?
25.02.2009 16:16:17
Daniel
Hi
... die solltest du eigentlich selber lösen.
falls du Detailfragen hast, gerne, aber Komplettlösungen nein.
btw wie sieht den die Formel aus, die berechnet werden soll, bzw in welcher Form ist sie anzugeben?
Gruß, Daniel
AW: Hausaufgabe?
25.02.2009 16:30:42
thomas
Ja das mit der Formel ist auch so mein Problem, es wurde keine Formel vorgegeben. Es ist die komplette Aufgabenstellung die ich oben geposted hab.
Desshalb bin ich von anfang an total verwirrt.
Anzeige
AW: Hausaufgabe?
25.02.2009 16:39:42
thomas
Ich habe mich nun soweit durchgelsen, dass es wohl irgendwie was mit Eval zu tun hat nur das wäre weit her geholt da wir damit nix zu tun hatten und nun es damit lösen sollen.
Oder gibt es eine andere Möglichkeit ?
Danke
AW: Hausaufgabe?
25.02.2009 16:43:43
Daniel
Hi
naja ist ja eingenlich nicht so schwer:
wenn du die Formel wie eine normale Excel-Formel in die Zelle A5 reinschreist und anstelle von X den Zellbezug auf die Zelle A4 rein setzt, dann schreibst du anschließend in A4 den x-Wert rein und bekommst in A5 den zugehörigen y-Wert angezeigt.
in etwa so für eine Lineare gleichung:
= 3*A4 - 5
jetzt muss du nur noch das Makro drumherumbasteln, daß nacheinander die X-Werte in A4 reinschreibt, dazu die Y-Werte aus A5 ausliest und aufaddiert.
Das ganze mit der Schrittweite multipliziert sollte dann das Integral ergeben (aber da musst du dich besser auskennen)
hth, Daniel
Anzeige
AW: Hausaufgabe?
25.02.2009 16:55:55
thomas
ahh danke genau sowas brauchte, jetzt geht mir ein licht auf.
Nur das mit der Schrittweite ist auch für mich neu :-D
Was meinst du genau damit?
AW: Hausaufgabe?
25.02.2009 17:01:17
Daniel
Hi
die numerische Berechnung von Integralen sollte dein Spezialgebiet sein, nicht meins ;-)
aber nur mit dem Aufaddieren der Y-Werte alleine ist es ja nicht getan, oder?
Gruß, Daniel
Anzeige
AW: Hausaufgabe?
25.02.2009 17:32:24
thomas
Ich hab mal bisschen probiert:
  • 
    Sub Integration2()
    Dim u#, o#, s#, x#, a#, I#
    u = Range("A1").Value
    o = Range("A2").Value
    s = Range("A3").Value
    x = Range("A4").Value
    For x = u To o Step s
    Call y(x)
    I = I + (a * s)
    Next
    MsgBox ("Das Integral beträgt: " & I)
    End Sub
    


    
    Function y(x)
    a = Range("A1").Value
    End Function
    


  • geht jedoch imernoch nicht so wirklich
    Anzeige
    AW: Hausaufgabe?
    25.02.2009 18:03:37
    Daniel
    Hi
    du hast 2 wichtige Punkte vergessen:
    1. den aktuellen X-Wert in die Zelle A4 reinschreiben
    2. den dazugehörigen Y-Wert aus der Zelle A5 auslesen
    dafür liest du wiederholt die Untere Grenze aus A1 und Addierst diese zum Intervall auf.
    außerdem:
    das mit dem For x = u to o Step s würde ich auch nochmal überdenken, ob das wirklch von Anfang bis zum Ende dem Verfahren der Numerischen integration, wie du es von Hand ausführst, entspricht.
    also im Prinzip ist es schon richtig, aber im Detail noch verbesserungswürdig.
    mach mal den einfachen Test mit einer Linearen funktion (y=X), da kannst du das Integral ja im Kopf ausrechnen und das Ergebnis vergleichen.
    und nochwas
    bei so einem kleinen Makro würde ich noch keine Unterfunktionen oder ähnliches Schreiben, sondern alles in ein Makro packen.
    Gruß, Daniel
    Anzeige
    AW: Hausaufgabe?
    25.02.2009 18:30:49
    thomas
    mmmh deine zwei angesprochenen punkte, wie setze ich das in die tat um ?
    Kannste das bitte posten, wenn ich ja schon auf den richtigen weg bin schaff ich den rest dann auch noch irgendwie.
    danke
    AW: Hausaufgabe?
    25.02.2009 18:56:27
    Daniel
    Hi
    eine Variable schreibt man wiefolgt in eine Zelle
    Range("A1").Value = a
    und auslesen tut man sie dann so:
    a = Range("A1").Value
    die richtigen Zellenaddressen und Variablen wirst du wohl hoffentlich einsetzen können, sonst hast du keine Gute Note verdient.
    Gruß, Daniel
    Anzeige
    AW: Hausaufgabe?
    25.02.2009 19:04:34
    thomas
    Sry, funktioniert aber immernoch nicht.
    Stehe da gerade auf dem schlauch
    AW: Hausaufgabe?
    27.02.2009 00:25:29
    Daniel
    Hi
    du musst:
    1. Von Hand: Formel in Zelle A5 schreiben, und zwar als Excelformel, mit Zellbezug auf A4 anstelle von X
    2. im Makro:
    - in einer Schleife den X-Wert von u nach o schrittweise erhöhen.
    - den X-Wert in die Zelle A4 reinschreiben
    - den Y-Wert aus der Zelle A5 Auslesen und in einer Variable aufaddieren.
    die Berechnng der Formel macht Excel automatisch, da brauchst du dich im Makro nicht weiter drum kümmern.
    kann eigentlich nicht so schwer sein, aber da es eine Hausaufgabe ist, werde ich das Makro nicht für dich schreiben, dass musst du schon selber machen.
    Gruß, Daniel
    Anzeige
    ;
    Anzeige

    Infobox / Tutorial

    VBA Integration für die numerische Berechnung von Integralen in Excel


    Schritt-für-Schritt-Anleitung

    1. Vorbereitung des Arbeitsblattes:

      • Trage die unteren und oberen Grenzen des Integrals in die Zellen A1 und A2 ein.
      • Gib die Schrittweite in die Zelle A3 ein.
      • In Zelle A4 wird der x-Wert eingesetzt, und in Zelle A5 die Funktion als Excel-Formel. Beispiel: =3*A4 - 5.
    2. VBA-Editor öffnen:

      • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    3. Neues Modul hinzufügen:

      • Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle "Einfügen" > "Modul".
    4. VBA-Code eingeben:

      • Füge den folgenden Code in das Modul ein:
    Sub Integration2()
        Dim u#, o#, s#, x#, I#
        u = Range("A1").Value
        o = Range("A2").Value
        s = Range("A3").Value
        I = 0 ' Initialisiere das Integral
        For x = u To o Step s
            Range("A4").Value = x ' Schreib den aktuellen x-Wert in A4
            I = I + Range("A5").Value * s ' Addiere den y-Wert zur Summe
        Next x
        MsgBox ("Das Integral beträgt: " & I)
    End Sub
    1. Makro ausführen:
      • Schließe den VBA-Editor und gehe zurück zu Excel.
      • Drücke ALT + F8, wähle Integration2 aus und klicke auf "Ausführen".

    Häufige Fehler und Lösungen

    • Problem: "Das Integral wird nicht korrekt berechnet."

      • Lösung: Stelle sicher, dass die Funktion in Zelle A5 korrekt eingegeben wurde und die Zellbezüge stimmen.
    • Problem: "Die MsgBox zeigt 0 an."

      • Lösung: Überprüfe, ob die Werte in A1, A2 und A3 korrekt sind und dass die Schleife den richtigen Bereich durchläuft.

    Alternative Methoden

    Eine andere Möglichkeit zur numerischen Integration in Excel ist die Verwendung von Excel-Funktionen wie SUMME und PRODUCT. Du könntest auch den Solver verwenden, um Integrale zu berechnen, sollte dies in deinem Anwendungsfall sinnvoll sein. Diese Methoden sind jedoch nicht so flexibel wie ein VBA-Ansatz.


    Praktische Beispiele

    Hier ist ein einfaches Beispiel für die Berechnung des Integrals einer linearen Funktion:

    1. Untere Grenze (A1): 0
    2. Obere Grenze (A2): 10
    3. Schrittweite (A3): 0.1
    4. Formel in A5: =A4 (für die Funktion y=x)

    Führe das Makro aus, um das Integral von 0 bis 10 zu berechnen. Das Ergebnis sollte 50 sein.


    Tipps für Profis

    • Optimierung: Überlege, die Schrittweite dynamisch anzupassen, um eine genauere Approximation zu erhalten.
    • Erweiterung: Du kannst den Code erweitern, um mehrere Funktionen zu integrieren oder komplexe Funktionen über die Excel-Formeln zu verarbeiten.

    FAQ: Häufige Fragen

    1. Frage: Was ist VBA und wie hilft es bei der Integration in Excel?
    Antwort: VBA (Visual Basic for Applications) ist eine Programmiersprache, die in Excel integriert ist und es ermöglicht, benutzerdefinierte Funktionen und Automatisierungen zu erstellen, wie z.B. die numerische Integration.

    2. Frage: Kann ich auch andere Funktionen integrieren?
    Antwort: Ja, du kannst jede Funktion, die du in Excel definieren kannst, in das Makro einfügen, solange sie als Excel-Formel in Zelle A5 eingegeben wird.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige