Aufrechterhaltung einer konstanten Gesamtzahl von Excel-Zellen

Aufrechterhaltung einer konstanten Gesamtzahl von Excel-Zellen

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:

Bildbeschreibung hier eingeben

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:

  1. Klicken Sie mit der rechten Maustaste auf den Registerkartennamen unten im Excel-Fenster
  2. Wählen Sie „Code anzeigen“ – dadurch wird ein VBE-Fenster geöffnet
  3. 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:

  1. Rufen Sie die VBE-Fenster wie oben auf
  2. Löschen Sie den Code
  3. 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!

verwandte Informationen