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 :

Problème comparaison Textbox / Cellules au format nombre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2016
    Messages : 38
    Par défaut Problème comparaison Textbox / Cellules au format nombre
    Bonjour à tous,

    Dans le développement d'un nouveau module VBA destiné à l'enregistrement des contrôles qualité de mon entreprise je rencontre un problème. Lors de la saisie des résultats du contrôle qualité, l'opérateur rempli un Userform avec plusieurs de TextBox. Suivant le type de produit contrôlé, le valeurs des textboxs sont comparées avec les valeurs limites présentes dans un tableau au format nombre (les valeurs sont des nombres décimaux pas des entiers), afin de déterminer automatiquement si le contrôle qualité est validé ou non. Voici le 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
    ' On regarde par rapport à nos critères d'acceptation si le test a été considéré comme accepté ou non
    verification3 = 1
    lignestandard = 0
    For i = 4 To 43
        If CDbl(ThisWorkbook.Worksheets("Inspection_Standards").Cells(i, 2).Value) = CurrentDiesSize Then
            lignestandard = i
            If ThisWorkbook.Worksheets("Inspection_Standards").Cells(i, 3).Value > CDbl(Me.TextBox_InspectionMin.Text) Then
                verification3 = 0
            ElseIf ThisWorkbook.Worksheets("Inspection_Standards").Cells(i, 4).Value < CDbl(Me.TextBox_InspectionMax.Text) Then
                verification3 = 0
            End If
            If ThisWorkbook.Worksheets("Inspection_Standards").Cells(i, 5).Value < CDbl(Me.TextBox_InspectionOvality.Text) Then
                verification3 = 0
                End If
            If Me.ComboBox_SurfaceCondition.Text = "failed" Then
                verification3 = 0
                End If
        End If
    Next i
     
    'On envoit un rapport d'erreur si CurrentDiesSize ne correspond à aucune valeur du tableau Inspection
    'Standard
    If lignestandard = 0 Then
        MsgBox "The Size of the dies n°" + Me.TextBox_DiesNumber.Text + "is not a standard size"
        Application.ScreenUpdating = True
        Exit Sub
    End If
     
    'On remplit alors la case result of inspection
    If verification3 = 0 Then
        Me.ComboBox_Result.Value = "failed"
    ElseIf verification3 = 1 Then
        Me.ComboBox_Result.Value = "passed"
    End If
    L'execution de la macro me renvoie une erreur d'incompatibilité de type pour la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If ThisWorkbook.Worksheets("Inspection_Standards").Cells(i, 3).Value > CDbl(Me.TextBox_InspectionMin.Text) Then.
    J'avais d'abord essayé de configurer cette macro sans convertir la valeur de mes TextBox en double (sans utiliser CDbl() ), aucun rapport d'erreur ne m'était renvoyé mais les résultats étaient aberrants. Quelqu'un aurait il une idée de comment résoudre ce problème?

    Un grand merci,
    Mathieu

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    La propriété value d'une textbox est de type string
    cdbl convertit en numérique si le séparateur décimal saisi est celui prévu sur cette machine (très probablement la virgule sur la tienne)
    val est à utiliser si le séparateur décimal est le point
    Isnumeric permet de savoir si le contenu de la textbox est convertible par cdbl en numérique (il l'est si le séparateur décimal saisi est celui prévu sur cette machine)

    L'une des méthodes possibles consiste à utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val(Replace(TextBox1.Text, ",", "."))

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2016
    Messages : 38
    Par défaut
    Je viens d'essayer en insérant ton code, ça marche parfaitement. Un grand merci unparia, je vais pas mal utiliser ça pour la suite de mon module!

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

Discussions similaires

  1. [BO 6.5.1]Problème de comparaison de cellule
    Par CélineM dans le forum Deski
    Réponses: 2
    Dernier message: 25/03/2008, 16h48
  2. Réponses: 1
    Dernier message: 03/03/2008, 14h20
  3. Modif format nombre pour 24 TextBox
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/12/2007, 21h26
  4. [Debutante] Problème comparaison de cellules Excel
    Par Danae123 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 09h28
  5. Formater des cellules excel en format nombre
    Par _developpeur_ dans le forum Access
    Réponses: 7
    Dernier message: 09/01/2006, 14h13

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