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 :

[VBA-E]Comparer 2 séries différentes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut [VBA-E]Comparer 2 séries différentes
    coucou,

    vraiment les titres et moi ca fait 2 alors je vais bien m'expliquer en dessous

    j'ai sur une feuille Excel 2 colonnes, exemple :

    colonne1 | colonne2
    200 | P1
    120 | P1
    345 | P6

    et jai sur une autre feuille à quoi correspondent les P1...

    colonne1 | colonne2

    P1 | 100
    P2 | 150
    P3 | 180

    et je voudrais trouver les lignes de la feuille 1 pour lesquelles la colonne 1 depasse la valeur maximale autorisée (ces valeurs sont celles de la feuille 2).

    Exemple on a à la ligne 1, 200 et P1 or on voit que le maximum autorisé par P1 est 100 (dans la feuille 2)

    J'ai pas trop d'idée sur la méthode

    peut etre que je devrai creer un tableau 2 dimensions, je met ligne 1 les valeurs de la feuille 2 colonne 1 (P1, P2, P3...) puis dans la ligne 2 les valeurs maximales (feuille 2 colonne 2) et à chaque ligne de ma feuille 1 je cherche dans mon tableau la valeur qui correspond au code (P1,P2..) de la ligne et je recupere la valeur maximale associée.

    Pour ceux qui comprennent le paragraphe au dessus du 1er coup bravo !!

    plus serieusement je suis preneur de toutes les idées qui répondent à mes besoins.

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Tu veux obligatoirement le faire par macro ?
    Car avec des formules ça serai plus simple, en utilisant une rechercheV je pense
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Bah personnellement c'est ce que j'ai fait a mon boulot ou j'avais un truc un peu du meme genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(RECHERCHEV(B2;Feuil2!$A$1:$B$4;2;0) < Feuil2!B1;"2";"rien")
    En faisant un Si

    Sachant que dans la première feuille j'ai mis tes premières valeurs comme tu les as mises, et dans la feuille2 j'ai juste pa smis les titres

    Après faut retrouver le numéro de la ligne mais je pense pas que ça soit trop difficile

    EDIT : meme pas dans te recherche tu met un ou 0 dans le SI pour voir lesquelles sont bonne sou non et suivant le résultat que tu auras avec ce Si, bah tu verra le nombre d elignes APrès ça dépend ce que tu veux faire de ces données

    J'espère que j'ai été clair dans ce que j'ai dit au fait
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Merci pour ta solution illight mais je pense que c'est pas adapté à ce que je veux faire

    ce serait trop compliqué avec un SI et une RECHERCHEV car en realité (là javai simplifié) je voudrai ne copier que certaines colonnes des lignes qui sont acceptées (condition remplie) car il y a une quinzaine de colonne dans ma feuille 1.

    Alors pour l'instant je reste sur mon tableau, enfin je vais essayer de faire un ptit truc on verra ce que ca donne

    je reste toujours dispo à d'autre idée

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Bah justement si la condition est remplie et que la formule que je t'ai donnée est égale à 1, tu prend les colonnes (ou lignes j'ai pas trop compris ) qui t'intéresse et tu les copie dans une autre feuille ta rechercheV tu peux l'élargir a plein de trucs
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Yop me revoici,

    en fait je m'en tire bien avec mon tableau et jai le resultat rapidement

    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
     
        'on regarde les temps depassés
        For i = 2 To NbLignesFeuil1
            ValeurTemp = Sheets("feuil1").Cells(i, 12)
            'on cherche la priority dans le tableau rempli et on remplace par le temps correspondant
            For j = 1 To NbLignesFeuil2
                If (ValeurTemp = Donnees(j, 1)) Then
                    ValeurTemp = Donnees(j, 2)
                    Exit For
                End If
            Next
            'on regarde si la valeur est supérieure à la durée totale (colonne D)
            If (ValeurTemp < Sheets("feuil1").Cells(i, 4)) Then
                Sheets(NomFeuille).Cells(NumLigneCopiee, 1) = Sheets("feuil1").Cells(i, 1)
                Sheets(NomFeuille).Cells(NumLigneCopiee, 2) = Sheets("feuil1").Cells(i, 2)
                Sheets(NomFeuille).Cells(NumLigneCopiee, 3) = Sheets("feuil1").Cells(i, 3)
                Sheets(NomFeuille).Cells(NumLigneCopiee, 4) = Sheets("feuil1").Cells(i, 6)
                Sheets(NomFeuille).Cells(NumLigneCopiee, 5) = Sheets("feuil1").Cells(i, 11)
                NumLigneCopiee = NumLigneCopiee + 1
            End If
        Next
    je pense que cette partie correspond à ce que doit faire une recherchev (réelement) donc je pense pas que ce soit plus rapide avec une rechercheV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ValeurTemp = Sheets("feuil1").Cells(i, 12)
            'on cherche la priority dans le tableau rempli et on remplace par le temps correspondant
            For j = 1 To NbLignesFeuil2
                If (ValeurTemp = Donnees(j, 1)) Then
                    ValeurTemp = Donnees(j, 2)
                    Exit For
                End If
            Next
    mais merci pour l'idée quand meme

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

Discussions similaires

  1. [VBA-E] Comparer les valeurs entre classeur
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2006, 12h32
  2. [VBA-A] Comparer une valeur à nimporte quel caractère
    Par cuicui08 dans le forum VBA Access
    Réponses: 23
    Dernier message: 23/03/2006, 09h26
  3. [VBA-E]comparer contenu textbox et cellule
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/02/2006, 12h43
  4. [VBA][EXCEL]Goto a travers différent module
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 19/12/2005, 09h32
  5. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 15h21

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