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 :

Définir le nombre de decimale dans les colonnes d'une listebox


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Définir le nombre de decimale dans les colonnes d'une listebox
    Bonjour à tous ,


    Je cherche à programmer un moteur de recherche sous la forme d'un userform excel et je n'arrive pas à définir le nombre de décimale des données qui apparaîtrons dans les différentes colonnes de ma listebox.

    Mon code est le suivant :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    Private Sub TextBox1_Change()
    Sheets("Base De Données").Select
    Range("C:C").NumberFormat = "0.00"
     
    Dim Plage As Range, cell As Range
    Dim Recherche As String, Adresse As String
    Dim Ligne As Integer, n As Integer
    Dim C As Range
    ListBox1.Clear
    n = 0
    Recherche = TextBox1.Value
    Range("a2").Select
    Ligne = Sheets("Base De Données").Range("a" & "6556").End(xlUp).Row
    Set Plage = Sheets("Base De Données").Range("a" & "1:" & "a" & Ligne)
    With Plage
    Set C = .Find(Recherche, , xlValues)
    If Not C Is Nothing Then
    Adresse = C.Address
     
    Me.ListBox1.ColumnCount = 18
    Do
        If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
            ListBox1.AddItem C.Offset(0, 0), n
            ListBox1.List(n, 0) = C
             ListBox1.List(n, 1) = C.Offset(0, 1)
              ListBox1.List(n, 2) = C.Offset(0, 2)
               ListBox1.List(n, 3) = C.Offset(0, 3)
                ListBox1.List(n, 4) = C.Offset(0, 4)
                 ListBox1.List(n, 5) = C.Offset(0, 5)
                 ListBox1.List(n, 6) = C.Offset(0, 6)
                 ListBox1.List(n, 7) = C.Offset(0, 7)
                  ListBox1.List(n, 8) = C.Offset(0, 8)
                  ListBox1.List(n, 9) = C.Offset(0, 9)
     
     
     
                    n = n + 1
        End If
        Set C = .FindNext(C)
        Loop While Not C Is Nothing And C.Address <> Adresse
        End If
     
     
    End With
     
     
    End Sub

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Avec Round :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.List(n, 1) = Round(C.Offset(0, 1), 2)
    Hervé.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Top ! merci pour ta réponse rapide et efficace
    par contre j'ai un autre problème j'arrive pas à ajouté plus de 10 colonne sur ma listbox ( je suis sur excel 2003 )

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Tu as atteint le maximum !

    Hervé.

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour souley


    Citation Envoyé par souley90 Voir le message

    Set C = .Find(Recherche, , xlValues)
    La recherche de valeurs numériques par FIND et XlValues n'est pas facile à utiliser efficacement.

    Si les valeurs du champ de recherche ne sont pas le résultat d'une formule, utilise FIND avec XlFormulas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set C = .Find(Recherche, , xlFormulas, xlWhole)
    en enlevant la comparaison
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
    Sinon mieux vaut utiliser une boucle FOR...NEXT
    Cordialement

    Docmarti.

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

Discussions similaires

  1. [XL-2003] Gestion des decimales dans les operations d'une macro
    Par Potzo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2010, 13h01
  2. [XL-2002] Trouver une valeur specifique dans les colonnes avec une Macro
    Par sergio_gr66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2009, 11h20
  3. Réponses: 2
    Dernier message: 20/10/2007, 02h24
  4. Alignement dans les colonnes d'une zône de liste
    Par AndréPe dans le forum IHM
    Réponses: 2
    Dernier message: 22/08/2007, 16h22
  5. Réponses: 1
    Dernier message: 29/08/2004, 19h45

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