Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Formel berechnen



Excel-Version: 8.0 (Office 97)

Betrifft: Formel berechnen
von: Antje
Geschrieben am: 28.05.2002 - 11:07:44

Hallo Profis,

ich möchte Quotientenrechnung mit Variablen ausführen.. klappt aber nicht.
Wo ist der Fehler?
A,B,C sind die Variablen, welche ich vorher einlese.
Wie kann ich dies als Formel definieren?
Byte2 = "DIV(1296*(A-1)+36*(B-1)+(C-1),255)"
Byte3 = "MOD(1296*(A-1)+36*(B-1)+(C-1),255)"
Danke
Antje


  

Re: Formel berechnen
von: Kay.O
Geschrieben am: 28.05.2002 - 11:56:29

Hi,

versteh ich nich ganz, aber ich frag mal vorsichtig.
ist das ein VBA code ?
woher ließt du die variablen ein und wie ?
und wozu benutzt du byte2 & byte3 ???

gruß
Kay


  

Re: Formel berechnen
von: Antje
Geschrieben am: 28.05.2002 - 12:14:59

Hallo Kay,

also ich hab mir meine Formel auf dem Blatt eingegeben und aufgezeichnet. Im Modul sieht das dann so aus:
byte3.FormulaR1C1 ="MOD(1296*((A1)-1)+36*((A2)-1)+((A3)-1),255)"
In meinem code lese ich die Varialben durch eine InputBox ein, das ist soweit kein Problem.. nur die Formel krieg ich nicht auf die Reihe! Am Ende soll in der Variablen "Byte2" bzw. "Byte3" das Endergebnis der Berechnung stehen!
Für jede Hilfe..besten Dank!

Gruß
Antje

  

Re: Formel berechnen
von: Hans W. Hofmann
Geschrieben am: 28.05.2002 - 12:47:23

Hallo Antje,

was ist eine Quotientenrechnung?
Die nächste Potenz nach 36 ist 216...
Was soll denn überhaupt berechnet werden. Ein Zahlenwert zur Basis 6?

Gruß HW


  

Re: Formel berechnen
von: Antje
Geschrieben am: 28.05.2002 - 12:58:48

Hi HW

Div,Mod = "ganzzahliges Teilen" und "Rest von ganzzahligem Teilen"
Also z. B Div(12,5)= 2 und Mod(12,5)=2
wobei 12 eine Variable ist und durch "(1296*(A-1)+36*(B-1)*(c-1)) berechnet werden soll und 5 ersetzt durch 255.
Das Ergebnis soll dann in der Variablen Byte stehen!

Bitte helfen!
Danke
Gruß
Antje


  

Re: Formel berechnen
von: Hans W. Hofmann
Geschrieben am: 28.05.2002 - 14:21:15

Ich hab zwar immer noch keine klare Vorstellung was Du erreichen willst. Aber grundsätzliches
DIV ~ INT(12,5/5)
MOD ist OK
und beim Zuweisen zu einer Zelle
ZELLE.Formula="=MOD(blalba,blub"

Hilft das weiter

Gruß HW


  

Re: Formel berechnen
von: Antje
Geschrieben am: 28.05.2002 - 15:07:33

Hilfe

also folgendermaßen
Dim Z1#,Z2#,Z3#,B3#,B4#
Dim B2 as variant
'Die Variablen jetzt vorbelegt mit
Z1 = 12
Z2 = 18
Z3 = 26

B2.Formula = 1296 * (Z1 - 1) + 36 * (Z2 - 1) + Z3 - 1
B4 = ActiveCell.Value

'jetzt möchte ich mit dem errechneten Wert, welcher in B4 steht die Funktion MOD(B4/255) ausführen

B2.Formula = "=Mod(B4, 255)" <--- funktioniert nicht!
B3 = ActiveCell.Value '<--- Ergebnis soll in B3 geschrieben werden

Danke
Antje


  

Re: Formel berechnen
von: Martin Beck
Geschrieben am: 28.05.2002 - 16:29:03

Hallo Antje,

so wird das nix. Was stellst Du Dir denn vor, was B2, B3 und B4 sind? Variablen? So hast Du Sie zumindest deklariert. Oder möchtest Du die Zellen(!) B2, B3 und B4 verwenden? Dann darfst Du nicht

B2.Formula

schreiben, sondern

Range("B2").Formula

Verwenden keine Bezeichnungen als Variablennamen, die auch gleichzeitig Zellbezeichnungen sind, das führt nur zu Problemen.

Welches ist übrigens die "ActiveCell", die Du in Deinem Code ansprichst?


Ich vermute mal,

1. Du verwechselst Zellen und Variablen und willst

2. in der Zelle B3 per VBA die Formel
=REST(1296*(12-1)+36*(18-1)+26-1; 255)
eintragen, wobei 12, 18 und 26 Werte sind, die vorher den Variablen Z1, Z2, Z3 zugewiesen werden.

Verwende dazu folgendes Makro:


Sub mod_Berechnung()
Dim Z1#, Z2#, Z3#
'Die Variablen jetzt vorbelegt mit
Z1 = 12
Z2 = 18
Z3 = 26
Range("B3").Formula = "=Mod(1296*(" & Z1 & "-1)+36*(" & Z2 & "-1)+" & Z3 & "-1, 255)" 
End Sub

Da in der Formel von allen 3 Variablen der Wert 1 abgezogen wird, wäre es allerdings einfacher, die Variablen gleich mit Z1=11, Z2=17 und Z3 = 25 zu belegen.

Dann würde das Makro vereinfacht zu

Sub mod_Berechnung()
Dim Z1#, Z2#, Z3#
'Die Variablen jetzt vorbelegt mit
Z1 = 11
Z2 = 17
Z3 = 25
Range("B3").Formula = "=Mod(1296*" & Z1 & "+36*" & Z2 & "+" & Z3 & ", 255)" 
End Sub

Gruß
Martin Beck



 

Beiträge aus den Excel-Beispielen zum Thema "Formel berechnen"