La condtion pour répéter les calculs jusqu'à avoir la valeur

Bonjour,

S'il vous plait j’ai besoin d'aide pour faire une macro qui calcule le mulu comme indiqué sur la photo y a un petit organigramme

je suis bloqué sur la dernière condition quand on prend mu 1 = mu ou mu 2 = mu et on refais le calcul jusqu’à delta mu soit <=10^-5

Merci de me donner un coup de main j'ai entré tous mes formule sur vba il me reste que comment faire la condition

aide

bonjour,

Sub arrgh()

Do
'calculs
deltamu = mu1 - mu2
If mu > mucu Then mu1 = mu Else mu2 = mu
Loop Until deltamu <= 0.00001

End Sub

Sub ulu()

' ulu Macro

'gama M

A = Range("Z86")

'gama N

B = Range("Z87")

'nu u

C = Range("Z88")

'gama c

D = Range("Z89")

'nu

E = Range("Z90")

'alpha e

F = Range("AC89")

'fck

G = Range("AC90")

'sigma s

H = Range("AC91")

'mu1

I = (1 - (1 - C) ^ 2) / 2

'mu2

J = 0.48

'mucu

K = (I + J) / 2

'ro s

L = (1 - ((1 - (2 * K)) ^ (1 / 2)) - C) * ((E * 1) / D) * (G / H)

'nu s

M = (C / B) * ((E * 1) / (0.6 * D))

'alpha1

N = (M - (F * L)) + ((M - (F * L)) ^ 2 + (2 * F * L)) ^ (1 / 2)

'mu s

O = (N / 2) * (1 - (N / 3))

'mu

P = O * A * ((0.6 * D) / (E * 1))

'delta mu

q = J - I

If q <= 10 ^ -5 Then R = (I + J) / 2

Do

'calculs

q = J - I

If P > K Then I = P Else J = P

Loop Until q <= 0.00001

Range("Z111") = I

Range("Z112") = J

Range("Z113") = K

Range("Z114") = L

Range("Z115") = M

Range("Z116") = N

Range("Z117") = O

Range("Z118") = P

Range("Z119") = q

Range("Z120") = R

End Sub

Merci h2so4

voila mon code ou je peux ajouter la condition

ça marche pas :'(

Bonjour,

à tester

Sub ulu()
' ulu Macro
'gama M
    A = Range("Z86")
    'gama N
    B = Range("Z87")
    'nu u
    C = Range("Z88")
    'gama c
    D = Range("Z89")
    'nu
    E = Range("Z90")
    'alpha e
    F = Range("AC89")
    'fck
    G = Range("AC90")
    'sigma s
    H = Range("AC91")
    'mu1
    I = (1 - (1 - C) ^ 2) / 2
    'mu2
    J = 0.48
    Do
        'mucu
        K = (I + J) / 2
        'ro s
        L = (1 - ((1 - (2 * K)) ^ (1 / 2)) - C) * ((E * 1) / D) * (G / H)
        'nu s
        M = (C / B) * ((E * 1) / (0.6 * D))
        'alpha1
        N = (M - (F * L)) + ((M - (F * L)) ^ 2 + (2 * F * L)) ^ (1 / 2)
        'mu s
        O = (N / 2) * (1 - (N / 3))
        'mu
        P = O * A * ((0.6 * D) / (E * 1))
        'delta mu
        q = J - I
        If P < K Then I = P Else J = P
    Loop Until q < 0.0001
    R = (I + J) / 2
    Range("Z111") = I
    Range("Z112") = J
    Range("Z113") = K
    Range("Z114") = L
    Range("Z115") = M
    Range("Z116") = N
    Range("Z117") = O
    Range("Z118") = P
    Range("Z119") = q
    Range("Z120") = R
End Sub

Merci beaucoup h2SO4 pour votre aide

le curseur reste bloqué je ferme et je redémarre excel

bonsoir,

soit il faut attendre plus longtemps soit avec les valeur Z86 à Z90 et AC89 à AC91, il n'est pas possible d'obtenir une valeur inférieure à 1E-5 .

bonjour

J'ai mis en pièce jointe le fichier excel

en fait j'ai fait un tableau qui me permet de trouver le mulu en glissant le cadre en rouge jusqu’à la valeur reste constante donc c le mulu

le cadre en jaune c'est ce que le code doit me donner mais ça marche pas la macro s’appelle ulufin

si vous n'avez pas compris laisse moi un message pour bien vous expliquez

Merci


Es ce que j'ai la possibilité de faire une macro pour glisser le cadre rouge automatiquement et elle s’arrête jusqu’à la valeur devienne constante après elle me la donne dans une cellule isolé

Merci

114-verification.xlsm (50.68 Ko)

bonjour,

code adapté

234-verification.xlsm (51.00 Ko)

on dois trouver mulu =0.2124 avec les valeurs initiales données

je comprend pas bien quoi il fait le code je vois mu2 toujours 0.48 et le deltamu ne converge pas vers 0.0001

merci

Carlitos a écrit :

on dois trouver mulu =0.2124 avec les valeurs initiales données

je comprend pas bien quoi il fait le code je vois mu2 toujours 0.48 et le deltamu ne converge pas vers 0.0001

merci

c'est qu'il doit y avoir une erreur dans une des formules.

c'est quoi pl=26 dans le code?

parce que on doit glisser à partir de la colonne AA et pas Z

merci

Carlitos a écrit :

c'est quoi pl=26 dans le code?

parce que on doit glisser à partir de la colonne AA et pas Z

merci

remplacer pl =26 par pl=27 pour "glisser" à partir de AA

Je veux dire de glisser c’est de recopier les mêmes colonnes avec leurs formules dedans. (la poignée de recopie)

la il supprime et recalcule a chaque fois prend mu2=0.48

If p < k Then i = p Else j = p

c'était juste l'inverse

If p < k Then j = p Else i = p


Merci beacoup h2so4

d'ici l'avenir j'aurai beaucoup de questions sur VBA

je galère avec

Bonjour

je veux savoir comment transformer ma macro sub vers fonction et pour que le résultat s'affiche directement sans lancer le calcul à chaque fois.

Merci

bonsoir,

macro transformée en fonction

Function ulufin(A, B, C, D, E, F, G, H,optional J=0.48)

' ulu Macro
'gama M'A
'gama N'B
'nu u'C
'gama c'D
'nu'E
'alpha e'F
'fck'G
'sigma s'H
'mu1
    i = (1 - (1 - C) ^ 2) / 2
    'mu2 ' J
    Do
        oldq = q
        'mucu
        k = (i + j) / 2
        'ro s
        l = (1 - ((1 - (2 * k)) ^ (1 / 2)) - C) * ((E * 1) / D) * (G / H)
        'nu s
        m = (C / B) * ((E * 1) / (0.6 * D))
        'alpha1
        n = (m - (F * l)) + ((m - (F * l)) ^ 2 + (2 * F * l)) ^ (1 / 2)
        'mu s
        o = (n / 2) * (1 - (n / 3))
        'mu
        p = o * A * ((0.6 * D) / (E * 1))
        'delta mu
        q = j - i
        If p < k Then j = p Else i = p
        pl = pl + 1
    Loop Until q < 0.0001 Or oldq = q
    R = (i + j) / 2
    ulufin = R
End Function

Bonsoir h2so4 je veux apprendre comment écrire une fonction au lieu d'une macro

es ce que tu as des cours qui peuvent m'aider dans la programmation avec vba

par exemple celle la:

Function fxq(a, av, L, d, code)

dd = 2 * d

If a < L / 2 Then GoTo 22

If av > dd Then fxq = "": GoTo 99

x1 = L - 7 * av / 8

x2 = L - av / 8

GoTo 20

22 If av > dd Then fxq = "": GoTo 99

x1 = av / 8

x2 = 7 * av / 8

20 If code = 1 Then fxq = x1: GoTo 99

If code = 2 Then fxq = x2

99 End Function

je comprend pas c'est le but de goto22 goto99

Merci

Rechercher des sujets similaires à "condtion repeter calculs valeur"