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-Excel-Plus grande valeur d'une colonne


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
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut vba-Excel-Plus grande valeur d'une colonne
    bonjour a tous

    jai besoin daide sur un ptit bo

    je veux faire une fonction vba qui récupére la plus grande valeur d'une colonne particuliere( disons B)
    merci de votre aide

  2. #2
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    salut,

    ben je pense à ceci:

    -tu parcours chaque cellules de ta colonne. Tu enregistres la première valeur dans une variable,
    -puis ligne suivante, tu compares la valeur de la cellule avec ta variable, si c'est plus grand, tu enregistres cette valeur dans ta variable, sinon, tu passe à la cellule suivante.
    Au final tu auras dans ta variable la + grande valeur de ta colonne.

    Je sais que tu as tout ce qu'il faut pour y arriver dans les tuto et faq

  3. #3
    Membre confirmé Avatar de biggione
    Inscrit en
    Juillet 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 99
    Par défaut
    tu sais deja combien tu as de ligne maxi dans la colonne ou non?
    si tu le sais et que c'est 50 par exemple, tu peu faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim a as double
    a=0
    for i = 1 to 50
       if range("A" & i).value>a then     'par exemple tu veux tester la colonne A
          a = range("A" & i).value
       end if
    next i
    range("B1").value = a     ' tu écris le résultat de la recherche dans B1

  4. #4
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    il me semble bien que dans le forum il y a un post qui traite de ça, qui pemet de retrouver la fin. Attends, je jette un oeil, fais pareil..

  5. #5
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336

  6. #6
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    lol ça doit faire le cinquième fois que je la mets cette ligne de code

    Pour avoir la taille d'une colonne particulière (attention il ne faut pas de cellule vide au milieu de la colonne) il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count
    Feuille c'est le nom de ta feuille et Debut c'est le nom de la première cellule de ta colonne (n'oublie pas les guillemets quand même )

    Note : quand je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets(Feuille).range(Debut).address & ":"
    , on pourrait aussi bien mettre Le seul intérêt c'est de pouvoir adapter si par exemple la première case de ta colonne est celle en dessous de Debut, alors tu mettras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).offset(1,0).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count

  7. #7
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Le lien qu'a mis asdorve te permettra de connaître la dernière ligne d'une région mais pas forcément d'une colonne...

    Je m'explique, imaginons que tu veuilles le nb de lignes de la colonne A. Si ta colonne A contient 100 lignes et ta colonne B 200 et que tu te sert de currentregion sur le debut de ta colonne A tu vas te retrouver avec un résultat de 200 lignes (enfin je crois bien ) vu qu'il considère tt la région A:B

  8. #8
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Bonjour,

    Juste une petite remarque, la fonction Max d'Excel ne marche pas ????

    +

    Théo

  9. #9
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Re,

    Petit complément pour la fonction Max dans VBA : regarder dans l'aide du côté de la propriété WorksheetFunction

    +

    Théo

  10. #10
    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
    Alala,

    toujours aussi compliqué le comcombre !

    nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count



    c'est pas plus beau ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerniereLigne = Worksheets(NomFeuilleSource).Range("D1").End(xlDown).Row
    Sinon je pense que la solution de Théo à l'air bien.

    on peut faire plus rapide que la copie dans une variable temporaire je pense...
    un sort et on recupere la valeur de la derneire ligne (je sais plus si ca trie de facon croissante ou non...)

  11. #11
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par VBBBA
    je veux faire une fonction vba qui récupére la plus grande valeur d'une colonne particuliere
    Tu ne pourrais pas tout nous dire en une fois ou c'est pour faire durer le plaisir?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut
    désolé.

  13. #13
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    rebonsoir

    tu peux essayer cette macro , sans trier chaque colonne



    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
        Dim x As Byte
        Dim Nombre As Single
        Dim Ligne As Long
     
        For x = 1 To 3 'boucle pour récupérer les 3 valeurs les plus eleveées
     
            'récupère la Xieme valeur la plus élevée dans la 2eme colonne
            Nombre = Application.WorksheetFunction.Large(Columns(2), x)
     
            'recherche le numéro de ligne pour la valeur trouvée
            Ligne = Application.Match(Nombre, Columns(2), 0)
     
            'récupère le contenu de la 1ere colonne pour la valeur cible
            MsgBox Cells(Ligne, 1)
     
        Next x


    bonne soirée
    michel

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut
    t un boss!:!!
    merci.simple et efficace a la fois

Discussions similaires

  1. VBA Colorer la plus grande valeur d'une liste
    Par Toad08 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/03/2008, 17h23
  2. isoler les 2 plus grandes valeurs d'une liste
    Par marlene.ln dans le forum Access
    Réponses: 3
    Dernier message: 29/01/2007, 10h22
  3. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 17h39
  4. [VBA-Excel] affecter la valeur infinie à une variable
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/09/2006, 21h37
  5. VBA-Excel copier la valeur d'une textbox dans une cellule
    Par GrandGarfield dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/08/2006, 10h15

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