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

Value multiplizieren

Value multiplizieren
Chris
Hallo zusammen.
Leider kenne ich mich mit VBA nicht so gut aus, weshalb auch folgender Code nicht funktioniert:
Rng2.Value * X.Value/Y.Value = Rng1.Value
Rng1, Rng2, X und Y sind alle als Range definiert.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Vielleicht geht's umgekehrt ?
02.02.2010 11:30:05
Renee
Hi Chris,
Rng1.Value = Rng2.Value * X.Value / Y.Value 
GreetZ Renée
AW: Vielleicht geht's umgekehrt ?
02.02.2010 11:38:43
Chris
Leider nein,
es ist auch glaube ich wichtig, in welcher Reihenfolge die stehen, da der Code vollständig so lauten wird:
If IsEmpty(Target) Then GoTo errorcatcher 'falls die Zellen leer sind springe zu errorcatcher
Sub ()
If Not Intersect(Rng1, Target) Is Nothing Then  'falls Rng1 mit Daten gefüllt
Rng2.Value * X.Value / Y.Value = Rng1.Value 'werden Daten in Rng2 und Rnd3 kopiert
Rng3.Value * X.Value / Y.Value = Rng1.Value
End If
End Sub

Anzeige
Das ist ein eindeutiger Syntaxverstoss,...
02.02.2010 12:05:16
Luc:-?
...Chris,
wie es auch schon Renée angedeutet hatte. = kann als Vgls- oder als Zuweisungsoperator dienen. Links vor einem Zuweisungsoperator muss immer der-/dasjenige stehen, dem der nach dem Operator stehende Ausdruck zugewiesen wird. Wird = als Vglsoperator benutzt, formal ist das hier der Fall, kann der Ausdruck nicht einfach so dastehen; er muss entweder ebenfalls etwas zugewiesen wdn oder in ein ganzes Vglskonstrukt eingebettet sein → If vglsausdruck Then...
Gruß Luc :-?
Richtig, wichtig ist die Richtung! ;-)
02.02.2010 12:57:30
Renee
Hi Chris,
Leider nein,
es ist auch glaube ich wichtig, in welcher Reihenfolge die stehen

Da hast du recht. Die Reihenfolge ist wichtig, aber bei dir verkehrt!
Vielleicht zeigst du uns mal den ganzen Code, den mir scheint da liegt noch verschiedenes anderes im Argen. Z.B. testet dein If keineswegs, ob die Rng1 mit Daten gefülltist.
GreetZ Renée
Anzeige
AW: Richtig, wichtig ist die Richtung! ;-)
02.02.2010 13:23:30
Chris
Anbei der ganze Code. Ziel: Falls ich in Rng1 oder Rng2 oder Rng3 einen Wert schreibe, soll dieser Wert verknüpft mit X, Y, Z usw. in die freien Rng kopiert werden. In meinem Beispiel wäre das:
Falls ich den Wert 10 in eine der Zellen von Rng1 schreibe, soll dieser Wert multipliziert mit der entsprechenden Zelle von X dividiert durch Y werden und dann die Zellen von Rng2 und Rng3 kopiert werden. Das Ganze muss ich dann auch noch analog für die anderen Rng machen (bisher nur die 1 Code-Zeile!)
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo errorcatcher
Dim X As Range
Dim Y As Range
Dim Z As Range
Dim A As Range
Dim B As Range
Dim C As Range
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
Set X = Range("E74:Q74")
Set Y = Range("E82:Q82")
Set Z = Range("E142:Q142")
Set A = Range("E144:Q144")
Set B = Range("E199:Q199")
Set C = Range("E203:Q203")
Set Rng1 = Range("E78:Q78")
Set Rng2 = Range("E143:Q143")
Set Rng3 = Range("E201:Q201")
If IsEmpty(Target) Then GoTo errorcatcher
If Not Intersect(Rng1, Target) Is Nothing Then
Rng2.Value * X.Value / Y.Value = Rng1.Value
Rng3.Value = Rng1.Value
End If
If Not Intersect(Rng2, Target) Is Nothing Then
Rng1.Value = Rng2.Value     'analog zu oben
Rng3.Value = Rng2.Value
End If
If Not Intersect(Rng3, Target) Is Nothing Then
Rng1.Value = Rng3.Value
Rng2.Value = Rng3.Value
End If
errorcatcher:
Application.EnableEvents = True
End Sub

Anzeige
föllich ferkehrt
02.02.2010 13:39:45
Rudi
Hallo,
du kannst keinen Bereich mit einem anderen Bereich multiplizieren bzw. durch ihn dividieren. D.h. für den 1. Fall musst du die Werte in einer Schleife berechnen. Außerdem muss auf der linken Seite dr Gleichung das Ergebnis stehen und rechts der Term.
for i=1 to 13
rng2(i)=rng1(i)*y(i)/x(i)
next
Gruß
Rudi
AW: föllich ferkehrt
02.02.2010 15:08:51
Chris
OK, danke. Werde ich so umsetzen!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige