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 :

Déterminer si un nombre est entier ou pas [XL-2007]


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
    james bonde 007
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : james bonde 007

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Par défaut Déterminer si un nombre est entier ou pas
    Bonjour à vous,

    voilà je fais une petite macro vga sous excel dont voici un bout de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a = p/4
    If a = entier Then
        u = a / 100
            If u = non.entier Then
                f = 29
            Else
                f = 28
            End If
    Else
        f = 28
    End If
    a est un entier (par ex 2014 ^^)

    Vous l'aurez surement compris, ce code n'est pas bon ^^
    En fait je cherche à savoir dans un 1er temps si le résulta de p/4 (donc a) est un nombre entier
    si c'est le cas je cherche a savoir si a/100 (donc u) n'est pas un entier.

    Le problème c'est que mes cours de VBA remontent un peu et que je ne sais plus comment regarder si un nombre est entier ou pas.

    Pouvez-vous m'aider ?

    Je reste disponible pour plus d'info ^^

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Regarde du coté de Mod :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Test()
     
        Dim p As Integer
        Dim a As Integer
     
        p = 2000
        a = p Mod 4
     
        MsgBox IIf(a <> 0, "'a' n'est pas un entier !", "'a' est un entier !")
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Homme Profil pro
    james bonde 007
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : james bonde 007

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Par défaut
    Merci !!

    ça ne répond pas au pb mais ça le résoud ^^

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    (a mod 1) =>0 si a entier

    eric

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    ça ne répond pas au pb mais ça le résoud ^^
    C'est ceci que tu cherche ? Dans mon premier code, j'ai fais une erreur, j'ai déclaré a comme Integer alors qu'il fallait le déclarer Single !
    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
     
    Sub Test()
     
        Dim p As Integer
        Dim a As Single
        Dim f As Integer
     
        p = 420
     
        If p Mod 4 = 0 Then
     
            If p / 4 Mod 100 <> 0 Then
     
                f = 29
     
            Else
     
                f = 28
     
            End If
     
        Else
     
            f = 28
     
        End If
     
    End Sub
    Hervé.

  6. #6
    Membre averti
    Homme Profil pro
    james bonde 007
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : james bonde 007

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Par défaut
    Mod permet de résoudre mon problème en effet.

    mais je pensai qu'excel était capable de reconnaître un entier.
    Car si je me souviens bien,
    il y a une propriété comme "integer" qui permet de voir ou dire que "a" est un entier.

    Mes souvenirs sont sûrement faux mais j'aimerai que vous me renseigniez sur ce point.

    Merci pour vos réponses en tout cas.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2010, 18h09
  2. verifier qu'un nombre est entier
    Par waspy59 dans le forum C#
    Réponses: 2
    Dernier message: 14/01/2010, 17h00
  3. Savoir si un nombre est entier
    Par ovni dans le forum Langage
    Réponses: 11
    Dernier message: 28/04/2007, 20h19
  4. Réponses: 9
    Dernier message: 30/01/2007, 21h03
  5. Déterminer si un nombre est premier
    Par Fandefruit dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2005, 10h52

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