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

[VBA Excel] Listbox

28 réponses
Avatar
Nyck0las
Bonjour,

Je suis en train de travailler sur une base de donn=E9es et je voudrais
r=E9aliser un userform qui me permettrait de s=E9lectionner l'=E9l=E9ment qu=
i
servira de r=E9f=E9rence dans la suite de mon =E9tude.

En gros pour choisir cette r=E9f=E9rence, il me faut croiser 3 colonnes
- nom
- ann=E9e
- domaine
Il peut y avoir des redondances (un m=EAme nom =E0 diverses ann=E9es et pour=

divers domaines)

En gros ce que je souhaiterais faire, ce sont 3 listbox qui
reprendrais ces 3 colonnes nom, domaine et ann=E9e, sans doublon,
class=E9e par ordra alphanum=E9riqueet quand je s=E9lectionne un =E9lement
d'une colonne cel=E0 enl=E8ve des choix dans les autres.
C=E0 correspond en fait aux filtres automatiques sur ces 3 colonnes,
mais je souhaite une m=E9thode d=E9tourn=E9e pour que l'utilisateur n'ait
pas acc=E8s =E0 la base de donn=E9es directement.

Est-ce que quelqu'un aurait une petite piste ?

10 réponses

1 2 3
Avatar
Nyck0las
dans le premier fichier que tu m'as envoyé, tu n'avais pas défini ces
champs dynamiques ?? où alors je l'ai pas vu ??
Avatar
Nyck0las
ok j'ai compris, en fait c'était défini mais dans mon cas tu as collé
une liste apparente pour que je voie que je n'avais pas défini les
champs

merciiiiiiiiii
Avatar
Nyck0las
j'aurais encore une petite question.

Comment puis-je faire pour avoir accès au numéro de la ligne que
l'utilisateur a sélectionné, pour la garder en mémoire ??
Avatar
JB
Bonjour,

Sub PremiereLigne()
If Range("A:A").SpecialCells(xlCellTypeVisible).Areas(1).Count > 1
Then
ligne = 2
Else
ligne =
Range("A:A").SpecialCells(xlCellTypeVisible).Areas(2).Item(1).Row
End If
MsgBox ligne
End Sub

JB


On 6 fév, 10:28, Nyck0las wrote:
j'aurais encore une petite question.

Comment puis-je faire pour avoir accès au numéro de la ligne que
l'utilisateur a sélectionné, pour la garder en mémoire ??


Avatar
Nyck0las
wow super merci infiniment, çà marche nickel

par contre si çà ne t'ennuie pas, j'aimerais bien comprendre comment
çà marche.

je ne comprends pas très bien le test. J'ai fait quelques essais et on
est tout le temps dans le cas n°2 sauf quand mes 3 critères restent
sur *

A quoi correspondent les areas(1) et (2) ??
Avatar
JB
Les Areas sont des sous-champ d'un champ multiple
discontinu(Area(1),Area(2),...).S'il n'y a pas de zone filtrée, il n'y
a qu'un Area.
Les Items sont les éléments de ces champs.

JB

On 6 fév, 11:48, Nyck0las wrote:
wow super merci infiniment, çà marche nickel

par contre si çà ne t'ennuie pas, j'aimerais bien comprendre comment
çà marche.

je ne comprends pas très bien le test. J'ai fait quelques essais et on
est tout le temps dans le cas n°2 sauf quand mes 3 critères restent
sur *

A quoi correspondent les areas(1) et (2) ??


Avatar
Nyck0las
merci

dis moi, j'aurais encore une petite question :-)

Comment puis-je coder en vba les noms de champ dynamiques ?

An ÞCALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1)
Collectivité ÞCALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)
Domaine ÞCALER(Feuil1!$B$2;;;NBVAL(Feuil1!$B:$B)-1)
Avatar
JB
ActiveWorkbook.Names.Add Name:="an", RefersTo:="=OFFSET($C
$2,,,CountA($C:$C) - 1)"

JB


On 6 fév, 15:57, Nyck0las wrote:
merci

dis moi, j'aurais encore une petite question :-)

Comment puis-je coder en vba les noms de champ dynamiques ?

An      ÞCALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1)
Collectivité   ÞCALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)
Domaine ÞCALER(Feuil1!$B$2;;;NBVAL(Feuil1!$B:$B)-1)


Avatar
Nyck0las
et si je veux pousser le fin du fin en ne mettant pas C pour désigner
la colonne mais un truc du style rows(3) ??
Avatar
JB
ActiveWorkbook.Names.Add Name:="an", RefersTo:="=OFFSET($C
$2,,,CountA(" & Columns(3).Address & ") - 1)"

JB


On 6 fév, 17:29, Nyck0las wrote:
et si je veux pousser le fin du fin en ne mettant pas C pour désigner
la colonne mais un truc du style rows(3) ??


1 2 3