Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Triviales Problem

Triviales Problem
25.01.2004 16:32:24
Boris
Hallo,
mal eine Frage:
wenn ich in die Zellen a1-a3 z.B. 2,4,6 eintrage, wie mache ich es, dass wenn ich eine Zahl verdopple, sich die anderen auch verdoppeln?
Es soll dabei keine Rolle spielen, welche zahl verändert wird. Folglich kann ich ja keine Formeln verwenden.
Wäre über jede Hilfe sehr erfreut.
Gruß
Boris

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Triviales Problem
25.01.2004 16:45:08
Boris
Hi Boris,
wie soll das von Statten gehen? Was heisst verdoppeln? In A2 steht eine 4 - dann gibst du in A2 eine 8 ein - ist das verdoppeln? Was soll passieren, wenn eine 7 eingegeben wird?
Grüße {Boris}
AW: Triviales Problem
25.01.2004 19:14:06
andre
hallo allerseits,
diesen code in das codemodul des gewünschten tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then
[a2] = [a1] * 2: [a3] = [a2] * 2
End If
If Target.Address = "$A$2" Then
[a1] = [a2] / 2: [a3] = [a2] * 2
End If
If Target.Address = "$A$3" Then
[a2] = [a3] / 2: [a1] = [a2] / 2
End If
Application.EnableEvents = True
End Sub

gruss andre
Anzeige
RE: Triviales Problem
26.01.2004 17:33:33
Boris
Hallo,
danke für die schnellen Antworten, aber, ich war da jetzt nicht so sehr auf verdoppeln bedacht, wie es sich vielleicht angehört hat...
also ich meinte das so
a1=2
a2=3
a3=6
...
wenn ich nun (egal in welches dieser Felder, z.b. a2) für a2 4 eintrage, soll das so aussehen
a1=2,67
a2=4
a3=8
...
und so weiter, es sollen sich alle Zahlen entspechend ändern und zwar so, dass die Verhältnisse untereinander gleich bleiben.
Ich benötige dies für eine chemische Versuchsreihe mit ca. 100 Chemikalien die ich mehrfach in verschiedener Größe durchführen will. Ich bin einfach zu faul, 20x100 Zahlen zu berechnen. Mit Excel muss das gehen und zwar relativ einfach, da bin ich mir sicher.
Gruß
Boris
Anzeige
AW: RE: Triviales Problem
26.01.2004 17:58:08
andre
hallo boris,
da bräuchtest du eine hilfszelle mit dem verhältnis. ich nehme an, dass es nicht bei allen varianten gleich ist, sonst bräuchtest du in meinem code statt der 2 nur eine andere verhältniszahl einzugeben
das makro reagiert auf eine änderung, und dann kann es die vorherigen werte nicht mehr feststellen.
also angenommen deine 3 zahlen stehen immer in den ersten drei zeilen, und die 4. wird für die verhältniszahl genutzt dann etwa so:
das ganze hat noch keine fehlerbehandlung, das ist beim ausfüllen der ersten drei zeilen lästig. diese variante rechnet bei jeder änderung der ersten drei zeilen. wenn also in spalte a was anderes steht kann man das auch einschränken.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Row = 1 Then
Cells(Target.Row + 1, Target.Column).Value = _
Target.Value * Cells(Target.Row + 3, Target.Column).Value
Cells(Target.Row + 2, Target.Column).Value = _
Target.Value * Cells(Target.Row + 3, Target.Column).Value ^ 2
End If
If Target.Row = 2 Then
Cells(Target.Row - 1, Target.Column).Value = _
Target.Value / Cells(Target.Row + 2, Target.Column).Value
Cells(Target.Row + 1, Target.Column).Value = _
Target.Value * Cells(Target.Row + 2, Target.Column).Value
End If
If Target.Row = 3 Then
Cells(Target.Row - 1, Target.Column).Value = _
Target.Value / Cells(Target.Row + 1, Target.Column).Value
Cells(Target.Row - 2, Target.Column).Value = _
Target.Value * Cells(Target.Row + 1, Target.Column).Value ^ -2
End If
Application.EnableEvents = True
End Sub

gruss andre
Anzeige
AW: RE: Triviales Problem
26.01.2004 18:17:19
andre
hallo boris,
das ganze noch mit fehlerbehandlung bzw. ausschluss des rechnens wenn mehr als eine zelle selectiert und nicht alle drei numerisch sind.
geht noch etwas zu vereinfachen, die isnumeric muss nicht 3x sein.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.Count = 1 Then
If Target.Row = 1 Then
If IsNumeric(Target.Value) And _
IsNumeric(Target.Offset(1).Value) And _
IsNumeric(Target.Offset(2).Value) Then
Cells(Target.Row + 1, Target.Column).Value = _
Target.Value * Cells(Target.Row + 3, Target.Column).Value
Cells(Target.Row + 2, Target.Column).Value = _
Target.Value * Cells(Target.Row + 3, Target.Column).Value ^ 2
End If
End If
If Target.Row = 2 Then
If IsNumeric(Target.Value) And _
IsNumeric(Target.Offset(1).Value) And _
IsNumeric(Target.Offset(-1).Value) Then
Cells(Target.Row - 1, Target.Column).Value = _
Target.Value / Cells(Target.Row + 2, Target.Column).Value
Cells(Target.Row + 1, Target.Column).Value = _
Target.Value * Cells(Target.Row + 2, Target.Column).Value
End If
End If
If Target.Row = 3 Then
If IsNumeric(Target.Value) And _
IsNumeric(Target.Offset(-1).Value) And _
IsNumeric(Target.Offset(-2).Value) Then
Cells(Target.Row - 1, Target.Column).Value = _
Target.Value / Cells(Target.Row + 1, Target.Column).Value
Cells(Target.Row - 2, Target.Column).Value = _
Target.Value * Cells(Target.Row + 1, Target.Column).Value ^ -2
End If
End If
End If
Application.EnableEvents = True
End Sub

gruss andre
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige