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] Minimum d'une colonne avec condition sur autre colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Points : 130
    Points
    130
    Par défaut [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Bonjour,

    J'aimerai savoir comment s'il est possible avec les fonctions VBA d'excel et sans parcourir toute une feuille excel de trouver la valeur minimum d'une colonne avec condition sur une autre colonne ???

    Bref l'equivalent de "Select donnee where condition = cible" en SQL;

    -> Trouver par exemple le min de la colonne A avec le champ B = "OK"

    Merci d'avance pour vos éventuelles réponses,
    "Ne soyez rien, devenez sans cesse"

  2. #2
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    Je te donne une partie de commande que j'avais fait. Je te laisse l'étudier et la modifier à ton envie.
    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
    Sub Minimum()
        Dim Ligne, ColonneA, ColonneB, Minimum, LigneMinimum As Integer
     
        Ligne = 1
        Do While Cells(Ligne, ColonneB) <> ""
            Do While Cells(Ligne, ColonneB) = "KO"
                Ligne = Ligne + 1
            Loop
            Do While Cells(Ligne, ColonneB) = "OK"
                If Minimum = Empty Or Cells(Ligne, ColonneA) < Minimum Then
                    Minimum = Cells(Ligne, ColonneA)
                    LigneMinimum = Ligne
                End If
                Ligne = Ligne + 1
            Loop
        Loop
        Cells(LigneMinimum, ColonneA).Select
    End Sub
    Ce code date ^^ il faudra sûrement l'améliorer

  3. #3
    Membre habitué Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Points : 130
    Points
    130
    Par défaut
    Merci pour ton code, mais j'ai déjà codé sensiblement la même chose en attendant de trouver une autre solution d'optimisation.

    Car dans mon premier post, j'ai bien mis sans parcourir toute ma feuille excel, ce que tu proposes en parcourant toute la colonne.

    C'est justement ce que j'aimerai éviter de faire ;-)

    Merci encore,

    D'autres solutions ???
    "Ne soyez rien, devenez sans cesse"

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    la seule solution pour ne pas avoir a parcourir la zone est d'utiliser une formule excel. dans l'exemple renvoie la valeur mini de colonne A en fonction de la valeur de B1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B1="condition1";MIN(A:A);"paslacondition")

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/08/2011, 18h05
  2. Réponses: 3
    Dernier message: 06/06/2011, 12h56
  3. MAJ d'un champ d'une table avec condition sur clef primaire commune
    Par ar|equin dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/05/2007, 13h57
  4. [Oracle] Update sur 1 colonne avec condition existence (SUBSTR)
    Par magic charly dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2006, 13h57
  5. Jointure avec conditions sur plusieurs colonnes
    Par ben53 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/11/2005, 09h27

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