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 :

Associer un résultat d'un calcul à des couples de valeurs


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut Associer un résultat d'un calcul à des couples de valeurs
    Bonjour à toutes et à tous,

    N'étant qu'un débutant, je suis en train d'essayer de construire un programme sous excel vba mais j'ai un soucis..

    Je rentre des valeurs dans des textbox et je fais ensuite un calcul..



    Premier soucis, un résultat intermédiaire me donne alfa = vide.

    Pourtant mon code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim a, b As Integer
    Dim ratio As Double
    Dim alpha As Single
     
     
    alfa = TextBox4.Text + ((TextBox3.Text / 100) * TextBox4.Text)
     
    ratio ba= ((alfa * TextBox5.Text * 0.0762 * WorksheetFunction.Pi * 60 * (1 + TextBox1.Text) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (TextBox2.Text * 80)
    Deuxième soucis, à la suite je devrais avoir un résultat final à ces calculs (que j'appelle ratio ba) qui me donne une valeur du genre 2.9548751457548 et toutes les valeurs possibles de ratio sont classées préalablement dans un tableau du type :

    | A | B | ratio ba |

    Je souhaiterais alors afficher dans un label tous les couples A/B possibles avec un affichage du type "A1/B1 - A2/B2 - A3/B3... Ai/Bi", mais comment faire ?




    En l'attente de vos réponses je vous remercie d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    un textbox est toujours au format String (chaine de caractère), même s'il contient des nombres

    il faut convertir la valeur de ton textbox quand tu fais des opérations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    ' Textbox1 contient le chiffre "1"
    ' Textbox2 contient le chiffre "2"
     
    ' Resultat = 12  car on additionne deux caractères
    Resultat = Textbox1 + TextBox2
     
    'Resultat = 3 car on additionne des chiffres
    Resultat = Cint(Textbox1) + Cint(Textbox2)
    Il faut maintenant que tu choisisses le bon format de conversion, qui dépend du type de chiffres que tu manipules : tu ouvres l'aide avec la touche F1 et tu recherches "Fonctions de conversion de types de données"



    Concernant ton tableau avec les valeurs Ai/Bi
    Admettons que le tableau soit en Feuille "Feuil1" et sur la plage "A1:C10"


    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
     
    Private Sub UserForm_Initialize()
     
    Dim Tablo
    Dim Plage As Range
    Dim i As Integer
    Dim Chaine As String
     
    Set Plage = Sheets("Feuil1").Range("A1:C10")
     
    Tablo = Plage
     
    For i = LBound(Tablo) To UBound(Tablo)
        Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
    Next i
     
    Me.Label1.Caption = Chaine
     
    Set Plage = Nothing
     
    End Sub

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Je vous remercie beaucoup pour cette réponse!

    Je me retrouve alors avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alfa = CSng(TextBox4) + ((CInt(TextBox3) / 100) * CSng(TextBox4))
    Mais là encore, la valeur d'alfa est toujours "alfa=vide"

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    quelles sont les valeurs de tes deux textbox pour lesquelles alfa renvoie vide ?

    j'ai fais un test sur userform et j'obtiens bien un résultat

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub CommandButton1_Click()
     
    Dim alfa As Single
     
    alfa = CSng(Me.TextBox1) + ((CInt(Me.TextBox2) / 100) * CSng(Me.TextBox1))
     
    MsgBox alfa
     
    End Sub

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    J'ai

    textbox4 = 1.56
    textbox3 = -4

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Il faut mettre une virgule pour ton séparateur : 1,56

    j'obtiens 1,4976 pour alfa

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Ah d'accord, je ne savais pas, merci.

    J'ai quelques dernières questions pour la série de valeurs Ai/Bi,
    Le "Tablo" on ne le déclare en rien, on le laisse tel quel?
    Et, est-ce que votre "Plage" est pour moi le "ratio"?

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Tablo correspond à la plage où tu as tes Ai/Bi/ratio ba
    tu as demandé à ce que ton label indique les Ai/Bi, pas les ratios ba


    Je ne déclare pas Tablo.

    Quand j'écris ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set Plage = Sheets("Feuil1").Range("A1:C10")
    Tablo = Plage
    je charge une plage de cellules dans la variable Plage

    quand j'applique l'égalité "Tablo = Plage", la variable Tablo devient de facto un tableau à deux dimensions avec Tablo(x,y) où :

    - x représente la ligne
    - y représente la colonne


    ton A1 est donc Tablo(1,1)
    ton B1 est donc Tablo(1,2)
    ton ratio BA1 est donc Tablo(1,3)

    on parcourt ensuite toutes les lignes de Tablo via une boucle

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Mais alors, à quel moment la boucle doit s'arrêter?
    Car dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Set Plage = Sheets("Feuil1").Range("A1:C10")
     
    Tablo = Plage
     
    For i = LBound(Tablo) To UBound(Tablo)
        Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
    Next i
     
    Me.Label1.Caption = Chaine
    A aucun moment on lui de s'arrêter aux valeurs égales à ratio, non?

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    En fait, tu ne veux afficher dans ton label que les couples Ai/Bi, pour lesquels le ratio ba(i) est égal à la valeur de ta formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ratio ba= ((alfa * TextBox5.Text * 0.0762 * WorksheetFunction.Pi * 60 * (1 + TextBox1.Text) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (TextBox2.Text * 80)
    au passage, "ratio ba" n'est pas une variable correcte. Il ne faut pas d'espace ... là pour VBA ce sont deux variables "ratio" et "ba"
    ==> tu peux faire "ratio_ba" par exemple
    (bien entendu, j'imagine que tu as mis en pratique la conversion des valeurs de tes textbox dans cette formule?)


    Là mon code récupère tous les Ai/Bi, sans effectuer de ciblage précis, ce qui ressemblait au mieux à ton explication initiale, que j'ai mal du interpréter


    dans ce cas, il faut juste effectuer une comparaison entre chaque Tablo(i,3) et ton ratio ba calculé sur ton userform
    Ca va ressembler à ça à peu près

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = LBound(Tablo) To UBound(Tablo)
        If Tablo(i,3) = ratio_ba then
            Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
        End If
    Next i
    Attention aux mauvaises surprises, il faut que le chiffre qui se calcule soit strictement identique à celui dans ton tableau de correspondance

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Oui oui, j'ai mis les conversions associées.
    J'ai remplacé dans l'ensemble du code ratio ba par ratio
    Une fois corrigé, je débogue et reçois un message d'erreur de compilation indiquant "Next sans For"
    Pourtant j'ai bien écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Set plage = Sheets("appli").Range("A2:C2026")
    Tablo = plage
     
    For i = LBound(Tablo) To UBound(Tablo)
        If Tablo(i, 3) = ratio Then
            Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
    Next i
     
    Me.Label10.Caption = Chaine
    Set plage = Nothing
    Oups j'avais oublié le End if..

    Une toute dernière chose, serait-il possible que je créer un encadrement de alfa dans le code?
    Ce qui créerait alors un encadrement du ratio et donc j'aurais toujours des couples A/B.

  12. #12
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Puisque nous pouvons :

    - comparer des valeurs
    - effectuer des opérations mathématiques dessus

    il est bien sûr possible d'utiliser des encadrements pour élargir ton critère de recherche des Ai/Bi

    admettons que tu élargisse ton alfa de 10% (superieur et inférieur)
    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
     
     
    Encadrement = alfa * 0.1   ' hey oui, ici on met un point et pas une virgule ! VBA est anglais 
     
    ' ratio avec Encadrement inférieur
    ratioInf= (((alfa - Encadrement) * TextBox5.Text * 0.0762 * WorksheetFunction.Pi * 60 * (1 + TextBox1.Text) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (TextBox2.Text * 80)
     
    ' ratio avec Encadrement supérieur
    ratioSup= (((alfa + Encadrement) * TextBox5.Text * 0.0762 * WorksheetFunction.Pi * 60 * (1 + TextBox1.Text) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (TextBox2.Text * 80)
     
    For i = LBound(Tablo) To UBound(Tablo)
        If Tablo(i,3) >= ratioInf And Tablo(i, 3) <= ratioSup then
            Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
        End If
    Next i
     
    End Sub
    Bien entendu, tu remets les conversion de textbox dans les formules

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Une fois fini, j'arrive à ceci :
    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
     
    Dim ratio, alpha, Encadrement As Double
    Dim Tablo
    Dim plage As Range
    Dim i As Integer
    Dim Chaine As String
    If Me.TextBox4 >= 80 And Me.TextBox4 <= 100 Then
        alpha = CDbl(Me.TextBox6) * CSng(Me.TextBox4) / 100 
    End If
    If Me.TextBox4 >= -20 And Me.TextBox4 <= 0 Then
        alpha = CDbl(Me.TextBox6) + ((CSng(Me.TextBox4) / 100) * CDbl(Me.TextBox6))
    End If
    Encadrement = alpha * 0.01   
    ratioInf = (((alpha - Encadrement) * CDbl(Me.TextBox5) * 0.0762 * WorksheetFunction.Pi * 60 * (1 + CDbl(Me.TextBox2)) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (CDbl(Me.TextBox3) * 80)
     ratioSup = (((alpha + Encadrement) * CDbl(Me.TextBox5) * 0.0762 * WorksheetFunction.Pi * 60 * (1 + CDbl(Me.TextBox2)) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (CDbl(Me.TextBox3) * 80)
    Set plage = Sheets("appli").Range("A2:C2026") 
    Tablo = plage
    For i = LBound(Tablo) To UBound(Tablo)
        If Tablo(i, 3) >= ratioInf And Tablo(i, 3) <= ratioSup Then
            Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2) 
        End If
    Next i
    Me.Label10.Caption = Chaine
    Set plage = Nothing
    Mais dans mon label10 je n'ai rien qui s'affiche, comment ça se fait?

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Il est conseillé de respecter certaines conventions pour que ton code reste lisible, et surtout conforme à ce que tu veux qu'il fasse

    tes déclarations de variables ne sont pas bonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim ratio, alpha, Encadrement As Double
    Dim Tablo
    Dim plage As Range
    Dim i As Integer
    Dim Chaine As String
    ratio et alpha ne sont pas typés là, ce sont des Variant, il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim ratio As Double, alpha As Double, Encadrement As Double
    Dim Tablo
    Dim plage As Range
    Dim i As Integer
    Dim Chaine As String
    Dans ton code, tu fais un double if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Me.TextBox4 >= 80 And Me.TextBox4 <= 100 Then
        alpha = CDbl(Me.TextBox6) * CSng(Me.TextBox4) / 100 
    End If
    If Me.TextBox4 >= -20 And Me.TextBox4 <= 0 Then
        alpha = CDbl(Me.TextBox6) + ((CSng(Me.TextBox4) / 100) * CDbl(Me.TextBox6))
    End If
    tu peux très bien résumer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Me.TextBox4 >= 80 And Me.TextBox4 <= 100 Then
        alpha = CDbl(Me.TextBox6) * CSng(Me.TextBox4) / 100
    ElseIf Me.TextBox4 >= -20 And Me.TextBox4 <= 0 Then
        alpha = CDbl(Me.TextBox6) + ((CSng(Me.TextBox4) / 100) * CDbl(Me.TextBox6))
    End If
    On notera au passage que tu ne convertis pas la valeur de tes Textbox dans tes conditions, qui ne sont donc jamais vérifiées et qui ne permettent pas de calculer ton alfa ... donc :

    - ton alfa = 0
    - ton encadrement = 0
    - ton ratioInf = 0
    - ton ratioSup = 0

    ==> à moins d'avoir un ratio ba = 0 dans ton tableau de données, tu ne trouveras rien

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Je finis alors par avoir ça :
    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
     
    Dim ratio As Double, alpha As Double, Encadrement As Double
    Dim Tablo
    Dim plage As Range
    Dim i As Integer
    Dim Chaine As String
    If CSng(Me.TextBox4) >= 80 And CSng(Me.TextBox4) <= 100 Then
        alpha = CDbl(Me.TextBox6) * CSng(Me.TextBox4) / 100
    ElseIf CSng(Me.TextBox4) >= -20 And CSng(Me.TextBox4) <= 0 Then
        alpha = CDbl(Me.TextBox6) + ((CSng(Me.TextBox4) / 100) * CDbl(Me.TextBox6))
    End If
    Encadrement = alpha * 0.01   'revoir l'encadrement 
    ' ratio avec Encadrement inférieur
    ratioInf = (((alpha - Encadrement) * CDbl(Me.TextBox5) * 0.0762 * WorksheetFunction.Pi * 60 * (1 + CDbl(Me.TextBox2)) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (CDbl(Me.TextBox3) * 80) 
    ' ratio avec Encadrement supérieur
    ratioSup = (((alpha + Encadrement) * CDbl(Me.TextBox5) * 0.0762 * WorksheetFunction.Pi * 60 * (1 + CDbl(Me.TextBox2)) / 0.077 / 1000 / 1.115) / (25 * 60 / 1000)) * 36 / (CDbl(Me.TextBox3) * 80) 
    Set plage = Sheets("appli").Range("A2:C2026") 'balayage dans le tableau onglet appli sur excel
    Tablo = plage
    For i = LBound(Tablo) To UBound(Tablo)
        If Tablo(i, 3) >= ratioInf And Tablo(i, 3) <= ratioSup Then
            Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2) 'Recherche du ratio dans le tableau et écriture dans label
        End If
    Next i
    Me.Label10.Caption = Chaine
    Set plage = Nothing
    Je n'ai toujours rien qui s'affiche dans mon label, je viens de mettre un point d'arrêt au niveau du dernier End if et quand j'amène ma souris sur Tablo(i,1) une valeur s'affiche (42) et sur Tablo(i,2) une valeur s'affiche aussi (24) ce qui correspond bien à un couple de valeur associée mais pourtant rien ne s'affiche dans mon label..

  16. #16
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    met plutôt ton point d'arrêt ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Tablo(i, 3) >= ratioInf And Tablo(i, 3) <= ratioSup Then
    ensuite tu fonctionnes en pas à pas en appuyant sur F8 pour aller sur la ligne suivante

    regarde bien si la condition se vérifie, et que ton curseur passe sur la ligne (qui passe en jaune):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Chaine = Chaine & vbCrLf & Tablo(i, 1) & "/" & Tablo(i, 2)
    après, c'est peut être dangereux de faire des opération avec différents formats.
    Tu peux essayer de tout passer en CDbl(), et notamment de convertir également ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Cdbl(Tablo(i, 3)) >= ratioInf And CDbl(Tablo(i, 3)) <= ratioSup Then

    Je suis pas un expert des manipulations de nombres qui ne sont pas convertis sur le même format (oui oui, faut que je révise )

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Non ça ne change pas..
    mais quand je met un point d'arrêt à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CDbl(Tablo(i, 3)) >= ratioInf And CDbl(Tablo(i, 3)) <= ratioSup Then
    Sur CDbl(Tablo(i, 3)) une valeur s'affiche et c'est 0.33333333333

  18. #18
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Tu as bien mis tout tes textbox en CDbl() également ?

    je pense qu'on va aller plus vite si tu me fournis une copie de ton classeur pour que je vois un peu tes données

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Je suis en stage et mon classeur est dans les ordis de l'entreprise, lundi je vous l'envoie!
    Je souhaite quand même vous dire un grand merci pour l'aide que vous m'avez fourni! ��

  20. #20
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    On a déjà résolu ta demande principale, c'est bien

    le bonus de l'encadrement, on le fini Lundi

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/11/2014, 22h36
  2. Calculs des plus grandes valeurs propres
    Par Swaraj dans le forum Calcul scientifique
    Réponses: 9
    Dernier message: 27/06/2011, 10h04
  3. [PPT-97] Créer un quizz avec calcul des résultats
    Par KermitBlue dans le forum Powerpoint
    Réponses: 5
    Dernier message: 31/01/2010, 22h09
  4. Calcul des heures avec résultat en euro
    Par Philippe608 dans le forum Excel
    Réponses: 5
    Dernier message: 26/05/2008, 19h19
  5. [Collection] Regrouper des couples clé/valeur
    Par webspeak dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/05/2006, 14h12

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