Recherche dans première colonne d'un tableau structuré

Galaktus

XLDnaute Nouveau
Bonsoir le forum,

Quelqu'un connait la syntaxe à utiliser pour rechercher uniquement dans la première colonne d'un tableau structuré ?

Je m'explique, je travaille sur un fichier ou j'alimente une combobox avec le code suivant :

Userform.Combobox.List = Application.Transpose(Sheets("Feuil1").Range("A:A NomDuTableau"))

Je recherche dans "NomDuTableau" qui couvre une plage A à D et en fait si je n'ai qu'une seule ligne dans ce tableau (plus la ligne des en têtes) le code ne fonctionne pas, excel me renvoi l'erreur suivante "Impossible de définir la propriété list. Index de table de propriétés non valide"

Je précise qu'il me faut uniquement le contenu de la colonne A

Merci à tout ceux qui voudront m'aider

Bonne soirée à vous
 

Staple1600

XLDnaute Barbatruc
Re

C'était pas très compliqué, non ? ;)
VB:
Private Sub UserForm_Initialize()
If ActiveSheet.ListObjects("Tableau1").DataBodyRange.Rows.Count = 1 Then
Me.ComboBox1.AddItem ActiveSheet.ListObjects("Tableau1").DataBodyRange(1, 1)
Else
Me.ComboBox1.List = Application.Transpose(ActiveSheet.ListObjects("Tableau1").ListColumns(1).DataBodyRange)
End If
End Sub
 

Galaktus

XLDnaute Nouveau
Je vais poster le fichier c'est plus simple,

Alors pour comprendre ca se passe dans l'onglet "Liste référence diamant", tu lance la macro avec le bouton "Go" présent sur la feuille

Sur cette feuille il y a une trentaine de tableaux distinct (je recherche le tableau voulu à l'aide d'une variable)
Tu verras que j'ai plusieurs ligne sur le tableau "A1" mais ca ne fonctionne pas non plus

D'avance je m'excuse si dans le module concerné c'est encore un peu le fouilli, c'est en cours de développement et pas encore finaliser :/
 

Pièces jointes

  • Gestion meules - diamants H1 - H2 - H3 - Copie.xlsm
    181.1 KB · Affichages: 22

Staple1600

XLDnaute Barbatruc
Re

Il suffit de préciser le nom de la feuille dans le code
Si la feuille s'appelle toto, alors on écrira:
VB:
Private Sub UserForm_Initialize()
'NB: Penser à  adapter le nom de la feuille et le nom du tableau devant remplir le ComboBox
If Sheets("toto").ListObjects("Tableau1").DataBodyRange.Rows.Count = 1 Then
Me.ComboBox1.AddItem Sheets("toto").ListObjects("Tableau1").DataBodyRange(1, 1)
Else
Me.ComboBox1.List = Application.Transpose(Sheets("toto").ListObjects("Tableau1").ListColumns(1).DataBodyRange)
End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Bah Excel t'a déjà dit où était l'erreur, non ? ;)
Userform.Combobox.List = Application.Transpose(Sheets("Feuil1").Range("A:A NomDuTableau"))
le code ne fonctionne pas, excel me renvoi l'erreur suivante "Impossible de définir la propriété list. Index de table de propriétés non valide"
C'est donc que ta syntaxe n'était pas valide.

La mienne l'est ;)
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla