Format en % dans une listbox

Bonsoir Sebastioen merci pour le contact j'ai crée un userform de recherche de plusieurs colonnes et j'aimerais avoir par exemple 10% et non 0.10

je ne suis pas doué je sollicte votre aide voici les codes de mon userform: Merci de m'aider

Dim f, choix(), rng, BD(), Ncol, ColVisu()

Private Sub CommandButton1_Click()
 Unload UserForm2
 Sheets("Accueil").Visible = xlSheetVisible
    Sheets("Accueil").Select
End Sub
Private Sub UserForm_Initialize()
   Set f = Sheets("Base_Donnees")
   ColVisu = Array(2, 3, 8, 12, 16, 17, 18, 19) ' colonnes à visualiser

   Set rng = f.Range("A2:U" & f.[a65000].End(xlUp).Row)
   BD = rng.Value
   Ncol = UBound(ColVisu) + 1
   '-- en têtes de colonne ListBox
   x = 18
   Y = Me.ListBox1.Top - 12
   For Each k In ColVisu
     Set Lab = Me.Controls.Add("Forms.Label.1")
     Lab.Caption = f.Cells(1, k)
     Lab.Top = Y
     Lab.Left = x
     x = x + f.Columns(k).Width * 0.9
     temp = temp & f.Columns(k).Width * 0.9 & ";"
   Next
   temp = Left(temp, Len(temp) - 1)
   Me.ListBox1.ColumnCount = UBound(ColVisu) + 1
   Me.ListBox1.ColumnWidths = temp
   '--
   TblTmp = rng.Value
   For i = LBound(BD) To UBound(BD)
     ReDim Preserve choix(1 To i)
     For Each k In ColVisu
       choix(i) = choix(i) & BD(i, k) & " * "

     Next k
   Next i
   '--- valeurs initiales dans ListBox
   Dim Tbl(): ReDim Tbl(1 To UBound(BD), 1 To Ncol)

   For i = 1 To UBound(BD)
      c = 0
      For Each k In ColVisu
        c = c + 1: Tbl(i, c) = BD(i, k)
      Next k
   Next i
   'TriMultiCol Tbl, LBound(Tbl), UBound(Tbl), 1
   Me.ListBox1.List = Tbl
   Me.Label1.Caption = Me.ListBox1.ListCount & " Ligne(s)"
End Sub
Private Sub TextBox1_Change()
  If Me.TextBox1 <> "" Then
     mots = Split(Trim(Me.TextBox1), " ")
     Tbl = choix
     For i = LBound(mots) To UBound(mots)
        Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
     Next i
     If UBound(Tbl) > -1 Then
        Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To Ncol)
        For i = LBound(Tbl) To UBound(Tbl)
          a = Split(Tbl(i), "*")
          For k = 1 To Ncol: b(i + 1, k) = a(k - 1): Next k
        Next i
        Me.ListBox1.List = b
        Me.Label1.Caption = UBound(Tbl) + 1 & " Ligne(s)"
     End If
  Else
     UserForm_Initialize
  End If
End Sub

Bonsoir Damis,

Il serait plus facile de t’aider si tu partageais ton fichier plutôt que le seul code du formulaire…

Certes Valky68 mais c'est juste à cette partie je ne sais comment faire le format % aux colonnes 8, 12, 16, 17 et 19 ou bien il faille obligatoirement le fichier merci de me guider

Damis, c’est beaucoup plus rapide pour nous de t’aider sur une base concrète avec un fichier déjà fait ! Sinon, il faut imaginer la façon dont tes données sont enregistrées dans une feuille Excel sans en être vraiment sûrs… Bref :

6essai-damis.xlsm (22.29 Ko)

Bonjour Valky68 excusé du retard je tentais d'abord de revoir le fichier car c'était lourd à joindre Merci de m'aider

Bonjour Damis, voici ce que j’ai changé dans ta macro :

image

C’est l’utilisation de la fonction « format » qui permet d’afficher les valeurs sous forme de pourcentages. En revanche, ce format s’applique à toutes les colonnes, alors attention s’il y a d’autres formats à appliquer sur d’autres colonnes !

Vous êtes adorable , super même sans abuser de votre temps et si je veux juste appliquer le format aux colonnes: (8, 12, 16, 17, 18) comment m'y prendre? Merci

Toutes mes excuses c'est exactement comme ça je n'avais pas bien visionné MERCIIIII

Damis,

Si tu avais voulu le faire quand-même, tu aurais pu écrire :

   For i = 1 To UBound(BD)
      c = 0
      For Each k In ColVisu
        c = c + 1
        If IsInArray(k, Array(2, 3, 8, 12, 16)) Then
            Tbl(i, c) = Format(BD(i, k), "0%;0%;-")
        Else
            Tbl(i, c) = BD(i, k)
        End If
        Next k
   Next i

avec la fonction :

Function IsInArray(valueToBeFound As Variant, myArray As Variant) As Boolean
    IsInArray = Not IsError(Application.Match(valueToBeFound, myArray, 0))
End Function

Vraiment merci de nous soutenir à tantôt car j'adore vba excel meme si c'est copliqué

Rechercher des sujets similaires à "format listbox"