Appliquer une opération sur un range de cellules

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

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 71844 Date d'inscription   Statut Contributeur Dernière intervention   17 383
 
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 110 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
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