Microsoft 365 Virgules dans ListView

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Electron24

XLDnaute Occasionnel
bonsoir le Forum,

Dans la ListView j'ai 8 colonnes.
Je souhaiterai supprimer les virgules des colonnes 3 à 8 correspondants au numéro des boules tirées de l'EuroMillion

Actuellement elles affichent par exemple 12,987 - 8,002 etc (Voir fichier joint)

J'ai mis le code ci dessous
Dans les cellules j'ai le format nombre mais sans virgules chiffres entiers.

comment puis je procéder.



VB:
With ListView1
' En-tête
    With .ColumnHeaders
       .Clear
            .Add , , "Année", 40
            .Add , , "Total Tirage", 55
            .Add , , "Boule 1", 45
            .Add , , "Boule 2", 45
            .Add , , "Boule 3", 45
            .Add , , "Boule 4", 45
            .Add , , "Boule 5", 45
'            .Add , , "Boule 6", 40
    End With

    .View = lvwReport
    .FullRowSelect = True
    .Gridlines = True
    .Sorted = False
    .LabelEdit = lvwManual
    .ForeColor = RGB(100, 0, 100)
  
'  Chargement des données
        
        For i = 7 To Sheets("Résumé").Range("B1500").End(xlUp).Row
           .ListItems.Add , "Q" & i, Sheets("Résumé").Cells(i, 2)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 3)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 4)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 5)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 6)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 7)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 8)
'           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Résumé").Cells(i, 9)
                    
                If Sheets("Résumé").Cells(i, 7) > 0 Then
               .ListItems(.ListItems.Count).ListSubItems(1).ForeColor = &HFF    ' '&HFF0000
             Else
               .ListItems(.ListItems.Count).ListSubItems(1).ForeColor = &HFF000
             End If
          
            Next i
                
            .ListItems(1).Selected = False
End With
 

Pièces jointes

  • EuroMillion.jpg
    EuroMillion.jpg
    247.2 KB · Affichages: 24
Solution
Bonsoir,
Dans une ListView, les données sont stockées sous forme de texte. Si la valeur de la cellule à y placer est un entier, pas de problème.
Comme le dit TooFatBoy, je ne voit pas comment les n° de boules se retrouvent avec des décimales. Peut-être une erreur dans la sélection des colonnes, ou alors ce sont des statistiques ; ce qui n'est pas la même chose.

Si la cellule i,2 contient la valeur 41 (au format nombre sans décimale) alors la chaîne "41" sera affectée à la ListView

Si l'on doit formater la donnée, il faut utiliser les fonctions Round, Int et/ou Format au moment de l'affectation.

Exemple avec format
.ListItems.Add , "Q" & i, Format(Sheets("Résumé").Cells(i, 2),"##")

Bonne soirée
Bonjour,

Je souhaiterai supprimer les virgules des colonnes 3 à 8 correspondants au numéro des boules tirées de l'EuroMillion
Je ne sais pas comment tu arrives à te retrouver avec des numéros de boules non entiers... mais si j'en crois la capture d'écran, ce que tu veux visiblement faire ce n'est pas "enlever la virgule", mais plutôt arrondir la valeur. 😉
 
Bonsoir,
Dans une ListView, les données sont stockées sous forme de texte. Si la valeur de la cellule à y placer est un entier, pas de problème.
Comme le dit TooFatBoy, je ne voit pas comment les n° de boules se retrouvent avec des décimales. Peut-être une erreur dans la sélection des colonnes, ou alors ce sont des statistiques ; ce qui n'est pas la même chose.

Si la cellule i,2 contient la valeur 41 (au format nombre sans décimale) alors la chaîne "41" sera affectée à la ListView

Si l'on doit formater la donnée, il faut utiliser les fonctions Round, Int et/ou Format au moment de l'affectation.

Exemple avec format
.ListItems.Add , "Q" & i, Format(Sheets("Résumé").Cells(i, 2),"##")

Bonne soirée
 
Bonsoir TooFatBoy et Eric_49
Merci pour votre retour,
Les boules de l'Euromillion vont de 1 à 50 donc des nombres entier comme vous le savez. ;-)
Donc les nombres dans la Listview devrait être des entiers, mais certains ont des décimales
J'ai dans mes cellules mis au format Standard et cela ne change rien
pareil pour la formule de Eric
Par contre j'ai mis mes cellules au format texte et cela fonctionne parfaitement.
Super merci à vous deux et bonne soirée
 
Bonjour à tous,
Dans les cellules j'ai le format nombre mais sans virgules chiffres entiers.
Les cellules des colonnes B à I sont formatées avec 0 décimales mais elles contiennent probablement des nombres décimaux.

Pour les transformer en nombres entiers exécutez simplement cette macro :
VB:
Sub Epure()
Dim c As Range
For Each c In Sheets("Résumé").[B7:I1500]
    If IsNumeric(CStr(c)) Then c = Round(c)
Next
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
377
Réponses
4
Affichages
1 K
Retour