OVH Cloud OVH Cloud

Userfom modal

7 réponses
Avatar
SOCARA Strasbourg
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la feuille
Excel.
Mais si je fais un modification directement dans la feuille, cette modif
n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur dans ma
liste)

7 réponses

Avatar
Misange
Bonjour,
définit la "rowsource" de ta liste en utilisant l'instruction décaler et ça
se fera tout seul.
Pour cela, insertion/nom/définir, tu nommes maliste la zone contenant tes
données et en bas tu écris la formule magique = decaler (...) (les
paramètres dépendent de tes data, reviens si ça va pas). Dans le rowsource
de ta list box tu utilises alors le nom maliste
Exemple sur décaler sur excelabo et exemples d'utilisation des listbox sur
les pages listes et contrôles.

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de news:
bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la feuille
Excel.
Mais si je fais un modification directement dans la feuille, cette modif
n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur dans ma
liste)




Avatar
SOCARA Strasbourg
Désolé Misange, j'ai regardé dans Excelabo (un peu vite surement)
mais je ne vois aps comment appliquer cette fonctionn decaler au "nommage"
de cellule

quand je tape Þcaler(liste!a1:a2) il me dit qu'il manque des arguments

"Misange" ù.net> a écrit dans le message de
news:
Bonjour,
définit la "rowsource" de ta liste en utilisant l'instruction décaler et
ça

se fera tout seul.
Pour cela, insertion/nom/définir, tu nommes maliste la zone contenant tes
données et en bas tu écris la formule magique = decaler (...) (les
paramètres dépendent de tes data, reviens si ça va pas). Dans le rowsource
de ta list box tu utilises alors le nom maliste
Exemple sur décaler sur excelabo et exemples d'utilisation des listbox sur
les pages listes et contrôles.

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= > mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de news:
bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la feuille
Excel.
Mais si je fais un modification directement dans la feuille, cette modif
n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur dans
ma


liste)








Avatar
ru-th
Salut
Désolé Misange, j'ai regardé dans Excelabo (un peu vite surement)
Surement ;-)))


dans
http://www.excelabo.net/xl/adresses.htm#tableauvariable
Comment sélectionner et nommer un tableau à nombre variable de lignes ?
Tu peux créer une plage nommée dont l'étendue serait déterminée par une
formule à l'aide de la fonction décaler
Définir une plage de cellules
ÞCALER(Feuil1!$B$1;0;0;NBVAL(Feuil1!$B:$B);1)
(fin copie)voir aussi http://www.excelabo.net/xl/formules.htm#decalerex
et même un lexique http://www.excelabo.net/xl/lexique.htm#decaler
le nom que tu crées fera référence à cette fonction, et tu pourra l'utiser
pour définir ta rowsource
a+
rural thierry


"SOCARA Strasbourg" a écrit dans le message de news:
bk9bd8$v8e$
Désolé Misange, j'ai regardé dans Excelabo (un peu vite surement)
mais je ne vois aps comment appliquer cette fonctionn decaler au "nommage"
de cellule

quand je tape Þcaler(liste!a1:a2) il me dit qu'il manque des arguments

"Misange" ù.net> a écrit dans le message de
news:
Bonjour,
définit la "rowsource" de ta liste en utilisant l'instruction décaler et
ça

se fera tout seul.
Pour cela, insertion/nom/définir, tu nommes maliste la zone contenant
tes


données et en bas tu écris la formule magique = decaler (...) (les
paramètres dépendent de tes data, reviens si ça va pas). Dans le
rowsource


de ta list box tu utilises alors le nom maliste
Exemple sur décaler sur excelabo et exemples d'utilisation des listbox
sur


les pages listes et contrôles.

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= > > mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de
news:


bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la
feuille



Excel.
Mais si je fais un modification directement dans la feuille, cette
modif



n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur
dans



ma
liste)












Avatar
Misange
un peu vite ;-)))
tu utilises décaler pour nommer ta liste :
si tes données sont dans la feuille1 en A2 A3... avec un titre en A1,
insertion/nom/définir
dans la case du haut tu tapes maliste
dans celle du bas tu tapes
=ÞCALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)

dans ton userform_initialize() (ou ailleurs !)
tu écris
ListBox1.RowSource = ("feuil1!maliste")
et magique, le contenu de chaque cellule en dessous de la précédente ajoutée
dans la colonne A (pas de trou et rien d'autre que le titre dans cette
colonne sinon tout est faussé) viendra se mettre dans ta liste
automatiquement.

je t'incite vivement à regarder sur excelabo dans le lexique comment
utiliser cette fonction décaler. Pas évident au départ mais vite
indispensable pour s'épargner du boulot dans les mises à jours ( TCD,
graphiques, userforms, les usages sont multiples)

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de news:
bk9bd8$v8e$
Désolé Misange, j'ai regardé dans Excelabo (un peu vite surement)
mais je ne vois aps comment appliquer cette fonctionn decaler au "nommage"
de cellule

quand je tape Þcaler(liste!a1:a2) il me dit qu'il manque des arguments

"Misange" ù.net> a écrit dans le message de
news:
Bonjour,
définit la "rowsource" de ta liste en utilisant l'instruction décaler et
ça

se fera tout seul.
Pour cela, insertion/nom/définir, tu nommes maliste la zone contenant
tes


données et en bas tu écris la formule magique = decaler (...) (les
paramètres dépendent de tes data, reviens si ça va pas). Dans le
rowsource


de ta list box tu utilises alors le nom maliste
Exemple sur décaler sur excelabo et exemples d'utilisation des listbox
sur


les pages listes et contrôles.

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= > > mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de
news:


bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la
feuille



Excel.
Mais si je fais un modification directement dans la feuille, cette
modif



n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur
dans



ma
liste)












Avatar
Misange
comment fais tu pour inserer une nouvelle valeur au milieu de ta zone ?
celle ci comporte à l'origine des trous ? ou bien estque tu ajoutes en fin
de liste et tu tries ? Si c'est le premier cas alors oublie ma soluce. Si
c'est le second alors elle marche parfaitement je l'utilise tous les jours.
C'est tellement simple que tu pourrais peut être envisager de structurer tes
données de façon à pouvoir utiliser ce truc. MAis je ne suis pas dans ton
classeur (heureusement ! j'ai horreur des barreaux de cellules)

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= mail : http://cerbermail.com/?k5Q8Dh2mta




"SOCARA Strasbourg" a écrit dans le message de news:
bk9ihr$916$
ok j'ai du mal m'exprimer :

En fait ce n'est pas avec le nom de ma zone (qui est nommée num) que
j'ai un soucis.
En fais comme l'insertion de nouvelle valeur se fait "au milieu" de la
zone

NUM, celle ci s'aggrandit.
Mais quand je lance l'userform, le textbox "lit" les données situées dans
cette rowsource (num)
et quand, par el bias d'une macro complémentaire, j'ajoute une valeur (au
mileu) le
textbox ne met pas à jour son affichage en fonction de la nouvelle
contenance de cette rowsource.

Ce qu'il me faudrait c'est une commande qui ferait que la textbox "relise"
le contenu de la rowsource.

ouf ! j'espère que c'est un peu plus précis.

merci




Avatar
michdenis
Bonjour SOCARA Strasbourg,

Essaie ceci : à copier dans la feuille module où tu inscris tes données

Évidemment, tu dois adapter la plage de cellules correspondant à ton application.
La propriété RowSource du combobox est défini par le nom "Toto"

'--------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Toto"
UserForm1.ComboBox1.RowSource = "Toto"

End Sub
'--------------------


Ces deux lignes de codes pourraient aussi être utilisé dans cette procédure à l'ouverture de ton formulaire

'-----------------------------
Private Sub UserForm_Initialize()

Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Toto"
Me.ComboBox1.RowSource = "Toto"

End Sub
'-----------------------------


Salutations!



"SOCARA Strasbourg" a écrit dans le message de news:bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la feuille
Excel.
Mais si je fais un modification directement dans la feuille, cette modif
n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur dans ma
liste)
Avatar
SOCARA Strasbourg
Merci à tous,
Graces à vos conseils avisés, mon problème est entièrement résolu.
Je ne manquerais pas de "revenir" vos poser dès colles dès que
je serais bloqué, et cela ne saurait tarder.
bye.

"SOCARA Strasbourg" a écrit dans le message de
news:bk985j$icm$
Bonjour,
j'ai un userform dont la propriété showmodal est mise à false
dans ce userform, une liste box tire ses valeur d'une zone de la feuille
Excel.
Mais si je fais un modification directement dans la feuille, cette modif
n'est
pas répercutée dans le listbox.
Y'a t'il un moyen de forcer le "rechargement" de la liste d'un listbox
sans pour autant fermer le userform.
(en fait un bouton sur mon userform me permet d'ajouter une valeur dans ma
liste)