voila bonjour je suis super novice en vba
pour faire simple
je voudrais faire un bouton qui me permet de remplir une rangé de de tableau sous certain formule et en même temps une autre rangé sous une autre formule
de D10:197 les chiffres entiers de mon tableau
je voudrais grâce au bouton demandé remplir E10:E197 par cet formule que je n'ai pas su la mettre sous vba [=SI(D10<>"";D10+D10*ENT((ALEA.ENTRE.BORNES(5;10)))%;"")]
et remplir F10:F197 [=SI(D10<>"";D10+D10*ENT((ALEA.ENTRE.BORNES(5;12)))%;""))
comme ca la rangé E et F de mon tableau ne change pas à chaque ouverture du fichier jusqu’au prochain appuie du bouton
merci de votre patiente
Sub Macro1()
[E10:E197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,10)))%,"""")"
[F10:F197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,12)))%,"""")"
[E10:F197] = [E10:F197].Value
End Sub
Bah le +10 varie
Pour t'en convaincre , testes avec la macro ainsi modifiée
Et regardes ensuite les formules dans les cellules
VB:
Sub Macro1_b()
[E10:E197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,10)))%,"""")"
[F10:F197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,12)))%,"""")"
End Sub
oui ça marche merci chef mais pas avec la façon que j'ai demander
Ta micro dépose la formule dans les cellule ainsi ça va varier à chaque fois que je change qlq chose dans le fichier en dehors du tableau même ou de l'ouverture du fichier
En mettant une formule c'est recalculé à chaque fois. Je pense que Chingilou veut que les valeurs soient fixes entre deux appui sur un bouton.
Une possibilité peut être :
Code:
Sub Alea()
Dim L As Integer
For L = 10 To 196
If Cells(L, "D") <> "" Then
Cells(L, "E") = Cells(L, "D") * (1 + Int((Application.RandBetween(5, 10))))
Cells(L, "F") = Cells(L, "D") * (1 + Int((Application.RandBetween(5, 12))))
End If
Next L
End Sub
Ca ne change plus avec la 1ère version de la macro
grâce à
[E10:F197] = [E10:F197].Value
(que j'ai supprimé dans la seconde macro, juste pour que tu puisses voir que le D10 changeait bien dans les formules.)