![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour à tous,
J'utilise dans une feuille une combobox que je veux alimenter avec des items de tableaux croisés dynamiques. J'utilise le code suivant : ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", Link:=False, _ DisplayAsIcon:=False, Left:=170, Top:=19, _ Width:=150, Height:=17).Select ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", Link:=False, _ DisplayAsIcon:=False, Left:=357, Top:=19, _ Width:=150, Height:=17).Select Dim PT As PivotTable Dim PI As PivotItem Set PT = ActiveWorkbook.Sheets("Données").PivotTables("TCD comparaison d'états NB") For Each PI In PT.PivotFields("Entité").PivotItems If Left(PI.Name, 8) <> "AFFAIRES" Then AddNameToComboBox PI.Name, Sheets("Données").ComboBox1 End If Next End Sub Sub AddNameToComboBox(NewName As String, LB As MSForms.ComboBox) Dim i As Integer For i = 0 To LB.ListCount - 1 If LB.List(i) > NewName Then Exit For Next LB.AddItem NewName, i End Sub Je reçois en retour le message d'erreur suivant : "Erreur d'exécution '438' - Propriété ou méthode non gérée par cet objet" Je ne comprends pas pourquoi. Merci pour votre aide |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Salut,
Ce n'est pas un userform, on ne peut pas écrire sheets(1).combobox1 quand on crée à la volée, mais testes plutôt: AddNameToComboBox PI.Name, selection.object Cela s'appliquera à la 2 eme combo créée. Autre approche qui devrait fonctionner, j'ai pas testé dim Lacombo1 as MSForms.ComboBox dim Lacombo2 as MSForms.ComboBox Dim PT As PivotTable Dim PI As PivotItem set Lacombo1= ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", Link:=False, _ DisplayAsIcon:=False, Left:=170, Top:=19, _ Width:=150, Height:=17).object Set PT = ActiveWorkbook.Sheets("Données").PivotTables("TCD comparaison d'états NB") set lacombo2= ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", Link:=False, _ DisplayAsIcon:=False, Left:=357, Top:=19, _ Width:=150, Height:=17).object For Each PI In PT.PivotFields("Entité").PivotItems If Left(PI.Name, 8) <> "AFFAIRES" Then AddNameToComboBox PI.Name, lacombo1 End If Next 'faire le traitement pour le 2 eme combo A+++ |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Zon,
Je te remercie pour le temps que tu as bien voulu me consacrer. La question était peut être un peu ambigüe et je l'ai reponsé dans un autre fil. http://www.excel-downloads.com/html/French/forum/messages/1_115212_115212.htm Vous êtes donc deux à m'avoir aidé à me sortir de ce piège... Bonne continuation et merci encore |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|