Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

chingilou

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

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
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ou encore en s'inspirant :
Code:
Sub Macro1_b2()
    [E10:E197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,10)))%,"""")"
    [F10:F197].Formula = "=IF(D10<>"""",D10+D10*INT((RANDBETWEEN(5,12)))%,"""")"
    [E10:E197] = [E10:E197].Value
    [F10:F197] = [F10:F197].Value
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

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.)
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…