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 :

Listbox : de la valeur la plus petite à la plus élevée


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Listbox : de la valeur la plus petite à la plus élevée
    Bonjour

    Je voudrais faire un code sous vba permettant de trouver la valeur la plus faible jusqu'à la plus élevée et les mettre dans une listbox.

    Voici le début de mon programme, il ne me renvoye qu'une valeur et non plusieurs et j'aimerai trouvé l'addresse de cette cellule?

    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
    27
    28
    29
    30
    31
    32
    33
    Dim myrange As Range
    Dim myrange2 As Range
    Dim myrange3 As Range
    Dim myrange4 As Range
    Dim myrange5 As Range
    Dim myrange6 As Range
    Dim startX As Variant
    Dim L As Integer
    Dim m As String
     
    Private Sub ok_Click()
    Set myrange = Worksheets("essai").Columns("N:N")
    Set myrange2 = Worksheets("essai").Columns("S:S")
    Set myrange3 = Worksheets("essai").Columns("X:X")
    Set myrange4 = Worksheets("essai").Columns("AC:AC")
    Set myrange5 = Worksheets("essai").Columns("AH:AH")
    Set myrange6 = Worksheets("essai").Columns("AM:AM")
    startX = Application.WorksheetFunction.Min(myrange, myrange2, myrange3, myrange4, myrange5, myrange6)
    MsgBox startX
     
    X = starX.address
     
    Listbox1.clear
    Me.ListBox1.AddItem
    Me.ListBox1.List(cpt, 0) = Worksheets(1).Cells(x, 3).Value
    Me.ListBox1.List(cpt, 1) = Worksheets(1).Cells(x, 4).Value
    Me.ListBox1.List(cpt, 2) = Worksheets(1).Cells(x, 5).Value
    Me.ListBox1.List(cpt, 3) = Worksheets(1).Cells(x, 6).Value
    Me.ListBox1.List(cpt, 4) = Worksheets(1).Cells(x, 7).Value
    Me.ListBox1.List(cpt, 5) = Worksheets(1).Cells(x, starX).Value
     
    cpt = cpt + 1
    End Sub
    Cependant cette fonction ne marche pas
    Merci de votre aide

  2. #2
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    Bonjour xtecpasteque,

    Ton projet est ambitieux si tu commences à coder
    Ambitieux mais faisable.

    Il faut prendre les problèmes dans l'ordre :
    rechercher/déterminer la plus petite valeur
    puis la repérer
    puis la sortir de la plage de recherche
    puis relancer la recherche
    ...
    puis balancer les infos dans la listbox + association à un clic sur un bouton.

    Bref, il te faut de l'ordre et de la synthèse.
    Plus tu auras de paramètres à gérer, plus dur ça sera de comprendre le fonctionnement et de retrouver les erreurs.

    Je t'ai réécrit le début de ton code (détermine la plus petite valeur et la localise) :

    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
    Sub test()
     
    Dim myrange As Range
    Dim startX As Variant
     
    ' recherche la valeur la plus petite
    With Worksheets("essai")
        Set myrange = Union(.Columns("N:N"), .Columns("S:S"), .Columns("X:X"), .Columns("AC:AC"), .Columns("AH:AH"), .Columns("AM:AM"))
        startX = Application.WorksheetFunction.Min(myrange)
    End With
     
    ' localise la valeur la plus petite et renvoie un message
    For Each Cell In myrange.Cells
        If Cell.Value = startX Then
            MsgBox "La plus petite valeur est " & startX & " ligne n°" & Cell.Row & " et colonne n°" & Cell.Column
            Exit For
        End If
    Next
     
    End Sub
    Essaies ce code et pose des questions si nécessaire.

    Bertrand

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    bonjour Bertrand

    Merci pour ton code, sa ma bien débloqué

    J'arrive donc à afficher la première ligne sur ma listebox, je voudrais savoir quel est le code pour sortir la première valeur de startX afin de prendre la 2eme valeur la plus petite!

Discussions similaires

  1. plus grand ou plus petit
    Par jer35 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/10/2009, 21h48
  2. Classer du plus grand au plus petit
    Par jacfld49 dans le forum Excel
    Réponses: 5
    Dernier message: 06/12/2008, 11h38
  3. plus grand ou plus petit
    Par koKoTis dans le forum VBScript
    Réponses: 15
    Dernier message: 03/04/2008, 11h05
  4. Recuperer le plus grand, le plus petit et la moyenne !
    Par ksper92 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/04/2007, 16h24

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