mise à jour de valeurs de colonnes par coefficient multiplicateur

jf27

XLDnaute Occasionnel
bjr le forum

je crée par VBA une feuille de données.
En tête de chaque colonne, je mets un scale factor et multiplie les valeurs de la colonne par ce scale factor en boucmant sur les cellules

Comment faire que lorsque ce scale factor est ensuite changé manuellement par l'utilisateur, pour que l'ensemble des valeurs de la colonne soient recalculées ?
En fait il me faudrait un FORMULA me disant cell(i,j) =cell(i,j)*cell(2,j)

me je ne sais pas coder ceci ?:eek::eek:
merci par avance

Code:
Range("A2").Select
    Selection.EntireRow.Insert
    Selection.EntireRow.Insert
     
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Scale Factor"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "Max value"
    
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "1"
    Selection.AutoFill Destination:=Range("B2", Range("B2").End(xlToRight)), Type:=xlFillDefault
    
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "=MAX(C)"
    Selection.AutoFill Destination:=Range("B3", Range("B3").End(xlToRight)), Type:=xlFillDefault
    
    For i = 2 To 1 + nbercategories + nbercriteria
        For k = 4 To fin
     If IsNumeric(Cells(k, i)) Then Cells(k, i) = CDbl(Cells(k, i)) * Cells(2, i)
     
    Next k
    Next i
    
    Calculate
 

Catrice

XLDnaute Barbatruc
Re : mise à jour de valeurs de colonnes par coefficient multiplicateur

Bonjour,

Pour répondre à ta question, tu peux utiliser l'evenement Worksheet_Change de la feuille de calcul

Mais je n'ai pas tres bien compris ce que tu fais.
Il faudrait que tu fournisse un petit echantillon de fichier.
Que sont les varibles nbercategories et nbercriteria ?

En attendant, ci-dessous ton code simplifié :

Sub Test()
Range("A2:A3").EntireRow.Insert
Range("A2") = "Scale Factor"
Range("A3") = "Max value"
Range("B2") = "1"

Range("B2").AutoFill Destination:=Range("B2", Range("B2").End(xlToRight)), Type:=xlFillDefault

Range("B3").FormulaR1C1 = "=MAX(C)"
Range("B3").AutoFill Destination:=Range("B3", Range("B3").End(xlToRight)), Type:=xlFillDefault

For i = 2 To 1 + nbercategories + nbercriteria
For k = 4 To fin
If IsNumeric(Cells(k, i)) Then Cells(k, i) = CDbl(Cells(k, i)) * Cells(2, i)
Next k
Next i
Calculate
End Sub
 

Statistiques des forums

Discussions
312 345
Messages
2 087 459
Membres
103 547
dernier inscrit
matospi