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 :

Trouver des nombres impairs


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut Trouver des nombres impairs
    Bonjour,

    Je voudrais savoir comment, dans une liste de nombres quelquonque on peut trouver les nombres impairs.
    Attention, je ne souhaite pas compter les nombres impairs mais les retranscrire dans une autre colonne.

    Merci d'avance!!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Donne un exemple de ta liste
    Sinon, regarde mod, dans l'aide. Un entier dont le modulo 2 donne un reste est un nombre impair.
    Tu ne dis pas si tu as des décimales
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Liste = Array(25, 12, 78, 45, 19, 14, 5)
    for i = 0 To Ubound(Liste)
        if Liste(i) mod 2 <> 0 then msgbox "tu l'as ton nombre impair ! " & Liste(i)   
    next

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    Je n'ai pas de nombre décimaux.
    Exemple tout bête:
    2
    3
    4
    5
    6
    et je voudrais qu'il me remette donc dans la colonne a côté:
    3
    5

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Par défaut
    ouskel'n'or a raison c'est le modulo qui va te sauver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function estImpair(nombre as integer)
       estImpair=(nombre mod 2 <> 0)
    end function
    estImpair(3) renvoie true
    estImpair(4) renvoie faux

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu cherches la dernière ligne de ta colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DerniereLigne = Range("A65535").End(xlUp).Row
    puis tu lis la valeur de chaque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to DerniereLigne
         Cells(i,2).value = Cells(i,1) mod 2 <> 0
    Next
    VRAI = Impair
    FAUX = Pair

  6. #6
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour à tous


    en b1 tu mets : =si(mod(A1;2)=1;A1;"")

    tu etires la formule vers le bas

  7. #7
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    sinon je te joins un fichier, avec fonction personnalisée permetant de supprimer les cellules vides

  8. #8
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    Citation Envoyé par ouskel'n'or
    Tu cherches la dernière ligne de ta colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DerniereLigne = Range("A65535").End(xlUp).Row
    puis tu lis la valeur de chaque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to DerniereLigne
         Cells(i,2).value = Cells(i,1) mod 2 <> 0
    Next
    VRAI = Impair
    FAUX = Pair
    Super, par contre, je voulais afficher les nombres impairs sans lignes vides en colonne B
    J'ai mis
    If Cells(i, 2) = True Then Cells(i, 2).Value
    If Cells(i, 2) = False Then Cells(i, 2).clearcontent
    mais ca marche pas
    Désolé je débute en VBA

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En une fois, c'est mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to DerniereLigne
         If Cells(i,1) mod 2 <> 0 then Cells(i,2).value = Cells(i,1).value
    Next

  10. #10
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut impairs
    Citation Envoyé par ouskel'n'or
    En une fois, c'est mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to DerniereLigne
         If Cells(i,1) mod 2 <> 0 then Cells(i,2).value = Cells(i,1).value
    Next
    Oui d'accord mais ca ne m'enlève pas les lignes vides qui contenaient des nombres pairs dans la colonne A.
    Comment faire? avec un offset?
    Merci!!

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Faut tout dire du premier coup
    Attention, ce code te supprime toutes les lignes contenant un nombre Pair.
    C'est ce que tu veux ? Là, on part à l'envers, cad de la dernière ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = DerniereLigne to 1 step - 1
         If Cells(i,1) mod 2 <> 0 then 
               Cells(i,2).value = Cells(i,1).value
             else
               Cells(i,1).entireRow.delete
         endif
    Next
    A+

  12. #12
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut nbres impairs
    Citation Envoyé par ouskel'n'or
    Faut tout dire du premier coup
    Attention, ce code te supprime toutes les lignes contenant un nombre Pair.
    C'est ce que tu veux ? Là, on part à l'envers, cad de la dernière ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = DerniereLigne to 1 step - 1
         If Cells(i,1) mod 2 <> 0 then 
               Cells(i,2).value = Cells(i,1).value
             else
               Cells(i,1).entireRow.delete
         endif
    Next
    A+
    Oui c'est ec que je veux mais par contre, ca me met deux fois les nbres impairs dans colone A puis col B

  13. #13
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut nbre impairs
    ah non ca y'est c'est bon, j'ai trouvé!!
    Mais je sais pas si je préfereai pas mettre les nombres impairs à côté
    je vais voir
    si c'est pas bon, je reviens vers toi!!
    Merci bcp!

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Desole mais je ne serqi plus la (et jai un pb de clavier)

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    hum hum il existe deux fonctions dans analyse

    isodd et iseven

Discussions similaires

  1. Trouver le nombres d'arrangement des intercalaires dans une suite
    Par bizulk dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 20/02/2012, 12h40
  2. [Débutant] Trouver des suites de nombres dans un vecteur
    Par Drastalouf dans le forum MATLAB
    Réponses: 1
    Dernier message: 01/06/2010, 23h34
  3. [débutant]Trouver des nombres premiers
    Par Sébastien L dans le forum Langage
    Réponses: 17
    Dernier message: 19/10/2006, 13h21
  4. [Kylix] Trouver des composants pour Kylix 3
    Par busy999 dans le forum EDI
    Réponses: 2
    Dernier message: 17/02/2003, 15h01
  5. [SWT] Un bon coin ou trouver des infos pratik
    Par yolepro dans le forum SWT/JFace
    Réponses: 8
    Dernier message: 04/12/2002, 15h08

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