Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplir une ListBox par Tableau

11 réponses
Avatar
Péhemme
Bonjour à Tous,

Dans un UserForm, après la validation du choix d'une journée, la macro
remplit une ListBox.
La présentation de cette ListBox fonctionne, à ce stade, parfaitement bien
pour toutes les journées SAUF la 1.
Je ne trouve pas pourquoi.

Merci d'avance à celui qui saura m'expliquer mon erreur.

Aux fins de tests vous trouverez un fichier :
https://cjoint.com/c/IFcl4dBrKKS

Michel

10 réponses

1 2
Avatar
MichD
Le 02/06/19 à 07:59, Péhemme a écrit :
Bonjour à Tous,
Dans un UserForm, après la validation du choix d'une journée, la macro
remplit une ListBox.
La présentation de cette ListBox fonctionne, à ce stade, parfaitement
bien pour toutes les journées SAUF la 1.
Je ne trouve pas pourquoi.
Merci d'avance à celui qui saura m'expliquer mon erreur.
Aux fins de tests vous trouverez un fichier :
https://cjoint.com/c/IFcl4dBrKKS
Michel

Bonjour,
Voir ton fichier, j'ai identifié la ligne de code que j'ai modifiée.
https://cjoint.com/c/IFcn6Kd7Ghj
MichD
Avatar
Péhemme
Bonjour Denis,
Merci de ton aide, mais je ne vois aucune différence dans la présentation de
la journée : 1.
La ListBox est toujours sur 2 lignes (nom de l'équipe, ligne du dessous :
classement).
Dans tous les autres cas (journées 2 à 38) la rédaction de la ListBox est
bien sur une seule ligne (classement, nom de l'équipe) : ce que je cherche à
obtenir également pour la journée 1.
Bonne fin de dimanche
Michel
"MichD" a écrit dans le message de groupe de discussion :
qd0kob$1une$
Le 02/06/19 à 07:59, Péhemme a écrit :
Bonjour à Tous,
Dans un UserForm, après la validation du choix d'une journée, la macro
remplit une ListBox.
La présentation de cette ListBox fonctionne, à ce stade, parfaitement bien
pour toutes les journées SAUF la 1.
Je ne trouve pas pourquoi.
Merci d'avance à celui qui saura m'expliquer mon erreur.
Aux fins de tests vous trouverez un fichier :
https://cjoint.com/c/IFcl4dBrKKS
Michel

Bonjour,
Voir ton fichier, j'ai identifié la ligne de code que j'ai modifiée.
https://cjoint.com/c/IFcn6Kd7Ghj
MichD
Avatar
MichD
Le 02/06/19 à 10:34, Péhemme a écrit :
Bonjour Denis,
Merci de ton aide, mais je ne vois aucune différence dans la
présentation de la journée : 1.
La ListBox est toujours sur 2 lignes (nom de l'équipe, ligne du dessous
: classement).
Dans tous les autres cas (journées 2 à 38) la rédaction de la ListBox
est bien sur une seule ligne (classement, nom de l'équipe) : ce que je
cherche à obtenir également pour la journée 1.

Bonjour,
Une image du contenu du listbox
https://cjoint.com/c/IFcqvLlLk3j
Les données du listbox sont sur 2 colonnes différentes
et représentent bien le contenu des 2 colonnes retenues.
Si tu veux autre chose, explique-moi.
Que doit contenir le listbox et quel doit être la présentation des
données dans le listbox
MichD
Avatar
Péhemme
"MichD" a écrit dans le message de groupe de discussion :
qd0tan$160f$
Le 02/06/19 à 10:34, Péhemme a écrit :
Bonjour Denis,
Merci de ton aide, mais je ne vois aucune différence dans la présentation
de la journée : 1.
La ListBox est toujours sur 2 lignes (nom de l'équipe, ligne du dessous :
classement).
Dans tous les autres cas (journées 2 à 38) la rédaction de la ListBox est
bien sur une seule ligne (classement, nom de l'équipe) : ce que je cherche
à obtenir également pour la journée 1.

Bonjour,
Une image du contenu du listbox
https://cjoint.com/c/IFcqvLlLk3j
Les données du listbox sont sur 2 colonnes différentes
et représentent bien le contenu des 2 colonnes retenues.
Si tu veux autre chose, explique-moi.
Que doit contenir le listbox et quel doit être la présentation des
données dans le listbox
MichD
Oui Denis, l'image que tu présentes concerne la journée 9 ; c'est
effectivement la présentation que je souhaite.
Cette présentation est correcte sauf pour la journée 1 qui malheureusement
se présente comme suit :
https://www.cjoint.com/c/IFcqKiDw58S
Merci encore de ton aide.
Michel
Avatar
MichD
Bonjour,
Désolé, mais ça me prend un certain temps pour comprendre, je ne sais
pas lire! ;-)
Tout semble OK.
https://cjoint.com/c/IFcrik0WzWj
Attention :
L'union de deux colonnes adjacentes ne forme qu'un "AREAS" contrairement
à deux colonnes non adjacentes constituant "AREAS". J'ai par conséquent
modifié légèrement la procédure.
MichD
Avatar
Péhemme
Je ne te dis pas que tu es le meilleur car tu finirais par le croire.
;-)))
Mille mercis bien sûr.
Cependant, pourquoi ce contrôle sur > 1 dans la macro et donc le rôle de T
?
Il ne me reste plus qu'à trier ce tableau en fonction du classement pour une
lecture plus facile... Cela va être une autre paire de manches, mais il faut
que j'apprenne à maitriser ces f... tableaux.
Bien amicalement
Michel
"MichD" a écrit dans le message de groupe de discussion :
qd103k$1inh$
Bonjour,
Désolé, mais ça me prend un certain temps pour comprendre, je ne sais
pas lire! ;-)
Tout semble OK.
https://cjoint.com/c/IFcrik0WzWj
Attention :
L'union de deux colonnes adjacentes ne forme qu'un "AREAS" contrairement
à deux colonnes non adjacentes constituant "AREAS". J'ai par conséquent
modifié légèrement la procédure.
MichD
Avatar
Péhemme
Pardon, je n'avais pas lu ton message jusqu'au bout.
C'est donc l'utilisation de Areas qui me posait problème.
Sachant que par construction il n'y a que 2 colonnes, je peux essayer de me
simplifier la vie...
Au départ je mettais 3 colonnes, mais cela alourdissait la lecture...
Merci encore de ton aide un dimanche qui fut, sur les bords de la
méditerranée, ensoleillé.
Bien amicalement
Michel
"MichD" a écrit dans le message de groupe de discussion :
qd103k$1inh$
Bonjour,
Désolé, mais ça me prend un certain temps pour comprendre, je ne sais
pas lire! ;-)
Tout semble OK.
https://cjoint.com/c/IFcrik0WzWj
Attention :
L'union de deux colonnes adjacentes ne forme qu'un "AREAS" contrairement
à deux colonnes non adjacentes constituant "AREAS". J'ai par conséquent
modifié légèrement la procédure.
MichD
Avatar
MichD
Si tu fais référence à ceci :
'---------------------
V = Me.ComboBox1.Value
If V > 1 Then
NbCol = Rng.Areas.Count
Else
NbCol = 2
End If
'---------------------
Quand tu choisis la valeur 1 dans le combobox,
Tu as 2 plages de cellules
Set Champ2 = .Range("B6:B25")
Set champ3 = .Range(.Cells(6, Col), .Cells(25, Col))
Set Rng = Union(champ3, Champ2)
En fait, tu as la plage B6:C25, deux colonnes adjacentes. Les 2 colonnes
ne forment qu'UN AREAS.
Dans la plage Tableau(Rng) tu définissais le nombre de colonnes de la
plage comme ceci : NbCol = Rng.Areas.Count
Lorsque tu choisissais 1 dans le combobox, toutes les valeurs se
retrouvaient dans la même colonne du listbox, puisqu'il n'y avait qu'UN
Areas, par conséquent qu'une colonne.
Dans la procédure "Private Sub btn_Valider_Click()", ceci est suffisant
pour définir la plage de cellule Set Rng = Union(champ3, Champ2), le
test avec If else end if est inutile.
MichD
Avatar
Péhemme
Merci pour l'explication, je pense avoir compris.
Michel
"MichD" a écrit dans le message de groupe de discussion :
qd125n$1ro9$
Si tu fais référence à ceci :
'---------------------
V = Me.ComboBox1.Value
If V > 1 Then
NbCol = Rng.Areas.Count
Else
NbCol = 2
End If
'---------------------
Quand tu choisis la valeur 1 dans le combobox,
Tu as 2 plages de cellules
Set Champ2 = .Range("B6:B25")
Set champ3 = .Range(.Cells(6, Col), .Cells(25, Col))
Set Rng = Union(champ3, Champ2)
En fait, tu as la plage B6:C25, deux colonnes adjacentes. Les 2 colonnes
ne forment qu'UN AREAS.
Dans la plage Tableau(Rng) tu définissais le nombre de colonnes de la
plage comme ceci : NbCol = Rng.Areas.Count
Lorsque tu choisissais 1 dans le combobox, toutes les valeurs se
retrouvaient dans la même colonne du listbox, puisqu'il n'y avait qu'UN
Areas, par conséquent qu'une colonne.
Dans la procédure "Private Sub btn_Valider_Click()", ceci est suffisant
pour définir la plage de cellule Set Rng = Union(champ3, Champ2), le
test avec If else end if est inutile.
MichD
Avatar
MichD
Tu aurais pu insérer une colonne entre la colonne B et C, la colonne C
serait devenue D et tu n'avais qu'à masquer la colonne C. cela aurait
évité de modifier le code! ;-)
MichD
Le 02/06/19 à 13:41, Péhemme a écrit :
Pardon, je n'avais pas lu ton message jusqu'au bout.
C'est donc l'utilisation de Areas qui me posait problème.
Sachant que par construction il n'y a que 2 colonnes, je peux essayer de
me simplifier la vie...
Au départ je mettais 3 colonnes, mais cela alourdissait la lecture...
Merci encore de ton aide un dimanche qui fut, sur les bords de la
méditerranée, ensoleillé.
Bien amicalement
Michel
"MichD"  a écrit dans le message de groupe de discussion :
qd103k$1inh$
Bonjour,
Désolé, mais ça me prend un certain temps pour comprendre, je ne sais
pas lire! ;-)
Tout semble OK.
https://cjoint.com/c/IFcrik0WzWj
Attention :
L'union de deux colonnes adjacentes ne forme qu'un "AREAS" contrairement
à deux colonnes non adjacentes constituant "AREAS". J'ai par conséquent
modifié légèrement la procédure.
MichD
1 2