Appliquer une opération sur un range de cellules

Résolu
A.M. Messages postés 107 Statut Membre -  
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

ccm81 Messages postés 11033 Statut Membre 2 433
 
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
Raymond PENTIER Messages postés 71825 Statut Contributeur 17 376
 
Bonjour.

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

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

Cdlmnt
0