Alimenter ListView avec format des cellules lues

ludo27

XLDnaute Junior
Bonjour,
j'alimente un ListView à partir d'un range de cellules.

Je voudrais que le format des valeurs dans le ListView soit le même que celui des cellules lues.


Pour ajouter une colonne au ListView j'utilise :

Code:
lv.ListItems(lLi).ListSubItems.Add , , rgData.Cells(lLi, lCol).Value
qui marche très bien pour copier les valeurs.

je sais qu'il existe la fonction Format pour mettre un format dans le ListView par contre je ne sais pas récupérer le format de la cellule à copier.

Je voudrais utiliser une syntaxe comme :

Code:
lv.ListItems(lLi).ListSubItems.Add , , Format(rgData.Cells(lLi, lCol).Value, [I][COLOR="Blue"]Format de rgData.Cells(lLi, lCol)[/COLOR][/I])

Si quelqu'un a une idée pour récupérer la valeur du truc en bleu .... ;)
 

ludo27

XLDnaute Junior
Re : Alimenter ListView avec format des cellules lues

Merci PierreJean,
j'ai un message
Dépassement de capacité
sur la 25ème colonne; il s'agit d'un nombre à 7 chiffres.

En fait NumberFormat me renvoie "General" quelque soit le type lu.
NumberFormatLocal renvoie "Standard" quelque soit le type lu.


Sinon j'avais essayé d'utiliser TypeName pour appliquer un format "à la main" en fonction de "String, Double, Integer" mais la fonction renvoie Double pour des double ou pour des Integer.

Code:
lv.ListItems(lLi).ListSubItems.Add , , Format(rgData.Cells(lLi, lCol).Value, IIf(TypeName(rgData.Cells(lLi, lCol).Value) = "Double", "##,##0.00", ""))
 
Dernière édition:

ludo27

XLDnaute Junior
Re : Alimenter ListView avec format des cellules lues

J'ai attaché un fichier.

La fonction Test dans ThisWorkbook alimente le ListView dans shtReservation à partir du range dans shtReference.

;)
 

Pièces jointes

  • TestFeedListView.zip
    23.4 KB · Affichages: 109

ludo27

XLDnaute Junior
Re : Alimenter ListView avec format des cellules lues

j'ai trouvé quelquechose de moche mais qui fait ce qu'il faut que je fasse ;) :

Je teste s'il sagit d'un nombre à virgules ou d'un nombre sans virgules ou d'autre chose :

Code:
vValue = rgData.Cells(lLi, lCol).Value
          'lv.ListItems(lLi).ListSubItems.Add , , rgData.Cells(lLi, lCol).Value
          If IsNumeric(vValue) Then
            If vValue <> Int(vValue) Then
                lv.ListItems(lLi).ListSubItems.Add , , Format(rgData.Cells(lLi, lCol).Value, "##,##0.00")
                Else: lv.ListItems(lLi).ListSubItems.Add , , Format(rgData.Cells(lLi, lCol).Value, "##,##0")
            End If
            Else: lv.ListItems(lLi).ListSubItems.Add , , rgData.Cells(lLi, lCol).Value
            End If
 

skoobi

XLDnaute Barbatruc
Re : Alimenter ListView avec format des cellules lues

Bonsoir le fil,

je pense que tu n'as pas besoin de vérifié si la cellule est un nombre, en complément de Bebere:

Code:
      For lLi = 1 To nbLi
        'Remplissage des colonnes 1 à nbCol dans la lLième ligne
        For lCol = 1 To nbCol
          lv.ListItems(lLi).ListSubItems.Add , , rgData.Cells(lLi, lCol).Text
        Next lCol
      Next lLi
 

ludo27

XLDnaute Junior
Re : Alimenter ListView avec format des cellules lues

Merci beaucoup pour vos réponses.

En effet ça marche très bien avec
Code:
rgData.Cells(lLi, lCol).Text
au lieu de
Code:
rgData.Cells(lLi, lCol).Value

Pourquoi n'y ai-je pas pensé ?

Bravo ;)
 

Lahouari31

XLDnaute Nouveau
Re : Alimenter ListView avec format des cellules lues

Bonsoir le fil,

je pense que tu n'as pas besoin de vérifié si la cellule est un nombre, en complément de Bebere:

Code:
      For lLi = 1 To nbLi
        'Remplissage des colonnes 1 à nbCol dans la lLième ligne
        For lCol = 1 To nbCol
          lv.ListItems(lLi).ListSubItems.Add , , rgData.Cells(lLi, lCol).Text
        Next lCol
      Next lLi
salut

est ce que rgData est declarer range!
 

Discussions similaires

Statistiques des forums

Discussions
312 388
Messages
2 087 879
Membres
103 672
dernier inscrit
ammarhouichi