XL 2016 aide pour réaliser une ptite macro

chingilou

XLDnaute Junior
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
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Si j'ai bien compris la donne
Code:
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
 

chingilou

XLDnaute Junior
plutot ca mais ca me met erreur

Dim Counter As Integer
For Counter = 10 To 196
article = Worksheets("Acceuil").Cells(Counter, 2).Value
h = Worksheets("Acceuil").Cells(Counter, 4).Value
'If article <> "" Then
' Worksheets("Acceuil").Cells(Counter, 5).Value = h+h*INT(Random Between(5;10)))%)
Else: Worksheets("Acceuil").Cells(Counter, 5).Value = ""
 

Staple1600

XLDnaute Barbatruc
Re

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
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chingilou, Staple, Eastwick,
@Staple,
comme ca la rangé E et F de mon tableau ne change pas à chaque ouverture du fichier jusqu’au prochain appuie du bouton
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
 

Statistiques des forums

Discussions
312 348
Messages
2 087 506
Membres
103 566
dernier inscrit
c@b@l77540