• Initiateur de la discussion Initiateur de la discussion mpiquet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mpiquet

Guest
Bonjour à tous,
Je suis débutant sur VBA. Je désire faire une boucle pour trouver deux variables dans une feuille Excel. je vous joins ma feuille Excel avec le code visual basic.
Voici l'explication de ce que je veux faire:
Je cherche aprim et bprim
Je connais Pu (celluleC5), a (C6), b (C7), s (C11), gamma (C8), h (C9), gammab(C10), sigmasol (C12)

Pour calculer a' et b' on a:
Pu1=gamma*h(b'a'-ab)
Pu2=1.35*b'*a'*h*gammab
Pu3=s*(b'a'-ab)
On a alors sommepu=Pu+Pu1+Pu2+Pu3
On calcul : k=racinecarrée(sommePu/(sigmasol*a*b))
et alors a'=k*a , b'=k*b

Cependant, pour démarrer la boucle, on ne connait pas Pu1, Pu2, Pu3...j'utilise donc sommepu=1.05*Pu (avant démarrage de la boucle)
j'ai voulu incrémenter a' et b' (aprim et bprim dans le code) en les stockant dans un tableau avec aprim(i) et bprim(i) afin de pouvoir mettre la condition pour la boucle tel que aprim(i)-aprim(i-1)<0.01 (mètres) pour trouver une solution suffisamment correcte...

Je voudrai comprendre les erreurs de syntaxe, compilation...
Merci de votre aide!
matthieu

PS: aller voir le code joint
 
Bonjour à tous,
Je suis débutant sur VBA. Je désire faire une boucle pour trouver deux variables dans une feuille Excel. je vous joins ma feuille Excel avec le code visual basic.
Voici l'explication de ce que je veux faire:
Je cherche aprim et bprim
Je connais Pu (celluleC5), a (C6), b (C7), s (C11), gamma (C8), h (C9), gammab(C10), sigmasol (C12)

Pour calculer a' et b' on a:
Pu1=gamma*h(b'a'-ab)
Pu2=1.35*b'*a'*h*gammab
Pu3=s*(b'a'-ab)
On a alors sommepu=Pu+Pu1+Pu2+Pu3
On calcul : k=racinecarrée(sommePu/(sigmasol*a*b))
et alors a'=k*a , b'=k*b

Cependant, pour démarrer la boucle, on ne connait pas Pu1, Pu2, Pu3...j'utilise donc sommepu=1.05*Pu (avant démarrage de la boucle)
j'ai voulu incrémenter a' et b' (aprim et bprim dans le code) en les stockant dans un tableau avec aprim(i) et bprim(i) afin de pouvoir mettre la condition pour la boucle tel que aprim(i)-aprim(i-1)<0.01 (mètres) pour trouver une solution suffisamment correcte...

Je voudrai comprendre les erreurs de syntaxe, compilation...
Merci de votre aide!
matthieu

PS: aller voir le code joint
 

Pièces jointes

Re : Aide sur boucle VBA

Salut,

Houla arretes d'ouvrir un nouveau poste pour la meme question.
(je demande la suppession des autres postes)

sinon pour ton probleme:
Je suis pas sur du resultat car je ne sais pas ce que tu dois obtenir.
voila ce a quoi j'arrive.

Code:
Sub aprimbprim()
    Dim a As Double, b As Double, sigmasol As Double, k As Double, pu As Double, Pu1 As Double, Pu2 As Double, Pu3 As Double, sommePu As Double, bprim As Double
    Dim aprim(0 To 1) As Double, gamma As Double, gammab As Double, h As Double, s As Double
    
    With Sheets("feuil1")
        pu = .Range("C5").Value
        a = .Range("C6").Value
        b = .Range("C7").Value
        gamma = .Range("C8").Value
        h = .Range("C9").Value
        gammab = .Range("C10").Value
        s = .Range("C11").Value
        sigmasol = .Range("C12").Value
        
        sommePu = 1.05 * pu
        aprim(0) = a * 2
        aprim(1) = a
        
        While aprim(0) - aprim(1) > 0.01
            k = Sqr(sommePu / (sigmasol * a * b))
        
            Pu1 = 1.35 * gamma * h * (aprim(1) * bprim - a * b)
            Pu2 = 1.35 * bprim * aprim(1) * h * gammab
            Pu3 = bprim * aprim(1) - a * b * s
            aprim(0) = aprim(1)
            aprim(1) = k * a
            bprim = k * b
            sommePu = Pu1 + Pu2 + Pu3
        Wend

        .Range("g6").Value = aprim(1)
        .Range("g7").Value = bprim
    End With
End Sub
++
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
  • Question Question
Réponses
7
Affichages
1 K
Mike March
M
M
Réponses
20
Affichages
3 K
massol
M
C
Réponses
4
Affichages
2 K
chacal33
C
C
Réponses
3
Affichages
1 K
cylvain
C
B
Réponses
13
Affichages
2 K
M
Réponses
3
Affichages
1 K
MarcTer
M
E
Réponses
3
Affichages
2 K
Emmanuel_3005
E
H
Réponses
5
Affichages
1 K
Retour