Appliquer une opération sur un range de cellules

Résolu
A.M. Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
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 10909 Date d'inscription   Statut Membre Dernière intervention   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 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
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 102 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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
De rien,

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

Cdlmnt
0