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 :

test un nombre dans un intervalle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Par défaut test un nombre dans un intervalle
    Bonjour,

    J’ai une plage de nombre (C10 ; C680). Je veux tester pour chaque nombre l’intervalle auquel il appartient et noter sur la colonne D le numéro de l’intervalle. Les intervalles sont disposés sur la plage (F2 ; G21) avec F la colonne borne inferieure et G supérieure. La plage (H2 ;H22) me sert à numéroter les intervalles.

    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
    Sub PTranche()
     
    Dim i, j, k As Integer
     
     Worksheets("Tranche").Activate
     
     i = 6
     j = 2
     
    For i = 6 To 690
     
            For j = 2 To 22
     
                  If Range("C" & i).Value > Range("G" & j).Value Then ' je compare le nombre avec la valeur de la borne supérieure (bs) de l'intervalle
     
                  ElseIf Range("C" & i).Value < Range("G" & j).Value Then Range("D" & i).Value = Range("H" & j).Value 'si le nombre est inférieure a la bs(il appartient a cet intervalle)
     
                  End If
     
             Next j
     
    Next i
     
    End Sub
    Ce code ne marche pas. Le test sur le If est fait pour tous les compteurs j . Pourriez-vous m’aider svp ?

  2. #2
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut
    Bonjour,,

    Pourquoi vouloir le faire en VBA ? c'est pour une approche pédagogique ? ou parce que tu ne connais pas les fonctions de recherche (un bon vieux Index/Equiv, voire, au pire une RechercheV) ne ferait-il pas l'affaire ?

    Pour le reste, dans la mesure où l'écriture se fait à l'intérieur de la boucle "For j", cela paraît normal !

    Personnellement, je ne suis pas friand des if avec l'instruction qui se poursuit directement après le then... Je préfère un retour à la ligne, mais c'est secondaire...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("C" & i).Value > Range("G" & j).Value And Range("C" & i).Value < Range("G" & j).Value Then Range("D" & i).Value = Range("H" & j).Value 'si le nombre est inférieure a la bs(il appartient a cet intervalle)

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fourchmin = 100
    fourchmax = 200
    toto = 127
    Select Case toto
      Case fourchmin To fourchmax
        MsgBox "dans la fourchette"
      Case Else
        MsgBox "hors fourchette"
    End Select

  5. #5
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("C" & i).Value > Range("G" & j).Value And Range("C" & i).Value < Range("G" & j).Value Then Range("D" & i).Value = Range("H" & j).Value 'si le nombre est inférieure a la bs(il appartient a cet intervalle)
    Merci pour la réponse.

    Je ne comprend pas votre test. J'ai oublié de préciser que les intervalles sont ranger dans l'ordre croissant. Un test sur la borne sup suffit

    Bonjour unparia

    On peut pas résoudre le test de l'intervalle sans utiliser les messages box?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Citation Envoyé par erlerwade Voir le message
    Bonjour unparia

    On peut pas résoudre le test de l'intervalle sans utiliser les messages box?
    C'est (je l'espère) une plaisanterie ?
    L'utilisation, dans mon exemple, de msgbox n'est là qu'à titre de démo ! Il est évident (heu ... ! ) que tu peux remplacer ces msgbox par les instructions d'exécution de ton choix !
    Mais là ... quand-même ... Je t'abandonne personnellement où tu es (et pour cause manifeste). Désolé.

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

Discussions similaires

  1. Définir un nombre dans un intervale dans une table
    Par alvanoto dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/04/2011, 13h38
  2. Réponses: 7
    Dernier message: 17/06/2008, 21h58
  3. Générer un nombre aléatoire dans un intervalle
    Par polodu84 dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/03/2008, 17h32
  4. Nombre aléatoire dans un intervalle (à partir d'un autre compris [0,1) )
    Par zoonel dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/01/2008, 14h00
  5. Réponses: 7
    Dernier message: 20/07/2006, 10h29

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