Microsoft 365 utiliser une ListView

Electron24

XLDnaute Occasionnel
Bonjour le Forum,

Je reviens vers vous (J'aurais pu utiliser le Fil précédent) dans un nouveau post pour avoir un renseignement sur le remplacement d'un txtBox (Txt_Participants) par une ListView. Ce qui me permettrait d'avoir une meilleur lisibilité dans le formulaire (Alignement des données.
J'ai essayé plusieurs possibilités mais sans succès. Je galère comme un "ouf"
Je serai ravi d'avoir de l'aide.
Merci d'avance
 

Pièces jointes

  • Classeur1 (26).xlsm
    96.8 KB · Affichages: 97
Solution
Bonjour Guy
Bonjour le Fil ,le Forum
Tu as effectivement modifié pas mal de Chose Lol
j'ai bien sûr un message d'erreur (chemin des Images) au lancement (normal c'est ton chemin d'accès ).
Ensuite erreur sur Frm_Image que je n'ai pas trouvé Lol
Arfffffff Frm_Image c'est le Userform excuses ! (j'aurais mis Usf_Image Lol)
il te faut aussi faire quelques réglages (largeurs Colonnes ListViews)
Peu de gens vont pouvoir tester ton Fichier.
mais si c'est ok pour toi !
mets le Post en Résolu !
Bonne journée
jean marie

Electron24

XLDnaute Occasionnel
Bonjour ChTi160, Bonjour le Forum

La version colorée me convient parfaitement. Tout est correct (Bouton à bascule, affichage couleur présentation sont impeccable). C'est exactement l'idée que je voulais transmettre. (Etant belge, j'ai du mal m'exprimer auparavant. D'ou la confusion. Désolé) J'incorpore tout cela dans mon classeur.
Bonne Journée
Guy
 

Electron24

XLDnaute Occasionnel
Re,
Oui j'y suis dessus maintenant. Mais j'ai un souci car le premier de la liste n'est pas toujours dans la même ligne du fait que le nombre d'étapes est différent d'une année à l'autre.
J'ai donc récupérer ton travail et l'ai mis dans mon classeur. Par contre dans le formulaire, le code de la macro Private Sub CmbB_Dates_Change
VB:
 With .CmbB_Dates
 YearSelect = CDate(.List(.ListIndex, 0))
      Me.Txt_Début.Text = .List(.ListIndex, 1)  '  Application.Proper(Format(CDate(.List(.ListIndex, 1)), "dddd dd mmmm yyyy"))      ' .List(.ListIndex, 1)
        Me.Txt_Fin.Text = .List(.ListIndex, 2)  '  Application.Proper(Format(CDate(.List(.ListIndex, 2)), "dddd dd mmmm yyyy"))
Me met en erreur donc voici ce que j'ai modifié car je ne vois pas ou est le souci.
Ah, il y a aussi que le maillot du combattant qui s'affiche, les autre ne s'affichent pas je regarderai plus tard.
Merci encore à toi
 

ChTi160

XLDnaute Barbatruc
Bonjour Guy
Bonjour le Fil ,le Forum
quelques remarques!

Tu mets :

VB:
Private Sub CmbB_Dates_Change()
Txt_An = CmbB_Dates
Lab_An.Caption = "Le PARCOURS de " & Txt_An
Frm_Image.Caption = "Résumé du Tour de France de " & Txt_An
With Me ‘Ici
.Btn_Bascule.TripleState = False
.Btn_Bascule = False
With .CmbB_Dates
Me et le Userform Frm_Image

Pourquoi mettre ?

VB:
Txt_An = CmbB_Dates
Lab_An.Caption = "Le PARCOURS de " & Txt_An
Frm_Image.Caption = "Résumé du Tour de France de " & Txt_An
Cela concerne des Controls de Frm_Image

Tu peux donc mettre

VB:
Private Sub CmbB_Dates_Change()
With Me ‘Ici
    .Caption = "Résumé du Tour de France de " & .Txt_An
    .Txt_An = .CmbB_Dates
    . Lab_An.Caption = "Le PARCOURS de " & .Txt_An
    .Btn_Bascule.TripleState = False
    .Btn_Bascule = False
With .CmbB_Dates

Peux tu m’expliquer pourquoi tu mets :

C = Target.Column - 1 ' sinon récupération du N° colonne ( -1 car données en C-1 )
Puis :
Re C = Target.Column – 1
Pour faire l’inverse , C + 1 a chaque lignes
VB:
With Frm_Image
     .Txt_An = Target
C = Target.Column - 1 ' collage année ‘Pourquoi Ici
    .Txt_Jaune = Cells(29, C + 1) ‘Ici ' Collage des maillots
    .Txt_Pois = Cells(30, C + 1) ‘Idem
    .Txt_Vert = Cells(31, C + 1) ‘Idem
    .Txt_Blanc = Cells(32, C + 1)’Idem
    .Txt_Rouge = Cells(33, C + 1) ‘Idem
    .Height = 550  
    .Caption = "Résumé du Tour de France de " & Target
    .Show ' on visualise l'userform
End With
Ceux ci devrait suffire:
VB:
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Ok_Change = False
indx = 0
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("1:1")) Is Nothing Then
If Target = "" Then Exit Sub ' si cellule vide on sort
C = Target.Column ' sinon récupération du N° colonne ( -1 car données en C-1 )
YearSelect = Target.Value
With Frm_Image
      .Txt_An = Target
      .Txt_Jaune = Cells(29, C) ' Collage des maillots
      .Txt_Pois = Cells(30, C)
      .Txt_Vert = Cells(31, C)
      .Txt_Blanc = Cells(32, C)
      .Txt_Rouge = Cells(33, C)
      .Height = 550
      .Caption = "Résumé du Tour de France de " & Target
      .Show ' on visualise l'userform
End With
End If
End Sub
Tu dis :
Ah, il y a aussi que le maillot du combattant qui s'affiche, les autre ne s'affichent pas je regarderai plus
Normal Lol
Les Controls Images qui au départ étaient Numérotés de 2 à 6 (les miens)
Sont maintenant Numérotés 12,13,14,6
Mais bon !

J’ai donc supprimé les Controls 12,13,14,6
Et renommé ton Control Image 11 en Image 6
Il faudra aussi que tu regardes a la Largeur des Colonnes de la LstB_Etapes et ListView
Bon tu regardes et me tiens au Courant!
je n'ai pas encore regardé aux participants.
Tu n'as toujours pas mis les maillots dans la feuille "Résumé" Lol
De plus lors du changement d'Année (via ComboBox) les Maillots ne se mettent pas a jours.
Bonne journée
Jean marie
 
Dernière édition:

Electron24

XLDnaute Occasionnel
Bonjour ChTi160 Bonjour le Forum,

Eh bien je constate que j'ai encore beaucoup de progrès à faire, moi qui était content de mon travail.:oops:
Bon je mis remets. Pour les maillots j'ai trouvé. Lorsque j'ai recopié tes maillots leur noms à changé sur mon formulaire. J'ai donc rectifié. Je regarde pour la suite.
Pour certains codes, j' ai utilisé ceux que je connais comme dans "Private Sub CmbB_Dates_Change()"
car je l'ai signalé au début je n'ai pas assez de connaissances en VBA
VB:
Private Sub CmbB_Dates_Change()
With Me ‘Ici
    .Caption = "Résumé du Tour de France de " & .Txt_An
    .Txt_An = .CmbB_Dates
    . Lab_An.Caption = "Le PARCOURS de " & .Txt_An
    .Btn_Bascule.TripleState = False
    .Btn_Bascule = False
With .CmbB_Dates
Me met With Me en rouge donc erreur.
Code:
C = Target.Column - 1 ' sinon récupération du N° colonne ( -1 car données en C-1 )
puis l'inverse cela est du lors de la recopie j'ai pas effacé certaines anciennes ligne de mon code.

Bonne journée.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
je n'ai pas critiqué ton travail ( c'est très bien ! )lol
Juste fait les remarques pour te faire avancer (comme tu le veux )
je ne comprends pas ceci
Me met With Me en rouge donc erreur.
voià ce qu'est la procédure modifiée et qui chez moi n'occasionne pas d'erreur !
VB:
Private Sub CmbB_Dates_Change()    
With Frm_Image
    .Caption = "Résumé du Tour de France de " & .Txt_An
    .Txt_An = .CmbB_Dates
    .Lab_An.Caption = "Le PARCOURS de " & .Txt_An
    .Btn_Bascule.TripleState = False
    .Btn_Bascule = False
    With .CmbB_Dates
               YearSelect = CDate(.List(.ListIndex, 0))
        Me.Txt_Début.Text = .List(.ListIndex, 1)  '  Application.Proper(Format(CDate(.List(.ListIndex, 1)), "dddd dd mmmm yyyy"))      ' .List(.ListIndex, 1)
          Me.Txt_Fin.Text = .List(.ListIndex, 2)  '  Application.Proper(Format(CDate(.List(.ListIndex, 2)), "dddd dd mmmm yyyy"))
        Me.Txt_Nb_Etapes.Text = .List(.ListIndex, 3)
        Me.Txt_Coureurs.Text = .List(.ListIndex, 4)
        Me.Txt_Reste.Text = .List(.ListIndex, 5)
        Me.Txt_Distance.Text = .List(.ListIndex, 6)
        Me.Txt_Moyenne.Text = .List(.ListIndex, 7)
    End With    
 With .LstB_Etapes '314
      .ColumnCount = 5
      .ColumnWidths = "0;65;235;0;0"
      .Clear
For Col = 1 To UBound(Tab_Etapes, 2)
  If Tab_Etapes(1, Col) = YearSelect Then
  YearSelect = Tab_Etapes(1, Col)
     .AddItem YearSelect                                'Année
     .List(.ListCount - 1, 1) = Tab_Etapes(2, Col)      'N° Etape
     .List(.ListCount - 1, 2) = Tab_Etapes(3, Col)      'Parcours
                    ColSource = Tab_Etapes(4, Col)
     .List(.ListCount - 1, 3) = ColSource               'Colonne Source
     .List(.ListCount - 1, 4) = Tab_Etapes(5, Col)      'Ligne
  End If
Next
End With 
'**********************
  Recup_General YearSelect, ColSource
'********************** 
End With
    Copie_Image 
End Sub
Peux tu m'expliquer les circonstances Lol
Merci
jean marie
 

Electron24

XLDnaute Occasionnel
Re
J'ai mis ton code dans mon formulaire et il fonctionne parfaitement.
Je pense que l'erreur venait du fait que j'avais conservé une partie de mon code.
En y mettant que ton code entier cela fonctionne.
Par contre, pour les maillots si je met une ListView ou ListBox j'ai un souci d'alignement avec les images donc je pense (vu mes lacunes) laisser les textBox
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 191
Membres
103 152
dernier inscrit
Karibu