Affichage format téléphone dans Listview

excelman

XLDnaute Occasionnel
Bonjour Forum,

Je voudrais vous soumettre une probleme esthétique d'une Listview.

Lorsqu'elle s'affiche il n'y a pas le 0 devant le numéro de téléphone de la colonne téléphone. Pourriez vous me dire s'il est possible de l'afficher comme dans la liste d'origine et si oui comment faire.

Cdt

Merci
 

excelman

XLDnaute Occasionnel
Re : Affichage format téléphone dans Listview

RE

Ok JM, voici le code de ma listview

Private Sub UserForm_Initialize()
With listeclient.ColumnHeaders
.Add , , "NOM", 70
.Add , , "PRENOM", 70
.Add , , "ADRESSE", 120
.Add , , "COMPLEMENT", 120
.Add , , "CP", 40
.Add , , "VILLE", 100
.Add , , "TELEPHONE", 70
End With
End Sub
---------------------------------------------
Sub IniLvw(a As Long)
With listeclient
.ListItems.Add , , Sheets("2").Cells(a, 1)
x = .ListItems.Count
For i = 1 To 9
.ListItems(x).ListSubItems.Add , , Sheets("2").Cells(a, i + 1)
Next
For i = 1 To .ListItems.Count
If .ListItems(i) = choixclient Then .ListItems(i).Bold = True
For j = 1 To listeclient.ColumnHeaders.Count - 1
If listeclient.ListItems(i).ListSubItems(j).Text = choixclient Then
listeclient.ListItems(i).ListSubItems(j).Bold = True
End If
Next j
Next i
End With
---------------------------------------------
End Sub
Private Sub Liste()
listeclient.ListItems.Clear
nom1 = "": nom2 = "": nom3 = "":
If choixclient = "" Then Exit Sub
With Sheets("2")
i = 2
Do
Set c = .Range(.Cells(i, 1), .Cells(i, 3)).Find(choixclient, LookIn:=xlValues)
If Not c Is Nothing Then
flag = True
IniLvw c.Row
End If
i = i + 1
Loop While .Cells(i, 1) <> ""
End With
If Not flag Then MsgBox "Rien trouvé !"
flag = False
End Sub
'remplissage de la ligne
Private Sub listeclient_Click()
With listeclient
nom1 = .SelectedItem
For j = 1 To listeclient.ColumnHeaders.Count - 1
Controls("nom" & j + 1) = .ListItems(.SelectedItem.Index).ListSubItems(j).Text
Next
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Affichage format téléphone dans Listview

Bonsoir et bonne nuit


Voici une solution basique

Code:
Private Sub UserForm_Initialize()
  With listeclient.ColumnHeaders
    .Add , , "NOM", 70
    .Add , , "PRENOM", 70
    .Add , , "ADRESSE", 120
    .Add , , "COMPLEMENT", 120
    .Add , , "CP", 40
    .Add , , "VILLE", 100
    .Add , , "TELEPHONE", 80
  End With
End Sub
VB:
Sub IniLvw(a As Long)
  With listeclient
    .ListItems.Add , , Sheets("2").Cells(a, 1)
    x = .ListItems.Count
    For i = 1 To 9
      .ListItems(x).ListSubItems.Add , , Sheets("2").Cells(a, i + 1)
    Next
    For i = 1 To .ListItems.Count
      If .ListItems(i) = choixclient Then .ListItems(i).Bold = True
      For j = 1 To listeclient.ColumnHeaders.Count - 1
        If listeclient.ListItems(i).ListSubItems(j).Text = choixclient Then
        listeclient.ListItems(i).ListSubItems(j).Bold = True
        End If
        Select Case j
        Case 6
        listeclient.ListItems(i).ListSubItems(j).Text = Format(listeclient.ListItems(i).ListSubItems(j).Text, "0#"" ""##"" ""##"" ""##"" ""##")
        End Select
      Next j
    Next i
  End With
End Sub
 
Dernière édition:

Teatom

XLDnaute Nouveau
Re : Affichage format téléphone dans Listview

Bonjour à tous,

Je viens vous voir, croyez bien que j'ai cherché mais sans résultat jusqu'à présent.

Je traite le même problème qu'excelman, la différence étant que j'affiche plus de colonne dans ma ListView; cependant je n'obtiens pas le format téléphone dans les colonnes prévues à cet effet.

Je vous joins ma procédure d'initialisation de ListView en pièce jointe. Le problème vient des 4 lignes que j'ai passé en commentaire sur la feuille et pour lequel il me renvoie une erreur du type 35600 : 'Index hors limites'.

Je vous remercie par avance pour toute l'aide que vous pourrez m'apporter.

Teatom
 
Dernière édition:

Teatom

XLDnaute Nouveau
Re : Affichage format téléphone dans Listview

Bonsoir JM, le forum

Voici le fichier, le mode pas à pas déclenche l'erreur pour j = 10. Je ne sais pas si tu as une solution pour contourner le problème.

Merci pour ton aide,

Bonne soirée
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Affichage format téléphone dans Listview

Bonjour


Je te laisse réfléchir au pourquoi du comment en notant le 8
Code:
With UFaffichclient.LVclient
For i = 2 To 6 'bClient
    
    .ListItems.Add , , ws1.Cells(i, 1)
        For j = 2 To 10
            .ListItems(.ListItems.Count).ListSubItems.Add , , ws1.Cells(i, j)
           'Select Case j
           'Case 10
        
            'End Select
        Next j
   
Next i
.ListItems(1).ListSubItems(8).Text = Format(.ListItems(1).ListSubItems(8).Text, "0#"" ""##"" ""##"" ""##"" ""##")
End With
 

Teatom

XLDnaute Nouveau
Re : Affichage format téléphone dans Listview

Bonjour JM,

Il s'agit d'un bug apparement, Excel se met en défaut dès que je tente de modifier le format de la colonne 10. Cela m'oblige juste à modifier la disposition de mes colonnes ou à taper ce code (en résumé, faire de la cuisine qui me permette de contourner le problème) :

For j = 2 To 11
If j = 9 Or j = 10 Or j = 11 Then
If ws1.Cells(i, j) <> "" Then
.ListItems(.ListItems.Count).ListSubItems.Add , , "0" & ws1.Cells(i, j)
End If
Else
.ListItems(.ListItems.Count).ListSubItems.Add , , ws1.Cells(i, j)
End If

Ceci dit, cela fonctionne je n'ai pas testé voir si la méthode Rowsource me cause le même souci.

Bonne journée
 

kjin

XLDnaute Barbatruc
Re : Affichage format téléphone dans Listview

Bonjour, Signor Staple:),
Code:
For i = 2 To nbClient
    With UFaffichclient.LVclient
        .ListItems.Add , , ws1.Cells(i, 1)
        For j = 2 To 8
            .ListItems(.ListItems.Count).ListSubItems.Add , , ws1.Cells(i, j)
        Next j
        For j = 9 To 11
            .ListItems(.ListItems.Count).ListSubItems.Add , , _
            Format(ws1.Cells(i, j), "0# ## ## ## ##")
        Next j
    End With
Next i
A+
kjin
 

Discussions similaires

Réponses
19
Affichages
1 K
Réponses
1
Affichages
245

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom