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

pb remplissage combobox par table

3 réponses
Avatar
Greffier
Bonjour à vous tous,

Je galère pour remplir un tableau.Voici les détails :

Dans une feuille XL, j'ai un tableau à 2 entrées, avec mettons de C2 à BB en
colonne et de A4 à A80 en ligne.

Dans un Userform, j'ai 2 combobox, 1 pour les lignes, l'autre pour les
colonnes. Les lignes contiennent des produits, les colonnes contiennent des
dates (mais la date est sur 2 colonnes, c'est là le hic).Je voudrais arriver
à mettre dans une combobox les produits compris entre A4et A80, là je pense
que je n'ai pas de problèmes, dans l'autre les dates : la difficulté est de
mettre 2 colonnes dans une ligne de la combobox.

Je voudrais arriver à sélectionner, par exemple, le produit contenu dans
A10, la date contenue dans les colonnes M:N (ou les colonnes AW:AX puisque
j'ai environ 30 dates). Et à l'intersection de A10 et AW:AX, je puisse taper
une valeur dans la Textbox. Mon tableau dans la feuille XL affichera cette
valeur à l'intersection de A10 et Aw:AX.


J'ai consulté le forum, mais sans succès.

J'ai essayé la méthode de titeuf -mimick-thierry avec en essai la génération
des lettres des colonnes mais on s'arrête à 26.
La 2ème partie me paraissait plus astucieuse mais le Step 2 ne marche pas
pour les colonnes.

Private Sub UserForm_Initialize()
Dim i As Byte

'For i = 66 To 90
' Me.ComboBox1.AddItem Chr(i), i - 66
'Next
'For i = 2 To 100
' Me.ComboBox2.AddItem i, i - 2
'Next

For i = 2 To Range("B1").End(xlToRight).Column
ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2
Next

ComboBox2.RowSource = "A2:A" & Range("A2:A65536").End(xlDown).Row

End Sub


Ou bien je suis complètement à côté de la solution, ou bien je n'applique
pas la bonne méthode.

Une âme charitable aurait-elle une piste pour m'orienter ou une solution
toute prête.

Greffier

3 réponses

Avatar
LSteph
Bonjour Greffier,
Dans ton initialize pour les dates par 2 cellules en ligne 1 depuis b1
Voici pour la combo si j'ai bien compris!
'lSteph

'...
ComboBox1.Clear

For i = 2 To Cells(1, 255).End(xlToLeft).Column Step 2
If Not IsEmpty(Cells(1, i)) Then
ComboBox1.AddItem Cells(1, i) & Cells(1, i + 1)
Else
Exit For
End If
Next
'....

"Greffier" a écrit dans le message de news:

Bonjour à vous tous,

Je galère pour remplir un tableau.Voici les détails :

Dans une feuille XL, j'ai un tableau à 2 entrées, avec mettons de C2 à BB
en
colonne et de A4 à A80 en ligne.

Dans un Userform, j'ai 2 combobox, 1 pour les lignes, l'autre pour les
colonnes. Les lignes contiennent des produits, les colonnes contiennent
des
dates (mais la date est sur 2 colonnes, c'est là le hic).Je voudrais
arriver
à mettre dans une combobox les produits compris entre A4et A80, là je
pense
que je n'ai pas de problèmes, dans l'autre les dates : la difficulté est
de
mettre 2 colonnes dans une ligne de la combobox.

Je voudrais arriver à sélectionner, par exemple, le produit contenu dans
A10, la date contenue dans les colonnes M:N (ou les colonnes AW:AX
puisque
j'ai environ 30 dates). Et à l'intersection de A10 et AW:AX, je puisse
taper
une valeur dans la Textbox. Mon tableau dans la feuille XL affichera cette
valeur à l'intersection de A10 et Aw:AX.


J'ai consulté le forum, mais sans succès.

J'ai essayé la méthode de titeuf -mimick-thierry avec en essai la
génération
des lettres des colonnes mais on s'arrête à 26.
La 2ème partie me paraissait plus astucieuse mais le Step 2 ne marche pas
pour les colonnes.

Private Sub UserForm_Initialize()
Dim i As Byte

'For i = 66 To 90
' Me.ComboBox1.AddItem Chr(i), i - 66
'Next
'For i = 2 To 100
' Me.ComboBox2.AddItem i, i - 2
'Next

For i = 2 To Range("B1").End(xlToRight).Column
ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2
Next

ComboBox2.RowSource = "A2:A" & Range("A2:A65536").End(xlDown).Row

End Sub


Ou bien je suis complètement à côté de la solution, ou bien je n'applique
pas la bonne méthode.

Une âme charitable aurait-elle une piste pour m'orienter ou une solution
toute prête.

Greffier





Avatar
Greffier
bonjour et merci à LSteph,

C'est une solution à laquelle je n'avais pas songé.
merci de me la rappeler car c'est une solution simple.
Une remarque : je n'ai pas tout à fait compris "xlToLeft", j'aurais mis
"xlToRight" : pourquoi.

Greffier.



"LSteph" a écrit dans le message de
news:
Bonjour Greffier,
Dans ton initialize pour les dates par 2 cellules en ligne 1 depuis b1
Voici pour la combo si j'ai bien compris!
'lSteph

'...
ComboBox1.Clear

For i = 2 To Cells(1, 255).End(xlToLeft).Column Step 2
If Not IsEmpty(Cells(1, i)) Then
ComboBox1.AddItem Cells(1, i) & Cells(1, i + 1)
Else
Exit For
End If
Next
'....

"Greffier" a écrit dans le message de news:

Bonjour à vous tous,

Je galère pour remplir un tableau.Voici les détails :

Dans une feuille XL, j'ai un tableau à 2 entrées, avec mettons de C2 à
BB


en
colonne et de A4 à A80 en ligne.

Dans un Userform, j'ai 2 combobox, 1 pour les lignes, l'autre pour les
colonnes. Les lignes contiennent des produits, les colonnes contiennent
des
dates (mais la date est sur 2 colonnes, c'est là le hic).Je voudrais
arriver
à mettre dans une combobox les produits compris entre A4et A80, là je
pense
que je n'ai pas de problèmes, dans l'autre les dates : la difficulté est
de
mettre 2 colonnes dans une ligne de la combobox.

Je voudrais arriver à sélectionner, par exemple, le produit contenu dans
A10, la date contenue dans les colonnes M:N (ou les colonnes AW:AX
puisque
j'ai environ 30 dates). Et à l'intersection de A10 et AW:AX, je puisse
taper
une valeur dans la Textbox. Mon tableau dans la feuille XL affichera
cette


valeur à l'intersection de A10 et Aw:AX.


J'ai consulté le forum, mais sans succès.

J'ai essayé la méthode de titeuf -mimick-thierry avec en essai la
génération
des lettres des colonnes mais on s'arrête à 26.
La 2ème partie me paraissait plus astucieuse mais le Step 2 ne marche
pas


pour les colonnes.

Private Sub UserForm_Initialize()
Dim i As Byte

'For i = 66 To 90
' Me.ComboBox1.AddItem Chr(i), i - 66
'Next
'For i = 2 To 100
' Me.ComboBox2.AddItem i, i - 2
'Next

For i = 2 To Range("B1").End(xlToRight).Column
ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2
Next

ComboBox2.RowSource = "A2:A" & Range("A2:A65536").End(xlDown).Row

End Sub


Ou bien je suis complètement à côté de la solution, ou bien je
n'applique


pas la bonne méthode.

Une âme charitable aurait-elle une piste pour m'orienter ou une solution
toute prête.

Greffier









Avatar
LSteph
Bonjour Greffier,
partant de la cellule 255 en première ligne il te faut aller vers la gauche
pour atteindre l'extrémité droite du tableau
en renvoyant son numéro de colonne tu trouve la valeur d'indice de fin de
boucle for..to..next

lSteph

"Greffier" a écrit dans le message de news:

bonjour et merci à LSteph,

C'est une solution à laquelle je n'avais pas songé.
merci de me la rappeler car c'est une solution simple.
Une remarque : je n'ai pas tout à fait compris "xlToLeft", j'aurais mis
"xlToRight" : pourquoi.

Greffier.



"LSteph" a écrit dans le message de
news:
Bonjour Greffier,
Dans ton initialize pour les dates par 2 cellules en ligne 1 depuis b1
Voici pour la combo si j'ai bien compris!
'lSteph

'...
ComboBox1.Clear

For i = 2 To Cells(1, 255).End(xlToLeft).Column Step 2
If Not IsEmpty(Cells(1, i)) Then
ComboBox1.AddItem Cells(1, i) & Cells(1, i + 1)
Else
Exit For
End If
Next
'....

"Greffier" a écrit dans le message de news:

Bonjour à vous tous,

Je galère pour remplir un tableau.Voici les détails :

Dans une feuille XL, j'ai un tableau à 2 entrées, avec mettons de C2 à
BB


en
colonne et de A4 à A80 en ligne.

Dans un Userform, j'ai 2 combobox, 1 pour les lignes, l'autre pour les
colonnes. Les lignes contiennent des produits, les colonnes contiennent
des
dates (mais la date est sur 2 colonnes, c'est là le hic).Je voudrais
arriver
à mettre dans une combobox les produits compris entre A4et A80, là je
pense
que je n'ai pas de problèmes, dans l'autre les dates : la difficulté
est
de
mettre 2 colonnes dans une ligne de la combobox.

Je voudrais arriver à sélectionner, par exemple, le produit contenu
dans
A10, la date contenue dans les colonnes M:N (ou les colonnes AW:AX
puisque
j'ai environ 30 dates). Et à l'intersection de A10 et AW:AX, je puisse
taper
une valeur dans la Textbox. Mon tableau dans la feuille XL affichera
cette


valeur à l'intersection de A10 et Aw:AX.


J'ai consulté le forum, mais sans succès.

J'ai essayé la méthode de titeuf -mimick-thierry avec en essai la
génération
des lettres des colonnes mais on s'arrête à 26.
La 2ème partie me paraissait plus astucieuse mais le Step 2 ne marche
pas


pour les colonnes.

Private Sub UserForm_Initialize()
Dim i As Byte

'For i = 66 To 90
' Me.ComboBox1.AddItem Chr(i), i - 66
'Next
'For i = 2 To 100
' Me.ComboBox2.AddItem i, i - 2
'Next

For i = 2 To Range("B1").End(xlToRight).Column
ComboBox1.AddItem Range(Chr(i + 64) & "1").Value, i - 2
Next

ComboBox2.RowSource = "A2:A" & Range("A2:A65536").End(xlDown).Row

End Sub


Ou bien je suis complètement à côté de la solution, ou bien je
n'applique


pas la bonne méthode.

Une âme charitable aurait-elle une piste pour m'orienter ou une
solution
toute prête.

Greffier