Ich habe eine Spalte mit 3 Zellen: A1, A2 und A3. Ich möchte, dass die numerische Summe der 3 Zellen konstant bleibt, wenn ich eine der 3 Zellen erhöhe oder verkleinere. Das heißt, ich möchte, dass jede Erhöhung oder Verkleinerung einer Zelle gleichmäßig auf die anderen 2 Zellen verteilt wird. Ich beginne beispielsweise mit 3 + 5 + 2 = 10. Ich ändere 5 in 6, sodass ich automatisch 2,5 + 6 + 1,5 = 10 habe. Bitte beachten Sie, dass ich in Wirklichkeit etwa 20 Zellen haben werde, die konstant 100 ergeben sollen. Vielen Dank.
Antwort1
FüllenA1durchA20mit Werten, die sich summieren auf100:
Platzieren Sie dann folgendeEreignismakroim Arbeitsblattcodebereich:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, Delta As Double
Set rng = Range("A1:A20")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Delta = (100 - Range("A21").Value) / 19
Application.EnableEvents = False
For Each r In rng
If r.Address <> Target.Address Then
r.Value = r.Value + Delta
End If
Next r
Application.EnableEvents = True
End Sub
Sobald das Makro installiert und aktiv ist, erkennt es jede Änderung der Werte inA1durchA20und passen Sie die anderen Werte so an, dass die 100 erhalten bleibt. Ändern Sie immer nur eine Zelle auf einmal.
Da es sich um Arbeitsblattcode handelt, ist er sehr einfach zu installieren und automatisch zu verwenden:
- Klicken Sie mit der rechten Maustaste auf den Registerkartennamen unten im Excel-Fenster
- Wählen Sie „Code anzeigen“ – dadurch wird ein VBE-Fenster geöffnet
- Füge das Material ein und schließe das VBE-Fenster
Wenn Sie Bedenken haben, probieren Sie es zunächst auf einem Probearbeitsblatt aus.
Wenn Sie die Arbeitsmappe speichern, wird das Makro mit gespeichert. Wenn Sie eine neuere Version von Excel als 2003 verwenden, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern.
So entfernen Sie das Makro:
- Rufen Sie die VBE-Fenster wie oben auf
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
Und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Weitere Informationen zu Ereignismakros (Arbeitsblattcode) finden Sie unter:
http://www.mvps.org/dmcritchie/excel/event.htm
Damit dies funktioniert, müssen Makros aktiviert sein!