Appliquer une opération sur un range de cellules

Résolu/Fermé
A.M. Messages postés 100 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 6 janvier 2024 - Modifié le 30 juil. 2021 à 21:08
ccm81 Messages postés 10895 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 3 octobre 2024 - 1 août 2021 à 14:46
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 10895 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 3 octobre 2024 2 421
31 juil. 2021 à 12:11
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 58678 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 octobre 2024 17 203
31 juil. 2021 à 03:13
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 100 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 6 janvier 2024 5
31 juil. 2021 à 09:25
C'est bien un extrait de macro qui se déclenche quand on coche une case (checkbox).
0
ccm81 Messages postés 10895 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 3 octobre 2024 2 421
1 août 2021 à 14:46
De rien,

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

Cdlmnt
0