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

Ändern Zellinhalt führt Makro aus

Ändern Zellinhalt führt Makro aus
29.06.2022 22:43:50
Klaus
Guten Abend Herbers, die Inhalte der Zellen (G66 und H66) schreiben nach Umrechnung Parameter nach G68 und H68. Jede Veränderung der Werte G68 oder H68 (automatisch neu berechnen ist an) sollte nun via Makro dessen Ergebnis nach I70 schicken. Aus MS-Hilfen :

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$G$68" Or Target.Address = "$H$68" Then
MsgBox "Sie haben gerade Zelle G68 oder H68 verändert!"
End If
End Sub
' Geht bei G66 und H66, die Mess löpt schon bei Kick, das Makro reagiert aber nicht. Die korrespondierenden G68 und H68 berechnet es auch nicht neu.
' Das Makro "Call Schaltfläch2_Klicken" sollte nun statt der msgbox - dies nur als Test - ausgeführt werden und dessen Ergebnis nach I70 gesendet werden

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") = Format(w, "0.000")
End Sub
What to do ? Danke Klaus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ändern Zellinhalt führt Makro aus
30.06.2022 06:42:45
ralf_b
wenn du die Werte von Hand eingibst in G68 u. H68 sollte Worksheetchange funktionieren Wenn sich die Werte aber durch eine Formelberechnung entstehen dann wird change nicht aktiv. Hier wäre das calculate event besser.
Im Change solltest du die Zellen abfragen ,die auch wirklich von Hand verändert werden. Was sind G66 H66?
AW: Ändern Zellinhalt führt Makro aus
30.06.2022 12:07:58
Klaus
Danke ralf_b, derzeit gebe ich händisch in G66 und/oder H66 einen oder zwei Werte ein. Aus diesen werden automatisch zwei Parameter (eigentlich nur zwei Divisionen) errechnet und G68 bzw. H68 eingetragen. Aus diesen Daten errechnet die Schaltfläche2 (auf diese möchte ich gerne verzichten) dann das Formelergebnis, das in I71 eingetragen wird. Deinen Tip calculate schaue ich mir an. Die Schaltfl ist jedenfalls unnötig und unprofessionell. Gruß Klaus
Anzeige
AW: Ändern Zellinhalt führt Makro aus
30.06.2022 18:10:54
ralf_b
du kannst den Schaltflächencode auch wo anders unterbringen. VBA kann auch rechnen. Auch die Tabellenfunktionen gibts in VBA.
das workshet_change kann auch G66 H66 abfragen .
AW: Ändern Zellinhalt führt Makro aus
01.07.2022 14:39:08
Klaus
Guten Mittag ralf_b,
ich blicke nicht wirklich durch das calculate-event. Muß ich nicht zunächst das Calculate "anschalten", um dann "daraus abzufragen", ob sich etwas in G68 oder H68 geändert hat, um dann das Makro SchaltfI2 mit Call aufzurufen ? Magst Du mir nicht einen Dreizeiler, ggf. mit Kommentaren, machen ? THX, Klaus
AW: Ändern Zellinhalt führt Makro aus
01.07.2022 18:07:29
ralf_b
Hallo Klaus,
das calculate event tritt auf wenn eine Berechnung im Blatt stattfindet. Hast du die Berechnung irgendwann vorher ausgeschaltet, dann könnte das natürlich hinderlich sein. im change wird auch ein Parameter "Target" zur Verfügung gestellt, der die geänderte Zelle(n) darstellt. Im Calculate gibt es das nicht. Ich soll dir also einem Dreizeiler schreiben. Dafür müßte ich aber erstmal kapieren was du da vorhast. Und das ist bisher noch nicht der Fall. Ich habs gern etwas detaillierter. Aber mit den Informationen, die du bisher bekommen hast, sollte es doch für dich möglich sein, da was Funktionables zu basteln.
Anzeige
AW: Ändern Zellinhalt führt Makro aus
01.07.2022 20:02:19
Klaus
Hi ralf_b, oft ist die Kommunikation per EMail schwierig; mein Fehler, es nicht gut genug zu beschreiben ! Die Schaltfl2 ist eine Notlösung, nur aus meinem Unverständnis entstanden. Diesen Button möchte ich komplett streichen. Die "wirklichen" x- und y-Koordinaten tippe per Hand in G66 und/oder H66 ein. Nur, um zu sehen, daß Excel's autom. Neuberechen das "verstanden hat", sehe gibt's so in G68 und/oder H68 nun bei jeder Änderung. Das ist nicht wirlich notwendig. Das "wirkliche x" xi=G66/$A$27 (das neue, wahre x, als xi verkleidet) und psi=H66/$A$31 (y, nun psi) kann ich mit dem Schaltfläche2-Button, sogar als "Teiler, also Divisor" aus G66/$A$27 und H66/$A$31 holen. Das Ergebnis sollte nun in Sei doch bitte so nett, mir zu sagen, wo ich den Calculate-Event einbauen muß und, wo ich in diesem ein Schreiben des Erbebnissed in I70 erzwinge. Das tut's abber auch nicht immer typengerecht : oft meint er, amerik. Punkt, statt deutschem Komma benutzen zu müssen ... Danke für Deine Mühen, Nice WE, Klaus
Anzeige
AW: Ändern Zellinhalt führt Makro aus
01.07.2022 20:59:20
ralf_b
Hallo Klaus, ausgehend von deinen ersten Postings, habe ich Folgendes abgeleited. Soweit wie ich es verstanden habe. In meinem Test wird nach Änderung in Zeile 66 die Berechnung in Zeile 68 durchgeführt. In Zeile 68 sind hoffentlich Formeln ,die mit Zeile 66 verbunden sind. In I70 wird ein Wert eingetragen nachdem die Matrix durchgerechnet wurde.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$66" Or Target.Address = "$H$66" Then
If Range("G66")  "" And Range("H66")  "" Then
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") = Format(w, "0.000")
End If
End If
End Sub

Anzeige
AW: Ändern Zellinhalt führt Makro aus
02.07.2022 00:04:17
Klaus
Guten Abend ralf_b, für das alles gibt's nur ein Wort : toll !!! Bleibt nur eine Rückfrage. Wie kann ich in I70 ein deutsches Komma, statt Punkt erhalten ? Sleep well, Klaus
AW: Ändern Zellinhalt führt Makro aus
02.07.2022 09:02:03
ralf_b
du formatierst es doch mit dem Punkt so.

Range("i70") = Format(w, "0.000")
format() gibt eine Text zurück, der wir ind der Vorgabe aussieht. das Kannst du handhaben wie du möchtest. Das wäre eine Hausaufgabe für dich.
AW: Ändern Zellinhalt führt Makro aus
02.07.2022 11:31:40
Klaus
Sorry ralf_b, ich wußte 'mal wieder nicht, daß Format gleich Text ist ! Ohne Format wird's Zahl mit Komma. Bis demnächst, Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige