Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Automatische Funktionsdarstellung in Excel





Frage

Hallo, Bin Excel-Anfänger und könnte Hilfe gebrauchen: Beim Versuch eine mathematische Funktion mit den grafischen Mitteln von Excel automatisch darstellen zu lassen habe ich insbesondere die Schwierigkeit, so etwas wie eine (z.B. aus Basic bekannte) For-Next Schleife von einem Anfangswert mit gegebener Stepweite bis zu einem Endwert immer wieder durchlaufen zu lassen und dabei bei jedem Durchlauf einen nach einer angegebenen Funktion berechneten Wert, mit den Durchläufen fortschreitend, in eine Tabelle einzutragen. Gelingt dies, wäre eine (automatische) grafische Darstellung der Funktion sicher kaum noch ein Problem. Wie lässt sich diese Aufgabe möglichst einfach und mit dem Befehlsvorrat von Excel lösen? Bin für jede Hilfe dankbar! Gruss Manjo

Antwort 1 von piano

Hallo
Am einfachsten (ohne VBA):
Bilde die Reihe der Ausgangswerte in Spalte "A" (1.Wert in A1, 2.Wert in A2, dann A1 + A2 hinunterziehen). Formel in B1 z.B.: "=WURZEL(A1)" und diese hinunterziehen.
Mit VBA:

Sub FormelErgebnisse()
Dim i As Integer
Sheets("Tabelle1").Activate
Application.ScreenUpdating = False
Range("C1").Value = "Ergebnis"
Range("D1").Value = "Input"
Range("C1").Activate
    For i = 5 To 77 Step 2
        ActiveCell.Offset(1, 0).Select      ' Zeile + 1
        ActiveCell.Value = QuadratWurzel(i) ' Ergebnis
        ActiveCell.Offset(0, 1).Value = i   ' Parameter (Spalte + 1)
    Next i
Application.ScreenUpdating = True
End Sub
Function QuadratWurzel(Wert)
    QuadratWurzel = Sqr(Wert)
End Function


Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -



Antwort 2 von Manjo

Hi piano!

Erst mal vielen Dank für Deine Zuschrift. Leider ist die einfache Lösung ohne VBA zu einfach für meine Anwendung, da zur Errechnung des Ergebnisses bei mehreren Gleichungen und mehreren Unbekannten schon immer ein ganzes Excel Blatt abgearbeitet werden muss, um auch nur ein Ergebnis zu bekommen und ich wüsste nicht, wie ich dann die Tabellengenerierung ohne eine Art Rücksprungbefehl durchführen könnte (wenn nicht 'zu Fuss').
Ich bin etwas enttäuscht darüber, dass bei Excel mit all seinen wirklich vielseitigen Möglichkeiten und komplexen Funktionen unter dem normalen Befehlssatz offenbar keine Schleifenbildung vorgesehen ist.

Deine Lösung mit VBA sieht allerdings sehr interessant aus und ich glaube auch , daß sie wohl mein Problem löst, wenn ich mich erst etwas mehr mit der Materie befasst habe. Im Augenblick weiss ich nicht einmal, wie ich das VBA Programm in meine Excel-Tabelle einbringen kann. Auch VBA selbst ist mir leider (noch) nicht so geläufig.
Ich bleibe aber dran und werde diesen Weg bestimmt weiter verfolgen.

Vielen Dank noch einmal für Deine Mühe!

Gruss Manjo

Antwort 3 von piano

Hallo
Noch ein Tip dazu:
Alt + F11 öffnet VBA-Umgebung, dann "Einfügen Modul" und den Code einfügen.
Start mit "Extras - Makros - Makro" oder Schaltfläche erstellen und den Makro zuweisen.
Gruß piano


Antwort 4 von Manjo

Hallo piano,
danke für den wertvollen 'Nachschlag'; ich werde das in Kürze mal ausprobieren. Eine Abwandlung des VBA-Codes (den ich noch nicht beherrsche) wird aber wohl nötig sein, da ich zwar z.B. eine recht komplexe Filterberechnung auf einem Excelblatt habe, die sehr schön für eine diskrete Frequenz die Dämpfung berechnet; aber erst eine mehrfache Berechnung einer ganzen Reihe solcher Punkte für einen ganzen Frequenzbereich erlaubt dann die Darstellung einer sehr viel aussagekräftigeren Kurve für den Dämpfungsverlauf über der Frequenz.

In Basic war ich früher mal ganz gut, habe dann Pascal angefangen und wieder aufgehört, als diese Anwendungen wie auch Excel, derartiges Programmieren eigentlich überflüssig erscheinen liessen. Nun geht da aber wohl doch kein Weg dran vorbei!?

Nochmals besten Dank!
Und Gruß, Manjo

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: