IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

programme de calcul sur VBA excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut programme de calcul sur VBA excel
    Bonjour,
    je voudrais réaliser un petit programme sur excel en utilisant VBA, mais j'y arrive vraiment pas.
    Mon programme ayant pour but le calcul d'une vitesse d'écoulement minimum pour des perte de charge maximum, pour cela je doit d'abord calcul la vitesse maximum puis les pertes de charges correspondant à cette vitesse,puis les ajouter à mon calcul de vitesse obtenir une nouvelle vitesse calcul les perte de charge et recommencer jusqu'à ce que je tend vers une valeur de vitesse stable .
    Pour cela j'ai réaliser ce code mais il ne fonctionne apparemment pas ( je ne m'y connais vraiment pas en VBA):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub troplein()
     
    Const E = 0.0000001
    Dim i As Integer
    Dim Hr(1 To 50) As Currency, Hs(1 To 50) As Currency
    Dim V(1 To 50) As Currency
    Const g = 9.81
    Const h = 6.896
    Const L = 19.207
    Const lambda = 0.02
    Const di = 0.285
     
     
    Do
     
                    Hr(1) = 0
                    Hs(1) = 0
                    V(i) = Sqr(2 * g * h - Hr(i) - Hs(i))
                    Hr(i + 1) = (lambda * L * V(i) * V(i)) / (2 * di * g)
                    Hs(i + 1) = (K * V(i) * V(i)) / (2 * g)
     
    Loop Until V(i) - V(i - 1) < E
    End Sub
    si quelqu'un peut me venir en aide
    Merci d'avance!!!!!

  2. #2
    Membre chevronné Avatar de jackborogar
    Homme Profil pro
    Etudiant Ingénierie Financière
    Inscrit en
    Avril 2012
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant Ingénierie Financière
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 290
    Par défaut
    C'est normal tu déclare une variable "i" sans l'initialiser.
    donc ton V(i) ne peut pas fonctionner ainsi que le reste.

    De plus ton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop Until V(i) - V(i - 1) < E
    va poser problème puisque V(i-1) n'est pas calculé au départ.
    Enfin peut-on voir ton théorème sur wikipédia ou autre plateforme?

    Cordialement,

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    1) La boucle avec i n’est pas incrémentée.
    2) La constante K n’est pas initialisée, donc Hs est toujours nulle.
    Dans le code, j’ai intégré un message qui te permettra de visualiser les résultats pas à pas.
    J’ai initialisé K à 1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub troplein()
    Dim i As Integer
    Dim Hr(1 To 50) As Double, Hs(1 To 50) As Double
    Dim V(1 To 50) As Double
     
    Const E = 0.0000001
    Const g = 9.81
    Const h = 6.896
    Const L = 19.207
    Const lambda = 0.02
    Const di = 0.285
    Const K = 1 'Constante non initialisée
     
        Hr(1) = 0
        Hs(1) = 0
        V(1) = Sqr(2 * g * h - Hr(1) - Hs(1))
        For i = 2 To 49
            V(i) = Sqr(2 * g * h - Hr(i) - Hs(i))
            Hr(i + 1) = (lambda * L * V(i) * V(i)) / (2 * di * g)
            Hs(i + 1) = (K * V(i) * V(i)) / (2 * g)
     
            'Message pour visualiser les résultats
            msg = "i : " & i & Chr(10) & _
            "Vitesse V(i): " & V(i) & Chr(10) & _
            "Vitesse V(i-1): " & V(i - 1) & Chr(10) & _
            "Hr(i + 1) : " & Hr(i + 1) & Chr(10) & _
            "Hs(i + 1): " & Hs(i + 1)
            If V(i) - V(i - 1) >= E Then
                msg = msg & Chr(10) & Chr(10) & "V(i) - V(i - 1) >= E"
            End If
            MsgBox msg
        Next
    End Sub
    Cordialement.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut
    Merci jackborogar et gFZT82 pour vos aides. gFZT82 ton programme fonctionne parfaitement il y avait juste une petite erreur dans les condition que je souhaitait.
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Livre sur VBA excell
    Par Mr_JF dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2008, 08h57
  2. programmer une tâche via VBA/Excel
    Par simstef dans le forum Excel
    Réponses: 5
    Dernier message: 07/08/2007, 15h53
  3. help sur VBA excel
    Par soffy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2007, 11h49
  4. Réponses: 3
    Dernier message: 09/04/2006, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo