Appliquer une opération sur un range de cellules

Résolu
Bonjour,

J'aimerais appliquer une formule sur un grand nombre de cellules non contiguës quand une checkbox est activée, à savoir multiplier par 0,9 leurs valeurs, et inversement (donc diviser par 0,9) quand la case est décochée. Une solution serait d'écrire une centaine de ligne de type :

Sheets(Feuil1").Range("R91").Value = Sheets("Feuil1").Range("R91").Value * 0.9
Sheets(Feuil1").Range("R92").Value = Sheets("Feuil1").Range("R92").Value * 0.9
...

Très rébarbatif, et une formule du genre ci-dessous écrase malheureusement la valeur des autres cellules par celle de la première :

Sheets(Feuil1").Range("R91:S125,T101, T106").Value = Sheets("Feuil1").Range("R91:S125, T101, T106").Value * 0.9

Y aurait-il un autre moyen ?

4 réponses

  1. Bonjour

    Peut être un truc comme ça ?
    Const ListeCells = "A2;A4;A6;A10;A11;A12;A13;A14;A15;A20;A21"
    
    Public Sub ok()
    Dim k As Long, TL
    TL = Split(ListeCells, ";")
    For k = 0 To UBound(TL)
      Range(TL(k)) = Range(TL(k)) * 0.9
    Next k
    End Sub


    https://www.cjoint.com/c/KGFkk2VR1jB

    Cdlmnt
    1
    1. Bonjour.

      Pour commencer, tu utilises une version d'Excel en ligne, ou c'est un extrait de programmation VBA pour macro ?
      0
      1. C'est bien un extrait de macro qui se déclenche quand on coche une case (checkbox).
        0
        1. De rien,

          Salut amical à Raymond en passant, histoire de ne pas être venu pour rien !

          Cdlmnt
          0