Embedded dans la feuille de calcul en plus de Cela, j'ai aussi encaissé un bouton que lorsque j'appuie dessus, je veux qu'il prenne la valeur de n'importe quel avis? Suis un débutant absolu dans VBA, alors s'il vous plaît soyez aussi détaillé que possible. Merci p> p> Stade1 Code> J'ai une liste déroulante de contrôle de formulaire nommée
ComboBox_Test code> et il a sélectionné la valeur
x code>
Combobox_test Code> et placez-le dans
quelque chose.aux (y) code>. Mais je ne peux pas le faire travailler et je suis un peu frustré. Peut-être que vous pouvez me signaler dans la bonne direction p>
6 Réponses :
activesheet.cells(1,putItRng.column).value=activesheet.combobox_test.value
Vous devez faire référence par activeworkbook.activeHeet («Cause plusieurs classeurs chacun ont une feuille d'activité). Les lignes (1) vous donnent toute la gamme de toutes les colonnes de la rangée 1 ... Allez étape par étape. Essayez de trouver la source réelle du problème en utilisant deux msgbox, un pour le côté gauche, l'autre pour le côté droit de l'affectation suggérée ci-dessus. Cela fera mieux d'identifier ce qui est le problème. Je suppose que votre objet nommer est faux.
Je ne suis pas sûr que c'est ce que vous voulez, mais c'est un début. L'objet de forme n'a pas de propriété de valeur, qui est la source de l'erreur. Il existe un objet déroulant qui est obsolète, mais toujours disponible.
Remarque, Dropdowns (et les combogoxes, les boutons, etc.) sont obsolètes car si vous choisissez de grouper plusieurs formes ensemble, les contrôles qui sont en groupe n'apparaissent pas dans ces objets de collecte. Donc, je suppose que ce commentaire est juste une prudence de ne pas mettre votre contrôle dans des formes groupées aussi longtemps que vous utilisez cette méthode (que j'utilise moi-même) :)
Sub QuickSelect_Change() With ActiveSheet.Shapes("QuickBox") MsgBox "My Selected Value " & .ControlFormat.List(.ControlFormat.ListIndex) End With End Sub
Merci. Parfait!
ActiveSheet.Shapes("combobox_test").ControlFormat.ListIndex
Bien que cela puisse répondre à la question, il serait préférable d'expliquer pourquoi c'est la bonne solution.
La réponse votée la plus élevée fait référence à la collection Dropdowns, mais alain a mentionné que cela a été obsolète car "si vous choisissez de grouper plusieurs formes ensemble, des contrôles qui sont en groupe n'apparaissent pas dans ces objets de collecte". La collection de formes est un autre moyen de faire référence à un contrôle de forme Combobox, mais Carlos Post n'a pas fonctionné pour moi.
Je viens d'essayer ActiveHeet.shapes ("ComboBox_Test"). Controlformat.Value Code> et a trouvé le même résultat. Certains scénarios pourraient trouver cela comme un style de codage plus approprié.
Comme indiqué avant que la forme Combobox n'a pas de propriété de valeur.
J'utilise la propriété DrawingObject de l'objet de forme pour obtenir une case à cocher FormControl objet. Cette case à cocher peut ensuite être utilisée comme n'importe quel autre formulaire. P>
Vous devez également utiliser le DrawinObject pour obtenir le formoBox Objcet Former l'objet de forme. P>
Si vous souhaitez obtenir le texte sélectionné, vous pouvez essayer le code suivant Snipped: < / p>
Merci de se battre avec ceci celui-ci mais ce sujet m'a donné une réponse. Je ne connais pas une différence de méthode1 ou de méthode2 Type de référence, la valeur peut être lue en utilisant .value | .list code> attributs. Il serait génial d'avoir une variable OBJ entièrement typée.
Dim obj As Object
Set obj = ws.DropDowns("combo1") ' method 1
Set obj = ws.Shapes("combo1").ControlFormat ' method 2
Debug.Print obj.value & "|" & obj.List(obj.value) ' 1...n|Text1,Text2,..n
Erreur de temps d'exécution
438 code>. L'objet ne prend pas en charge cette propriété ou cette méthode ... et il affiche la ligne
putitrng.rows (1) = Activeheet.shapes ("ComboBox_Test"). Valeur code>