Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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
Makro ohne neuen Button
17.09.2022 11:54:54
Klaus
Hi Herbers, ich würde gerne direkt aus der Tabelle mehrfach ein Makro mit Parameterübergabe aufrufen und die Ergebnisse in die Tabelle zurückschreiben. Stellt Euch bitte vor : die Parameter x und y stehen in A50 bis A60 bzw. B50 bis 60. Mit denen soll nun das Makro aufgerufen werden, das seine Werte in C50 ... C60 schreibt. Hintergrund : das bestehende Makro liefert nur z.T. glaubhafte Daten; ich möchte so also den Schwächen des Makros "auf die Schliche kommen". Danke, Klaus

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
und das Makro?
17.09.2022 12:02:51
ralf_b
Wo ist denn der Bösewicht?
AW: und das Makro?
17.09.2022 14:29:30
Klaus
@ralf_b Gerade diesen Bösewicht versuche ich einzukreisen. Mal paßt es auf 1 NK-Stelle (wir reden von mm), ein anderes mal nicht mal die richtige 10-ner-Potenz ! Das Makro is very, very tricky. Die Math. ist leider nicht auf meinem Mist gewachsen. Das sind Faktoren, die über (ein running) xi und psi bis 8. Grades gehen. H. Taylor läßt grüßen. Das Makro :

Sub Schaltfläche2_Klicken()
Dim z, s As Integer
Dim xi, psi, pab64d, w As Double
Dim w_im_punkt As Double
xi = Range("G68").Value
psi = Range("H68").Value
pab64d = Range("C45").Value
w_im_punkt = 0
For s = 1 To 9
For z = 1 To 9
w_im_punkt = w_im_punkt + Cells(s, z) * xi ^ (s - 1) * psi ^ (z - 1)
Next
Next
w_im_punkt = w_im_punkt * pab64d
Range("i70") = w
End Sub
THX, Klaus
Anzeige
AW: und das Makro?
17.09.2022 14:40:09
ralf_b
ich kann mich ja täuschen aber wo erhält w seinen Wert?
Range("i70") = w
AW: und das Makro?
17.09.2022 20:22:15
Klaus
sorry ralf_b ,mein fehler ! da gibt's schon zwei doppelte, aber gleichsinnige makros. eines tabelliert w über je 1/20 xi und psi nach E80 bis Y100 und ein anderes schreibt w_im_punkt As Double, das nur ein xi und ein psi punktuell nach I70 ? schreibt. Schon diesen Knoten wollte ich sauber auflösen : zwei mal das Gleiche, mal mit Laufvariablen, anderes mal mit nur zwei Eingängen gibt (you see) nur Spagetti-Code. Nun käme noch eine dritte Spagetti hinzu : xi und psi aus zwei Feldern auslesen und daneben die Ergebnisse eingetragen zu kriegen ? Dat is' einfach nur UNPROFESSIONELL. Genau da brauche ich die Herber-Könner ! Bemerkung am Rande. Das wahre Prob. ist wohl weniger Excel, als eher amerikanischer Art : die schmeißen da mit umgerechneten SI-Einheiten, Rechenregeln (höherer vor niedriger Rechenart, Klammern ) um sich, wie der Weihnachtsmann mit den Eiern, oder war's der Osterhase ? Das war der Grund meiner Fage : wie übersetze ich diese merkwürdige math. Schreibweise ? Was will mir der Dichter damit sagen ? Gerne mehr Infos, wenn Du Dich mit Verständnis-Dingen auch außerhalb von Excel beschäftigen möchtest. Gut's Nächtle Klaus
Anzeige
AW: und das Makro?
17.09.2022 22:03:24
ralf_b
hmm, ich glaub da bin ich raus. ich kann dir zwar erklären was in den Makro so abgeht, aber mit Mathe-Kunststücken hab ich's nicht so.
w_im_punkt + Cells(s, z) * xi ^ (s - 1) * psi ^ (z - 1)
Cells(s,z) wert aus einer Matrix ({1.9,}{1.9}) zeilenweise s werden die Spaltenwerte z berechnet , Cells(zeilennr , spaltennr) . hier scheinbar verdreht benutzt
* multiplikation
^ (s-1) Potenz
abarbeitung von rechts nach links
AW: und das Makro?
18.09.2022 13:08:40
Klaus
Danke ralf_b, es ist weise von Dir, sich math. damit nicht weiter zu beschäftigen : das ist eine Taylorreihe, was mich schon Monate gekostet hat zu durchschauen. Nun gibt's vom Volltreffer bis zur Abweichung um den Faktor 100 alles mögliche. Ggf. ist der Dreher, den Du entdeckt hast verantwortlich. Zudem ist mir eingefallen, daß mir einer von Euch 'mal einen String gebaut hat, den ich direkt in das Blatt setzen und berechnen kann. Ich hoffe, daß das im Archiv wiederfinde ... Nice Sonntag noch, Klaus
Anzeige
AW: Makro ohne neuen Button
17.09.2022 12:40:26
GerdL
Moin Klaus,
ein Ansatz.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As Range
If Not Intersect(Target, Range("B50:B60")) Is Nothing Then
For Each B In Intersect(Target, Range("B50:B60"))
If B > 0 And B.Offset(0, -1) > 0 Then
Application.EnableEvents = False
Call MeinMakro(B, B.Offset(0, -1).Value)
Application.EnableEvents = True
End If
Next
End If
End Sub
Sub MeinMakro(R As Range, A As Double)
R.Offset(0, 1) = A - R.Value
End Sub
Gruß Gerd
AW: Makro ohne neuen Button
17.09.2022 14:08:43
Klaus
Schönen Sa. Gerd, Eure Ping-Zeiten sind beeindruckend ! Hierzu muß ich aber in meiner Unkenntnis ein schon bestehendes WorksheetChange noch aufsplitten. Laß mir bitte ein paar Tage, um Deine Lösung in mein Projekt einzuarbeiten. Ich hatte gehofft, man könne das vorhandene Makro "umarbeiten". Mal wie gebabt je ein xi und phi, aber auch mit lfdm Parametern ansprechen. Das Makro

Sub Schaltfläche2_Klicken()
Dim z, s As Integer
Dim xi, psi, pab64d, w As Double
' Dim w_im_punkt As Double
xi = Range("G68").Value
psi = Range("H68").Value
pab64d = Range("C45").Value
w = 0
For s = 1 To 9
For z = 1 To 9
w = w + Cells(s, z) * xi ^ (s - 1) * psi ^ (z - 1)
Next
Next
w = w * pab64d
Range("i70") = w
End Sub
sollte sowohl über je ein Einzel-xi und -psi, aber auch mit lfd. xi und psi ansprechbar sein. Melde mich wieder. Gruß Klaus
Anzeige
AW: Makro ohne neuen Button
17.09.2022 13:44:55
Daniel
Hi Herberkollege
Eine Möglichkeit ware; das Makro in eine Funktion umzuschreiben, dh mit Rückgabewert
Dann kannst du diese Funktion als Formel in die Zellen C50:C60 schreiben und die das Ergebnis anschauen.
Wenn du bei bestimmten werten dann das ganze mal im Einzelstep testen willst, setzt du einen Haltepunkt ins Makro und gibst die Formel an dieser Stelle erneut ein (reinklicken, Enter drücken)
Eine Funktion sieht prinzipiell so aus:

Function Multi(x, y)
Dim erg
erg = x * y
Multi = erg
End Function
In der Zelle C50 steht dann

=Multi(A50;B50)
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige