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 :

[VBA-E] Test sur un integer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut [VBA-E] Test sur un integer
    Bonjour,

    je débute en VB, et je dois créer des macros sous excel.
    J'ai bien créé ma fonction, mais j'aimerai réaliser un test (tout bête?) sur une valeur passée en paramètre à ma fonction.
    Cette valeur est un entier. Je voudrais simplement retourné une erreur si cette valeur n'est pas initialisée (null, ou vide).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if mavariable = "" Then
    MsgBox("Erreur...")
    End If
    Mais ceci ne fonctionne pas j'ai même essayé un empty même résultat... Or lorsque je teste avec une variable donnée là je passe bien dans ma condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'mavariable=5
    if mavariable = "5" Then
    MsgBox("Erreur...")
    End If
    En résumé que dois je mettre après le signe égal lorsque la variable n'est pas initialisée???

    Merci pour vos réponses.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il faudrai surtout que tu nous montre comment tu déclare ta variable... si c'est vraiment un entier... ben par défaut en VB elle est initialisée à 0 ..!

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut
    En fait j'aimerai vérifié que les différents champs concernant ma fonction sont bien rempli et que l'utilisateur n'en a pas oublié .

    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
     
    'Cette fonction renvoit la moyenne du nombre de PC de l'UDP concernée
    'sur la période donnée.
     
    Function Moyenne_PC(Udp As String, Semaine_deb As Integer, Annee_deb As Integer, Semaine_fin As Integer, Annee_fin As Integer) As Single
     
    'Contrôle du paramètre UDP au niveau d'excel
    If Trim(Udp) = "" Then
        Moyenne_PC = -1
        MsgBox ("Udp manquante")
        Exit Function
    ElseIf Semaine_deb = "" Then
         Moyenne_PC = -2
         MsgBox("Semaine_deb manquante")
         Exit Function
    End If
    Voilà, lorsque je teste le premier parametre (Udp as String) aucun problème si celui-là n'est pas renseigné il me retourne bien ma valeur -1.
    Maintenant lorsque je fait ce test sur le 2nd paramètre (Semaine_deb as Integer) il me "banane".

    Merci pour votre aide.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben pour éviter qu'il te banane .. compare un entier avec un entier..!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf Semaine_deb = 0 ...

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Pour savoir si une variable a été initialisée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim mavariable
    If IsEmpty(mavariable) Then
      MsgBox "Non initialisée"
    End If
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut
    Merci pour vos réponses rapide. Néanmoins si je mets 0, et que l'utilisateur ne met rien comme valeur (pas même 0), la condition n'est pas remplie.
    Ex:
    Moyenne_PC("MBAA";;2005;3;2006) -> ici semaine_deb n'est pas déclarée

    Lorsque tu remplis les différentes valeurs de ta fonction sous excel, si l'utilisateur n'inscrit rien pour le paramètre Semaine_deb (par exemple) cela ne marche pas.

    J'ai également essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsEmpty(mavariable) Then ...
    Fonctionne pas non plus!

    Avez-vous d'autres idées?

    Merci pour vos réponses

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut
    Bonsoir,

    Pourquoi n'utilises-tu pas une userform avec tous les champs dont tu as besoin en faisant des tests sur tout les champs avant d'utiliser ta fonction (cela obligera tes utilisateurs à mettre les données dont tu as besoin) ?

    fast

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

Discussions similaires

  1. [JSTL] c:when test sur un integer KO
    Par jayjaypg22 dans le forum Taglibs
    Réponses: 2
    Dernier message: 22/10/2010, 10h01
  2. [VBA-E] Test sur le contenu de cellule
    Par mwa33 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2007, 08h59
  3. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38
  4. [VBA-E] test sur une chaine de charactère
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/04/2006, 14h24
  5. [VBA-E]test sur le contenu de toute une ligne
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/02/2006, 16h00

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