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 :

attribution de rangs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut attribution de rangs
    Bonjour !
    J ai 2 séries de données dans des colonnes A et B...je les regroupe dans une colonne C et je les trie par ordre croissant (voir ci dessous)


    Je cherche a compter dans la colonne C : pour chaque a le nombre de b qui lui sont inférieurs
    Merci à ceux qui pourront m'aider

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    s'il n'y a rien pour les distinguer, tu ne peux pas faire ce calcul une fois que tu as mis ces nombre en colonne C. c'est avant que tu dois le faire. une boucle suffit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for each valeur1 in range ("a1:a100")
      for each valeur2 in range ("B1:B100")
       if valeur1 > valeur2 then rang = rang + 1
      next valeur2
    msgbox rang
    next valeur1

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    en fait ce que je veux réellement c'est ça :

    a < a < b < a < b < a < a < b < a < b < b
    11 < 21 < 22 < 25 < 43 < 52 < 71 < 72 < 79 < 91 < 116
    0 + 0 + 1 + 2 + 2 + 3

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    ca ne marche pas tel quel...
    Les résultats obtenus ssont erronés et la msgbox plante...ctrl alt sup à chaque sfois.
    merci

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    désolé; il fallait remettre rand a 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For Each valeur1 In Range("a1:a100")
    rang = 0
      For Each valeur2 In Range("B1:B100")
         If valeur1 > valeur2 Then rang = rang + 1
      Next valeur2
    MsgBox rang
    Next valeur1
     
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    merci !
    En fait j me suis trompé sur la problématique...
    En fait je cherche à copier le contenu de la cellule D si la cellule C adjacente est écrite en rouge... j ai fait le code suivant mais je dois avoir un problème de condition...

    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
    Dim cDest As Range ' Cellule de destination
     
     
     
     Set cDest = Range("H1") ' 1°Cellule destination
     
     
     Set rS = Cells(3, 1).CurrentRegion ' le tableau de donnee commence en C1..
     For Each rl In rS.Rows 'parcours les lignes du tableau de donnée source
        If rl.Cells.Font.ColorIndex = 3 Then
          cDest.Value = r2.Cells(4)  ' Copie contenue colonne d
               Exit For
       End If
     
       Set cDest = cDest.Offset(1, 0) 'Passe ligne suivante
     Next
     
    End Sub
    Merci à ceux qui m'aideront

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    Une erreur s'est glissée dans le code mais j ai toujours le même problème de conditions...

    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
     
    Dim cDest As Range ' Cellule de destination
     
     
     
     Set cDest = Range("H1") ' 1°Cellule destination
     
     
     Set rS = Cells(3, 1).CurrentRegion ' le tableau de donnee commence en C1..
     For Each rl In rS.Rows 'parcours les lignes du tableau de donnée source
        If rl.Cells(3).Font.ColorIndex = 3 Then
          cDest.Value = rl.Cells(4)  ' Copie contenue colonne d
           Set cDest = cDest.Offset(1, 0) 'Passe ligne suivante
     
       End If
       Exit For
     Next
     
    End Sub
    merci

Discussions similaires

  1. [XL-2007] Méthode Range dynamique et conditionnelle --> Attribution de la première valeur
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/06/2015, 15h14
  2. [XL-2010] Boucle sur groupe de données et attribution d'un rang
    Par Fabfab750 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2014, 13h17
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 16h22
  4. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 17h53

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