Appliquer une opération sur un range de cellules

Résolu
A.M. Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 11033 Statut Membre -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Bonjour.

    Pour commencer, tu utilises une version d'Excel en ligne, ou c'est un extrait de programmation VBA pour macro ?
    0
  3. A.M. Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   5
     
    C'est bien un extrait de macro qui se déclenche quand on coche une case (checkbox).
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    De rien,

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

    Cdlmnt
    0