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 :

Comparaison de Nombre dans une zone de texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par défaut Comparaison de Nombre dans une zone de texte
    Bonjour,

    Dans mon application de gestion des stocks, je compare le nombre de stock
    disponible (afficher dans une zone de texte) au nombre de pièces que je veux sortir (zone de texte modifiable en fonction d'une scrollbar).

    voici mon bout de 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
    Private Sub cmd_valider_Click()
    'Vérifier que les champs ont bien été complétés
    If cbo_articles = "" Then
        MsgBox "Vous devez sélectionner un article!", vbInformation, "Saisie incorrecte"
        Exit Sub
    ElseIf txt_nombre = 0 Then
       MsgBox "Le nombre d'articles sortants doit être supérieur à 0!", vbInformation, "Saisie incorrecte"
        Exit Sub
    ElseIf txt_nombre > txt_stockdispo Then
    commentaire : A ce niveau, il me compare le nombre a partir du premier chiffre à gauche (ex: pour 4 pièces sorties avec un stock de 22, il trouve que 4 est supérieur à 22 de ce fait il m'indique le message ci dessous
        MsgBox "Le nombre d'articles sortants ne peut pas être supérieur au stock disponible!", vbInformation, "Saisie incorrecte"
        Exit Sub
    End If
    
    
    'Boite de validation
    réponse = MsgBox("Voulez-vous sortir ce nombre d'articles du stock disponible?", vbQuestion + vbYesNo, "Demande de confirmation")
    If réponse = vbYes Then
        MsgBox "Le stock disponible a été mis à jour!", vbInformation, "Information"
    ElseIf réponse = vbNo Then
        MsgBox "Le stock disponible n'a pas été modifié!", vbInformation, "Information"
        Exit Sub
    
    End If
    
    
    'Définition des variables SD (stock dispo) et NAS (nb d'articles sortis)
    Dim sd As Integer
    Dim NAS As Integer
    sd = txt_stockdispo.Caption
    NAS = txt_nombre.Caption
    
    'MAJ du stock
    Cells(Range("C:C").Find(cbo_articles).Row, 10) = sd - NAS
    
    'Comptabilisation du nombre d'entrée et sortie
    Cells(Range("C:C").Find(cbo_articles).Row, 12).Select
    Selection.Value = Selection.Value + 1
        
      'Réglage largeur des colonnes
    Columns("A:K").EntireColumn.AutoFit
    
    'Afficher le formulaire d'alerte si le stock dispo est inférieur au stock mini
    If Cells(Range("C:C").Find(cbo_articles).Row, 10) < Cells(Range("C:C").Find(cbo_articles).Row, 9) Then
    remarque : Ici je retrouve le même problème qu'au dessus    
    Sortie_article.Hide
        etat_stock.Show
    End If
    
    Menu_general.Show
    
    End Sub
    J'ai mis des commentaires en rouge là ou j'ai un problème.

    Est ce que quelqu'un pourrait m'aider???

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Salut,
    tu peux forcer une conversion vers le numérique. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ElseIf txt_nombre > txt_stockdispo Then
     
    doit devenir :
     
    ElseIf Cint(txt_nombre) > Cint(txt_stockdispo) Then
    Si tes nombres à comparer ne sont pas des "entiers" (au sens type entier dans VBA) il existe d'autres fonctions de conversion, telles CLng, CDbl...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonjour

    en texte "4" est superieur à "22"

    il faut utiliser les valeur numerique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val(txt_nombre) > val(txt_stockdispo)
    et la ce sera bon

    bonne journée

Discussions similaires

  1. [A-00] Compter le nombre de caractère dans une zone de texte
    Par etoileetoile dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/05/2024, 17h31
  2. Compter le nombre valeurs sans doublon dans une zone de texte
    Par Alien_psy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/02/2013, 16h57
  3. Réponses: 3
    Dernier message: 10/02/2010, 22h02
  4. Réponses: 3
    Dernier message: 15/03/2007, 12h36

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