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 :

Probleme avec cellules vides


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Probleme avec cellules vides
    Bonjour

    J'ai un souci avec mon code. J'ai une userform qui sert a demander des donnees a l'utilisateur pour faire ensuite des calculs par appui sur un commandButton. Mon probleme est quand les textbox sont vides ou negatives, ce qui empeche logiquement le calcul.


    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
    Private Sub cmdLauch1_Click()
     
    Dim input_pressure As Single
    input_pressure = UserForm1.IPressureTextBox.Text
     
     
    emptybox (UserForm1.IPressureTextBox.Text)
     
    neg (UserForm1.IPressureTextBox.Text)
     
    'fonction pour les valeurs negatives
    Private Function neg(neg_value As Single) As Single
     
        If neg_value < 0 Then
            MsgBox "Negative value :" & neg_value
        End If
     
    End Function
     
     
    'Fonction pour la longueur du chiffre dans la text box
    Private Function maxsize(max_size As Single) As Single
     
    If Len(max_size) > 7 Then
        MsgBox "Too much characters :" & max_size
    End If
     
    'Fonction pour une cellule vide, ou j'essaie de remplacer par un 0 pour ne pas tout planter apres
    Public Function emptybox(empty_box As String) As Single
     
    If empty_box = "" Then
            MsgBox "empty box"
            empty_box = 0
            Exit Function
    End If
     
    End Function

    Problemes:
    - la fonction maxsize ne marche pas
    - la fonction neg ne marche pas pour 0

    Merci de votre aide!

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    tu devrai revoir la définition d'une fonction, celle-ci doit retourner quelque chose et pour cela tu dois ecrire NomDeFonction = Valeur ..
    par exemple voici une possiblité pour ta fonction de mise en forme :

    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
     
     
    Sub yaTest()
     MsgBox "Vide : " & yaMef("")
     MsgBox "Negatif : " & yaMef("-123")
     MsgBox "trop long : " & yaMef("12345678")
    End Sub
     
    Function yaMef(st As String) As Single
     If st = "" Then
       yaMef = 0#    ' la fonction retourne 0.0
       Exit Function
     End If
     If CSng(st) < 0 Then
       MsgBox "Erreur negatif"
       yaMef = 0#    ' la fonction retourne 0.0
       Exit Function
    End If
    If Len(st) > 7 Then
    MsgBox "Too much characters :" & 7
       yaMef = 0#    ' la fonction retourne 0.0
       Exit Function
    End If
      yaMef = CSng(st) 'Retourne la valeur en single
    End Function
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour cette reponse si rapide!

    Cependant, j'aimerais que la text box soit remise a sa valeur par defaut (celle a l'ouverture de la userform) apres detection de l'erreur.

    Je n'ai pas trouvé d'alternative pour l'instant.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Heu, je vais peut-être dire une connerie, mais il ne serait pas plus simple de faire une condition du genre

    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
    Sub()
    Dim Message
    If TextBox1.Value < 0 Or TextBox2.value < 0 Or... Or TextBoxn.Value < 0 Then 'Ou n est le nombre de textbox contenant une valeur entiére ou réelle
     
    Message= MsgBox("Certains nombre(s) inscris sont négatifs",VbExclamation,"Nombre négatifs")
     
    Else
     
    If TextBox.Value= "" Or TextBox2.value = "" Or... Or TextBoxn.Value = "" Then
     
    Message=MsgBox("un ou plusieurs champs sont vide. Veuillez les remplir",VbExclamation,"Champs vide")
     
    Else
    Code à éxecuter.
     
    End if
    End if
    End Sub

  5. #5
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Citation Envoyé par PatriceBDP Voir le message
    Cependant, j'aimerais que la text box soit remise a sa valeur par defaut (celle a l'ouverture de la userform) apres detection de l'erreur.
    Bonsoir, Et elle viens d'ou la donnée intiale ? tu peu pas la reprendre au même endroit si erreur ..? modifie la fonction pour qu'elle te renvoi un boolean false/true, avec true = si saisie OK , et si pas OK tu reprends la valeur initiale.
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

Discussions similaires

  1. Concaténation de tableaux AVEC cellules vides
    Par Clairette29 dans le forum MATLAB
    Réponses: 13
    Dernier message: 24/06/2008, 13h18
  2. combobox sans doublon (colonne de reference avec cellule vide)
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/04/2008, 17h08
  3. Problème de fonction avec cellule vide
    Par Samjeux dans le forum Excel
    Réponses: 4
    Dernier message: 14/06/2007, 08h45
  4. [stringtokenizer] probleme avec champs vides
    Par gege2mars dans le forum Langage
    Réponses: 9
    Dernier message: 30/06/2004, 08h25
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

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