Souci codage VBA

bonjour,

j'ai un code comme suit :

Sub macro()

Do While Total <> -15

Calculate

valeur1 = Cells(2, 12) <= 0.7 And Cells(2, 12) >= 0.05 Or Cells(2, 12) = 0

valeur2 = Cells(2, 13) <= 0.7 And Cells(2, 13) >= 0.05 Or Cells(2, 13) = 0

valeur3 = Cells(2, 14) <= 0.7 And Cells(2, 14) >= 0.05 Or Cells(2, 14) = 0

valeur4 = Cells(2, 15) <= 0.7 And Cells(2, 15) >= 0.05 Or Cells(2, 15) = 0

valeur5 = Cells(2, 16) <= 0.7 And Cells(2, 16) >= 0.05 Or Cells(2, 16) = 0

valeur6 = Cells(20, 12) <= 0.7 And Cells(20, 12) >= 0.05 Or Cells(20, 12) = 0

valeur7 = Cells(20, 13) <= 0.7 And Cells(20, 13) >= 0.05 Or Cells(20, 13) = 0

valeur8 = Cells(20, 14) <= 0.7 And Cells(20, 14) >= 0.05 Or Cells(20, 14) = 0

valeur9 = Cells(20, 15) <= 0.7 And Cells(20, 15) >= 0.05 Or Cells(20, 15) = 0

valeur10 = Cells(20, 16) <= 0.7 And Cells(20, 16) >= 0.05 Or Cells(20, 16) = 0

valeur11 = Cells(104, 12) <= 0.7 And Cells(104, 12) >= 0.05 Or Cells(104, 12) = 0

valeur12 = Cells(104, 13) <= 0.7 And Cells(104, 13) >= 0.05 Or Cells(104, 13) = 0

valeur13 = Cells(104, 14) <= 0.7 And Cells(104, 14) >= 0.05 Or Cells(104, 14) = 0

valeur14 = Cells(104, 15) <= 0.7 And Cells(104, 15) >= 0.05 Or Cells(104, 15) = 0

valeur15 = Cells(104, 16) <= 0.7 And Cells(104, 16) >= 0.05 Or Cells(104, 16) = 0

Total = valeur1 + valeur2 + valeur3 + valeur4 + valeur5 + valeur6 + valeur7 + valeur8 + valeur9 + valeur10 + valeur11 + valeur12 + valeur13 + valeur14 + valeur15 +

Loop

End Sub

comme je l'ai deja dit dans d'autre sujets, je suis novice en VBA ^^.

mon code va environ jusqu'à 90 valeurs et arrivé là, le temps de calcul est trop long car il recalcule jusqu'à ce que toutes les valeurs répondent aux critère en même temps.

comment dois-je faire pour que le calcul de chaque valeur ne soit pas dépendant des autres??

j'espère que s'est assez clair ^^ et MERCI de bien vouloir me répondre.

Bonjour

Le plus simple c'est de joindre un fichier en y expliquant ce que tu veux exactement

voila mon fichier! je clique sur l'enorme colonne macro a droite mais le calcul est interminable !! :s

MERCI pour votre aide

Salut el taho, Banzai

Taho fait référence à ce post https://forum.excel-pratique.com/post170924.html#p170924

Le calculs met beaucoup de temps car tu utilises la fonction aléa, sur 4 valeurs il n'y avait pas de problème, mais la il faudrait séparer les blocs. Je pense que Banzai aura une solution plus simple.

Cdt

ok j'espère en effet qu'il pourra me donner la solution ^^

merci à toi aussi

Bonjour

Bonjour ketamacanna

A voir

J'ai repris la macro de ketamacanna

merci Banzai ça marche comme il faut!!

j'ai juste dû une autre colonne a prendre en compte mais rien de plus^^

MERCI

Bonjour

A tout hasard je mets la macro modifiée

Option Explicit

Sub macro()
Dim I As Integer
Dim Lignes
Dim Valeur1 As Integer, Valeur2 As Integer, Valeur3 As Integer, Valeur4 As Integer, Valeur5 As Integer, Total As Integer

  Randomize                     ' Initialise le générateur
  ' Le tableau lignes contient les numéros de lignes des tests (sauf la dernière valeur qui est la fin du tableau)
  Lignes = Array(2, 20, 104, 122, 183, 230, 261, 315, 330, 371, 440, 444, 447, 450, 461, 498, 514, 522, 536, 580, 600)
  For I = 0 To UBound(Lignes) - 1   ' Pour toutes les lignes sauf la dernière
    Total = 0                       ' Compteur à 0
    Do While Total <> -5            ' Tant que les 5 conditions ne sont pas remplies
      With Range("D" & Lignes(I) & ":D" & Lignes(I + 1) - 1)  ' Entre la ligne de test et la prochaine ligne de test (ou fin de tableau) -1
        .Formula = "=rand()"                                  ' Tirage du  nombre aléatoire
        .Value = .Value                                       ' Fige cette valeur
      End With
      ' Vérifications du tirage aléatoire
      Valeur1 = Cells(Lignes(I), 12) <= 0.7 And Cells(Lignes(I), 12) >= 0.05 Or Cells(Lignes(I), 12) = 0
      Valeur2 = Cells(Lignes(I), 13) <= 0.7 And Cells(Lignes(I), 13) >= 0.05 Or Cells(Lignes(I), 13) = 0
      Valeur3 = Cells(Lignes(I), 14) <= 0.7 And Cells(Lignes(I), 14) >= 0.05 Or Cells(Lignes(I), 14) = 0
      Valeur4 = Cells(Lignes(I), 15) <= 0.7 And Cells(Lignes(I), 15) >= 0.05 Or Cells(Lignes(I), 15) = 0
      Valeur5 = Cells(Lignes(I), 16) <= 0.7 And Cells(Lignes(I), 16) >= 0.05 Or Cells(Lignes(I), 16) = 0
      Total = Valeur1 + Valeur2 + Valeur3 + Valeur4 + Valeur5
    Loop
  Next I
End Sub

bonjour,

j'avais quelques données à compléter sur mon fichier excel et du coup j'ai essayer de modifier ma macro mais je ne comprend pas pourquoi ca ne marche pas!!

je veux faire la même chose qu'avant mais en y ajoutant deux nouvelles colonnes de test!!

Merci de votre aide

Rechercher des sujets similaires à "souci codage vba"