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 :

Fonction VBA avec Vecteur en entré et sortie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingenieur
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Par défaut Fonction VBA avec Vecteur en entré et sortie
    Bonjour tout le monde,

    J'essai de développer une fonction VBA qui fait appel a des vecteurs dans Excel, et qui me renverrai un vecteur. Mais mon code ne marche pas. Pouvez m'aider à debuger ce code:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Function Reaction_Bolt_kN(N_Bolt As Integer, Theta_0_deg As Double, Theta_deg As Double, Bolt_Circle_Diameter_m As Double, Mx_kNm As Double, My_kNm As Double) As Double
    Dim X As Double
    Dim Y As Double
    Dim Pi As Double
    Dim XX As Double
    Dim YY As Double
    Dim Rj As Double
     
    X = 0
    Y = 0
    Pi = Application.Pi()
    XX = 0
    YY = 0
    Rj = 0
    Reaction_Bolt_kN = 0
     
    For i = 0 To (N_Bolt - 1)
        X = Bolt_Circle_Diameter_m / 2 * Cos((Theta_0_deg + Theta_deg * i) / 180 * Pi)
        Y = Bolt_Circle_Diameter_m / 2 * Sin((Theta_0_deg + Theta_deg * i) / 180 * Pi)
        XX = XX + X * X
        YY = YY + Y * Y
    Next i
     
    For j = 0 To (N_Bolt - 2)
        X = Bolt_Circle_Diameter_m / 2 * Cos((Theta_0_deg + Theta_deg * j) / 180 * Pi)
        Y = Bolt_Circle_Diameter_m / 2 * Sin((Theta_0_deg + Theta_deg * j) / 180 * Pi)
        Rj = -My_kNm * X / XX + Mx_kNm * Y / YY
        If (-Abs(Rj) < Reaction_Bolt_kN < Abs(Rj)) Then
            Reaction_Bolt_kN = Abs(Rj)
        End If
    Next j
     
    End Function
     
    Function Max_Reaction_Bolt_kN(N_Bolt As Integer, Theta_0_deg As Double, Theta_deg As Double, Bolt_Circle_Diameter_m As Double, LC, Mx_kNm As Double, My_kNm As Double)
     
    X = UBound(LC)
    Y = UBound(Mx_kNm)
    Z = UBound(My_kNm)
     
    If ((X <> Y) Or (X <> Z)) Then
            Max_Reaction_kN(1) = "Error"
            Max_Reaction_kN(2) = "Error"
            Max_Reaction_kN(3) = "Error"
            Max_Reaction_kN(4) = "Error"
    Else
        For i = 1 To X
            R = Reaction_Bolt_kN(N_Bolt, Theta_0_deg, Theta_deg, Bolt_Circle_Diameter_m, Mx_kNm(i), My_kNm(i))
            If Max_Reaction_kN(4) < R Then
                Max_Reaction_kN(1) = LC(i)
                Max_Reaction_kN(2) = Mx_kN(i)
                Max_Reaction_kN(3) = My_kN(i)
                Max_Reaction_kN(4) = R
            End If
        Next
    End If
    End Function
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Mais mon code ne marche pas.
    Si tu veux de l'aide il va falloir être plus précis sur ton problème car cela ne nous aide pas.

    Erreur ou résultat non attendu ?
    Ton problème est sur le code ou sur l'algo de la fonction?

  3. #3
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Pour la 2eme fonction, elle ne renvoie rien et je suppose qu'elle était mal nommée.

    Mes corrections ci dessous pour cette fonction:

    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
    Function Max_Reaction_kN(N_Bolt As Integer, Theta_0_deg As Double, Theta_deg As Double, Bolt_Circle_Diameter_m As Double, LC, Mx_kNm As Double, My_kNm As Double) As Variant
     
        X = UBound(LC)
        Y = UBound(Mx_kNm)
        Z = UBound(My_kNm)
     
        If ((X <> Y) Or (X <> Z)) Then
                Max_Reaction_kN = Array("Error", "Error", "Error", "Error")
        Else
            For i = 1 To X
                R = Reaction_Bolt_kN(N_Bolt, Theta_0_deg, Theta_deg, Bolt_Circle_Diameter_m, Mx_kNm(i), My_kNm(i))
                If Max_Reaction_kN(4) < R Then  'ici il n' y' a rien dans Max_reaction_kN
                    Max_Reaction_kN = Array(LC(i), Mx_kN(i), My_kN(i), R)
                End If
            Next
        End If
     
    End Function

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2013, 15h52
  2. [VBA] [XI R3] Fonction VBA avec PB de rafraisissement
    Par gillou13 dans le forum SDK
    Réponses: 1
    Dernier message: 17/06/2011, 15h15
  3. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 20h31
  4. Pb de lien entre Access et Excel pour des fonctions VBA
    Par favien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2005, 02h00

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