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 :

Intervalle de tolérance cellule / colonne.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut Intervalle de tolérance cellule / colonne.
    Bonjour,

    Alors voilà j'aimerai créer un programme qui vérifie toute les valeurs d'une colonne si elle sont comprise entre deux cellules ( valeurs dans la cellule ) et ensuite copier dans un tableau les valeurs non comprise dans cette intervalle.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub CompteRendu()
     
    Dim Maxi As Integer
    Dim Mini As Integer
     
    Maxi = Range("C21")
    Mini = Range("C22")
     
    End Sub
    J'ai commencer a définir des variables mais ensuite je ne voit pas comment faire.

    Il faut utiliser if Maxi<colonne<Mini Then copie dans un tableau les valeurs non comprise dans l'intervalle.

    Mais comment y mettre la colonne et repérer les valeurs non comprise dans l'intervalle ?

    Cordialement.

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Salut max76210,

    Peux-tu me dire si j'ai compris ce que tu souhaites faire et apporter des précisions sur les zones d'ombres ?

    Tu veux comparer toutes les valeurs d'une colonne (par exemple A), de la première ligne à la dernière ligne, en fonction de deux autres valeurs.
    Ces valeurs sont situées dans deux cellules (par exemple C21 et C22). Mais est-ce que chaque cellule de ta colonne (A) doit être comparée avec les mêmes valeurs où est-ce que ces cellules comparatives évoluent chaque ligne :
    Exemple :
    • A2 comparé avec B2 et C2
    • A3 comparé avec B3 et C3
    • A4 comparé avec B4 et C4
    • ...

    Enfin, où souhaites-tu recopier les valeurs non-présentes dans les intervalles ?
    Même feuille ? Autre feuille ? Autre classeur ? Sur quelle plage ? A supprimer en amont ?

    Cordialement,
    Kimy

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Il ne faut pas que ce soit une colonne en fait sinon ça va créer des conflits cars mes deux cellules qui définissent l'intervalle sont dans la même colonne que je veux.

    Donc plutôt une plage de cellule.

    Sinon non les cellules comparatives n'évoluent pas elles sont fixes.

    En gros :

    - Tu as une plage de cellule avec des valeurs.

    - Une cellule avec une valeur maxi.

    - Une cellule avec une valeur mini.

    Si une des valeurs de la plage de cellule dépasse le maxi ou est plus petite que le mini.

    Cette valeur est copiée dans une autre feuille.

    Tu as compris ?

    Cordialement.

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Petit code rapide. A toi d'adapter :
    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
    Sub comparatif()
    'Déclaration des variable
    Dim Rng As Range
    Dim comp1, comp2 As Single
     
    'Avec "Feuil2"
    With Worksheets("Feuil2")
        'On set la range qu'on souhaite comparer
        Set Rng = .Range("A1:B40, E2:G10")
        'Et les deux varaibles comparatives (comp1 = min - comp2 = max)
        comp1 = .Range("C21")
        comp2 = .Range("C22")
     
        'Pour chaque cellules de la range
        For Each Cel In Rng.Cells
            'On vérifie la comparaison
            If Cel < comp1 Or Cel > comp2 Then
                'et si on est hors bornes, alors on écrit la valeur en bas de la colonne A de la feuille "Feuil3"
                'il faut qu'il y ai au moins une valeur en A1.
                Worksheets("Feuil3").Columns(1).Find("*", , , , , xlPrevious).Offset(1, 0) = Cel
            End If
        Next Cel
     
    End With
     
    End Sub
    N'hésite pas à revenir vers moi si tu as des questions.

    Cordialement,
    Kimy

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Merci de ta réponse sa m'aide beaucoup,

    Cependant il y a une erreur à une ligne que je ne comprends pas.

    J'ai bien mis ma plage de cellule.

    Renseigner les feuilles du classeur.

    Je te mets mon fichier si tu peux regarder.

    Cordialement.

    exemple.xls

  6. #6
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Et ça dans "Compte Rendu" : 'il faut qu'il y ai au moins une valeur en A1. ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Exact je n'avait pas vu ^^

    Ton programme marche bien mais il manque une valeur a chaque fois...

    Je ne sait pas d'ou peut venir ce problème.

    Tu ne sais pas d'ou sa pourrais venir ?

  8. #8
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Hum... comment dire...

    Avec si peu d'explications je vais avoir du mal à voir d'où vient ton problème...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Alors voilà quand tu vas dans mon tableau source on voit bien qu'il y a 4 valeurs hors tolérance pourtant quand je transfère dans compte rendu avec ton programme il y en a que 3 qui ressortent.

    Regarde par toi-même sur un exemple ci-joint.

    exemple2.xls

  10. #10
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Dans la .Range("C25:C47"), il n'y a que trois valeurs.

    Essaye avec .Range("C24:C47").

    Cordialement,
    Kimy

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Exact ! J'ai modifier le tableau mais oublier de modifier la plage de valeur. Bien vu !

    Merci.

    Je met résolu tu a répondu à toutes mes questions ^^

    Dernier truc...

    Si je veut que le programme mettent en automatique les valeurs en rouge quel ligne de programme je doit rajouter ?

    Merci.

  12. #12
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Soit explicite...

    Une question bien formulée c’est 100% de la solution (rdurupt) !
    cf rdurupt.

    La valeur d'origine ? La valeur finale ? Les valeurs tests ?

    J'imagine que tu parles de ton tableau d'origine...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        'Pour chaque cellules de la range
        For Each Cel In Rng.Cells
            Cel.Interior.ColorIndex = xlNone
            'On vérifie la comparaison
            If Cel < comp1 Or Cel > comp2 Then
                'et si on est hors bornes, alors on écrit la valeur en bas de la colonne A de la feuille "Feuil3"
                'il faut qu'il y ai au moins une valeur en A1.
                Worksheets("Feuil3").Columns(1).Find("*", , , , , xlPrevious).Offset(1, 0) = Cel
                Cel.Interior.Color = RGB(255, 0, 0)
            End If
        Next Cel
    Cordialement,
    Kimy

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    En faite il faudrait que ce programme mettre en couleur les valeurs de mon tableau qui sont hors tolérance directement sans recopier maintenant.

    Mais seulement les valeurs hors tolérance.

    Et la j'ai essayer cela met toutes les cases en rouge, même les vides.

    Il faudrait que ce soit seulement l'écriture si possible.

    Je t'est mit le fichier en exemple de ce que cela fait.

    test.xls

  14. #14
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Min = .Range("C21")
        Max = .Range("C22")
    Min = C21 => 23.005 // Max = C22 => 23.001

    Les commentaires servent à t'aider...

    Les codes sont à ADAPTER.

    De plus, tu n'as que des -0,001.
    Bref, à toi de modifier ce que tu souhaites.

    Cordialement,
    Kimy

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    T'est sur que ton code tu a tout mit ?

    Je le sais que les intervalles sont comme sa et que il y a que des 0,01 mais sa met quand même les cases vides en rouge.

    Les cases devrait être blanche vu qu'il n'y a pas de valeur.

    Et si je met une valeur dans la tolérance la case est en rouge quand même.

    Il ne prend rien en compte.

    Le but c'est de vérifier les valeurs si elle sont dans la tolérance et mettre la case en rouge si c'est hors tolérance le rouge ne doit apparaître que pour les valeurs hors tolérance. Le reste sa doit rester normal quand c'est dans les tolérances ou si il n'y a pas de valeurs dans la case.

    Comment je doit procéder je doit mettre des conditions avec des sinon ?

    Du genre : vérifier la case si elle hors tolérance si oui --> la mettre en rouge , sinon laisse la case normal ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    J'ai trouver la solution aussi merci quand même.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/07/2011, 10h50
  2. [XL-2003] Couleurs de fond différents si cellules colonne différents
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/11/2010, 23h00
  3. Réponses: 2
    Dernier message: 07/05/2010, 13h36
  4. couleur cellule colonne 1
    Par marie33000 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/06/2009, 22h46

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