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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    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 Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    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

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    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
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    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 Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    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.

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