Remplir ComboBox à partir d'un tableau 2D

Le
danielos
Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à partir d=
'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient pas=
.
Les valeurs à recueillir seraient les coordonnées des cellules valide=
s.

Ma première idée serait dans un premier temps au moyen d'une macro de=

lister les cellules valides dans une colonne (mais ça je ne sais pas
faire) et dans un second temps d'utiliser les valeurs de la colonne pour
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis un ex=
emple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #26351612
Bonjour

Une pensée très matinale m'a apporté ceci ...

Sub liste_Adresses()
n = 1
For Each c In Range("c5:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
x = c.Address
Range("a" & n).Value = x
n = n + 1
End If
Next
End Sub

Au plaisir de lire tes commentaires.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
miemj1$koi$

Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à partir d'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient pas.
Les valeurs à recueillir seraient les coordonnées des cellules valides.

Ma première idée serait dans un premier temps au moyen d'une macro de
lister les cellules valides dans une colonne (mais ça je ne sais pas
faire) et dans un second temps d'utiliser les valeurs de la colonne pour
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis un exemple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
MichD
danielos
Le #26351668
Bonjour,

Merci Jacquouille, tu as de bonnes pensées matinales ;-)
Aurais-tu une astuce qui me permettrait de récupérer les titres des
lignes et colonnes de mon tableau et non pas l'adresse de la cellule
dans la feuille ?

Bien à toi et merci encore (même si l'astuce n'existe pas, j'ai déj à
bien avancé avec ta macro).

Daniel



Jacquouille a écrit :
Bonjour

Une pensée très matinale m'a apporté ceci ...

Sub liste_Adresses()
n = 1
For Each c In Range("c5:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
x = c.Address
Range("a" & n).Value = x
n = n + 1
End If
Next
End Sub

Au plaisir de lire tes commentaires.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
miemj1$koi$

Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à partir d'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient p as.
Les valeurs à recueillir seraient les coordonnées des cellules vali des.

Ma première idée serait dans un premier temps au moyen d'une macro de
lister les cellules valides dans une colonne (mais ça je ne sais pas
faire) et dans un second temps d'utiliser les valeurs de la colonne pou r
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis un exemple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel

---
L'absence de virus dans ce courrier électronique a été vérifié e par le
logiciel antivirus Avast.
http://www.avast.com

isabelle
Le #26351667
bonjour Daniel,

remplace
x = c.Address
Range("a" & n).Value = x
par
Range("a" & n).Value = Range(c.Address).Value

isabelle

Le 2015-05-07 11:56, danielos a écrit :
Bonjour,

Merci Jacquouille, tu as de bonnes pensées matinales ;-)
Aurais-tu une astuce qui me permettrait de récupérer les titres des lignes et
colonnes de mon tableau et non pas l'adresse de la cellule dans la feuille ?

Bien à toi et merci encore (même si l'astuce n'existe pas, j'ai déjà bien avancé
avec ta macro).

Daniel



Jacquouille a écrit :
Bonjour

Une pensée très matinale m'a apporté ceci ...

Sub liste_Adresses()
n = 1
For Each c In Range("c5:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
x = c.Address
Range("a" & n).Value = x
n = n + 1
End If
Next
End Sub

Au plaisir de lire tes commentaires.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
miemj1$koi$

Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à partir d'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient pas.
Les valeurs à recueillir seraient les coordonnées des cellules valides.

Ma première idée serait dans un premier temps au moyen d'une macro de
lister les cellules valides dans une colonne (mais ça je ne sais pas
faire) et dans un second temps d'utiliser les valeurs de la colonne pour
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis un exemple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com




danielos
Le #26351670
Bonjour,

Merci à toi MichD, effectivement c'est une piste intéressante qui
pourrait répondre en l'adaptant et cela nécessite d'avoir 2 CB en
cascade pour arriver au choix final. Pourquoi pas ...

Daniel


MichD a écrit :
Bonjour,

Un fichier exemple : http://cjoint.com/?EEhmrxYYPjl
danielos
Le #26351673
Bonjour Isabelle,

J'ai bien essayé de remplacer les 2 lignes par ta proposition mais cela
ne donne rien malheureusement. Aucun affichage. La fenêtre de Variables
locales montre bien l'incrémentation de n par contre.

Daniel


isabelle a écrit :
bonjour Daniel,

remplace
x = c.Address
Range("a" & n).Value = x
par
Range("a" & n).Value = Range(c.Address).Value

isabelle

Le 2015-05-07 11:56, danielos a écrit :
Bonjour,

Merci Jacquouille, tu as de bonnes pensées matinales ;-)
Aurais-tu une astuce qui me permettrait de récupérer les titres de s
lignes et
colonnes de mon tableau et non pas l'adresse de la cellule dans la
feuille ?

Bien à toi et merci encore (même si l'astuce n'existe pas, j'ai dé jà
bien avancé
avec ta macro).

Daniel



Jacquouille a écrit :
Bonjour

Une pensée très matinale m'a apporté ceci ...

Sub liste_Adresses()
n = 1
For Each c In Range("c5:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
x = c.Address
Range("a" & n).Value = x
n = n + 1
End If
Next
End Sub

Au plaisir de lire tes commentaires.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
miemj1$koi$

Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à part ir d'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient pas.
Les valeurs à recueillir seraient les coordonnées des cellules va lides.

Ma première idée serait dans un premier temps au moyen d'une macr o de
lister les cellules valides dans une colonne (mais ça je ne sais pa s
faire) et dans un second temps d'utiliser les valeurs de la colonne p our
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis u n exemple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel

---
L'absence de virus dans ce courrier électronique a été vérifi ée par le
logiciel antivirus Avast.
http://www.avast.com




MichD
Le #26351674
! cela nécessite d'avoir 2 CB en
| cascade pour arriver au choix final. Pourquoi pas ...

Absolument pas. Cet exemple a été créé pour quelqu'un qui
avait besoin de ces 2 combobox. Il n'y a aucun problème à
faire ce que tu désires en utilisant seulement un combobox.
isabelle
Le #26351680
est ce que le résultat doit être du genre ?
1B
1C
1D
2A
2D
3A
3C
3D
4A
4B


isabelle

Le 2015-05-07 12:40, danielos a écrit :
Bonjour Isabelle,

J'ai bien essayé de remplacer les 2 lignes par ta proposition mais cela ne donne
rien malheureusement. Aucun affichage. La fenêtre de Variables locales montre
bien l'incrémentation de n par contre.

Daniel


isabelle a écrit :
bonjour Daniel,

remplace
x = c.Address
Range("a" & n).Value = x
par
Range("a" & n).Value = Range(c.Address).Value

isabelle

Le 2015-05-07 11:56, danielos a écrit :
Bonjour,

Merci Jacquouille, tu as de bonnes pensées matinales ;-)
Aurais-tu une astuce qui me permettrait de récupérer les titres des lignes et
colonnes de mon tableau et non pas l'adresse de la cellule dans la feuille ?

Bien à toi et merci encore (même si l'astuce n'existe pas, j'ai déjà bien avancé
avec ta macro).

Daniel



Jacquouille a écrit :
Bonjour

Une pensée très matinale m'a apporté ceci ...

Sub liste_Adresses()
n = 1
For Each c In Range("c5:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
x = c.Address
Range("a" & n).Value = x
n = n + 1
End If
Next
End Sub

Au plaisir de lire tes commentaires.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
miemj1$koi$

Bonjour,

Je souhaiterai donner à une Combobox les valeurs obtenues à partir d'un
tableau 2 dimensions (n lignes, p colonnes), mais où toutes les
cellules ne seraient pas à prendre.
Les cellules à utiliser seraient vides et les autres ne le seraient pas.
Les valeurs à recueillir seraient les coordonnées des cellules valides.

Ma première idée serait dans un premier temps au moyen d'une macro de
lister les cellules valides dans une colonne (mais ça je ne sais pas
faire) et dans un second temps d'utiliser les valeurs de la colonne pour
remplir la CB.

Mais peut-être y a t-il une autre possibilité plus jolie que ça ?

N'étant pas sûr que mon problème est bien exprimé, j'ai mis un exemple
du tableau que je pourrai avoir et de la liste attendue dans la CB.
http://cjoint.com/?0Egp3FtGi1B

Merci à toutes et à tous pour votre aide ou un début de piste.

Daniel

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com









isabelle
Le #26351679
ok je vient juste de voir
A-2
A-3
A-4
B-1
B-4
C-1
C-3
D-1
D-2
D-3


Sub liste_Coordonnées()
Dim n As Integer, c
For Each c In Range("c4:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
n = n + 1
Range("a" & n).Value = Cells(4, c.Column) & "-" & Cells(c.Row, 2)
End If
Next
'trie
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A21")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub

isabelle
Jacquouille
Le #26351686
Re
Chez moi, la macro indique bien les cel vides du tableau en A1:A10, mais ne
les trie pas ....
-(


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
mig7m5$bd5$

ok je vient juste de voir
A-2
A-3
A-4
B-1
B-4
C-1
C-3
D-1
D-2
D-3


Sub liste_Coordonnées()
Dim n As Integer, c
For Each c In Range("c4:f8") ' ton tableau dans ton exemple
If c.Value = "" Then
n = n + 1
Range("a" & n).Value = Cells(4, c.Column) & "-" & Cells(c.Row, 2)
End If
Next
'trie
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A21")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub

isabelle


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Publicité
Poster une réponse
Anonyme