Je repose ma question: j'aurais aime=20
savoir s'il =E9tait possible sous VBa de r=E9cup=E9rer les=20
donn=E9es propos=E9es par Excel lorsqu'on execute "Liste de=20
Choix" sur une cellule. La r=E9ponse qui m'a =E9t=E9 fournie=20
pour le moment consiste =E0 utiliser la propriete RowSource=20
d'une ComboBox mais je ne souhaite pas utiliser de Combo.=20
en effet, avec ces donn=E9es, je cherche uniquement =E0=20
remplir un tableau de variable d=E9clar=E9 sous VBa. J'espere=20
que vous me comprendrez.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
t'as eu une réponse 39 minutes après ta première question.
"Hugo" a écrit dans le message de news:21f101c4279a$3e506700$ Bonjour,
Je repose ma question: j'aurais aime savoir s'il était possible sous VBa de récupérer les données proposées par Excel lorsqu'on execute "Liste de Choix" sur une cellule. La réponse qui m'a été fournie pour le moment consiste à utiliser la propriete RowSource d'une ComboBox mais je ne souhaite pas utiliser de Combo. en effet, avec ces données, je cherche uniquement à remplir un tableau de variable déclaré sous VBa. J'espere que vous me comprendrez.
Merci d'avance et bonne journée.
Hugo.
t'as eu une réponse 39 minutes après ta première question.
"Hugo" <anonymous@discussions.microsoft.com> a écrit dans le message
de news:21f101c4279a$3e506700$a301280a@phx.gbl...
Bonjour,
Je repose ma question: j'aurais aime
savoir s'il était possible sous VBa de récupérer les
données proposées par Excel lorsqu'on execute "Liste de
Choix" sur une cellule. La réponse qui m'a été fournie
pour le moment consiste à utiliser la propriete RowSource
d'une ComboBox mais je ne souhaite pas utiliser de Combo.
en effet, avec ces données, je cherche uniquement à
remplir un tableau de variable déclaré sous VBa. J'espere
que vous me comprendrez.
t'as eu une réponse 39 minutes après ta première question.
"Hugo" a écrit dans le message de news:21f101c4279a$3e506700$ Bonjour,
Je repose ma question: j'aurais aime savoir s'il était possible sous VBa de récupérer les données proposées par Excel lorsqu'on execute "Liste de Choix" sur une cellule. La réponse qui m'a été fournie pour le moment consiste à utiliser la propriete RowSource d'une ComboBox mais je ne souhaite pas utiliser de Combo. en effet, avec ces données, je cherche uniquement à remplir un tableau de variable déclaré sous VBa. J'espere que vous me comprendrez.
Merci d'avance et bonne journée.
Hugo.
Benead
Salut Hugo,
Pour répondre précisement à ta question, non il n'est pas possible de récupérer la "liste de choix" apparaissant lors d'un clic droit dans une cellule. Par contre tu peux utiliser cette fonction qui te retourne un tableau résultant d'une sélection sans doublon et d'un éventuel tri. La fonction possède deux arguments : Le premier est la plage de cellules pour générer ta liste de choix et le second est une valeur Boléeenne facultative pour trier le tableau. Dans mon exemple, j'ai mis le résultat dans un ListBox mais ce n'est pas obligatoire.
' ******** Dans le modude de l'UserForm Private Sub UserForm_Initialize() ListBox1.List = ListeChoix(ActiveSheet.UsedRange.Columns("A").Cells, True) End Sub
' ******** Dans un modude standard Function ListeChoix(Plage As Range, Optional Tri As Boolean = False) As Variant Dim Doublon0 As New Collection, n As Long, m As Long, wcell As Range, TabChoix() Dim StockageProv1 As Variant, StockageProv2 As Variant
On Error Resume Next ' Création de la collection des valeurs sans doublon For Each wcell In Plage If Not wcell = "" Then Doublon0.Add wcell.Text, CStr(wcell) Next ' Tri des Items If Tri Then For m = 1 To Doublon0.Count - 1 For n = m + 1 To Doublon0.Count If Doublon0(m) > Doublon0(n) Then StockageProv1 = Doublon0(m) StockageProv2 = Doublon0(n) Doublon0.Add StockageProv1, , n Doublon0.Add StockageProv2, , m Doublon0.Remove m + 1 Doublon0.Remove n + 1 End If Next Next End If On Error GoTo 0 ' Mise en place des valeurs dans un tableau (avant un éventuel chargement du ListBox ou ComboBox) ReDim TabChoix(Doublon0.Count - 1) For n = 1 To Doublon0.Count TabChoix(n - 1) = Doublon0(n) Next n ListeChoix = TabChoix End Function ' ***************************************
A+ Benead Bretagne
Xl97
Hugo a écrit:
Bonjour,
Je repose ma question: j'aurais aime savoir s'il était possible sous VBa de récupérer les données proposées par Excel lorsqu'on execute "Liste de Choix" sur une cellule. La réponse qui m'a été fournie pour le moment consiste à utiliser la propriete RowSource d'une ComboBox mais je ne souhaite pas utiliser de Combo. en effet, avec ces données, je cherche uniquement à remplir un tableau de variable déclaré sous VBa. J'espere que vous me comprendrez.
Merci d'avance et bonne journée.
Hugo.
Salut Hugo,
Pour répondre précisement à ta question, non il n'est pas possible de récupérer la "liste de choix" apparaissant lors d'un clic droit dans une cellule.
Par contre tu peux utiliser cette fonction qui te retourne un tableau résultant d'une sélection sans doublon et d'un éventuel tri.
La fonction possède deux arguments : Le premier est la plage de cellules pour générer ta liste de choix et le second est une valeur Boléeenne
facultative pour trier le tableau.
Dans mon exemple, j'ai mis le résultat dans un ListBox mais ce n'est pas obligatoire.
' ******** Dans le modude de l'UserForm
Private Sub UserForm_Initialize()
ListBox1.List = ListeChoix(ActiveSheet.UsedRange.Columns("A").Cells, True)
End Sub
' ******** Dans un modude standard
Function ListeChoix(Plage As Range, Optional Tri As Boolean = False) As Variant
Dim Doublon0 As New Collection, n As Long, m As Long, wcell As Range, TabChoix()
Dim StockageProv1 As Variant, StockageProv2 As Variant
On Error Resume Next
' Création de la collection des valeurs sans doublon
For Each wcell In Plage
If Not wcell = "" Then Doublon0.Add wcell.Text, CStr(wcell)
Next
' Tri des Items
If Tri Then
For m = 1 To Doublon0.Count - 1
For n = m + 1 To Doublon0.Count
If Doublon0(m) > Doublon0(n) Then
StockageProv1 = Doublon0(m)
StockageProv2 = Doublon0(n)
Doublon0.Add StockageProv1, , n
Doublon0.Add StockageProv2, , m
Doublon0.Remove m + 1
Doublon0.Remove n + 1
End If
Next
Next
End If
On Error GoTo 0
' Mise en place des valeurs dans un tableau (avant un éventuel chargement du ListBox ou ComboBox)
ReDim TabChoix(Doublon0.Count - 1)
For n = 1 To Doublon0.Count
TabChoix(n - 1) = Doublon0(n)
Next n
ListeChoix = TabChoix
End Function
' ***************************************
A+
Benead
Bretagne
Xl97
Hugo a écrit:
Bonjour,
Je repose ma question: j'aurais aime
savoir s'il était possible sous VBa de récupérer les
données proposées par Excel lorsqu'on execute "Liste de
Choix" sur une cellule. La réponse qui m'a été fournie
pour le moment consiste à utiliser la propriete RowSource
d'une ComboBox mais je ne souhaite pas utiliser de Combo.
en effet, avec ces données, je cherche uniquement à
remplir un tableau de variable déclaré sous VBa. J'espere
que vous me comprendrez.
Pour répondre précisement à ta question, non il n'est pas possible de récupérer la "liste de choix" apparaissant lors d'un clic droit dans une cellule. Par contre tu peux utiliser cette fonction qui te retourne un tableau résultant d'une sélection sans doublon et d'un éventuel tri. La fonction possède deux arguments : Le premier est la plage de cellules pour générer ta liste de choix et le second est une valeur Boléeenne facultative pour trier le tableau. Dans mon exemple, j'ai mis le résultat dans un ListBox mais ce n'est pas obligatoire.
' ******** Dans le modude de l'UserForm Private Sub UserForm_Initialize() ListBox1.List = ListeChoix(ActiveSheet.UsedRange.Columns("A").Cells, True) End Sub
' ******** Dans un modude standard Function ListeChoix(Plage As Range, Optional Tri As Boolean = False) As Variant Dim Doublon0 As New Collection, n As Long, m As Long, wcell As Range, TabChoix() Dim StockageProv1 As Variant, StockageProv2 As Variant
On Error Resume Next ' Création de la collection des valeurs sans doublon For Each wcell In Plage If Not wcell = "" Then Doublon0.Add wcell.Text, CStr(wcell) Next ' Tri des Items If Tri Then For m = 1 To Doublon0.Count - 1 For n = m + 1 To Doublon0.Count If Doublon0(m) > Doublon0(n) Then StockageProv1 = Doublon0(m) StockageProv2 = Doublon0(n) Doublon0.Add StockageProv1, , n Doublon0.Add StockageProv2, , m Doublon0.Remove m + 1 Doublon0.Remove n + 1 End If Next Next End If On Error GoTo 0 ' Mise en place des valeurs dans un tableau (avant un éventuel chargement du ListBox ou ComboBox) ReDim TabChoix(Doublon0.Count - 1) For n = 1 To Doublon0.Count TabChoix(n - 1) = Doublon0(n) Next n ListeChoix = TabChoix End Function ' ***************************************
A+ Benead Bretagne
Xl97
Hugo a écrit:
Bonjour,
Je repose ma question: j'aurais aime savoir s'il était possible sous VBa de récupérer les données proposées par Excel lorsqu'on execute "Liste de Choix" sur une cellule. La réponse qui m'a été fournie pour le moment consiste à utiliser la propriete RowSource d'une ComboBox mais je ne souhaite pas utiliser de Combo. en effet, avec ces données, je cherche uniquement à remplir un tableau de variable déclaré sous VBa. J'espere que vous me comprendrez.