Excel-VBA: Obtenir des valeurs de Contrôles de Formulaire
Incorporé dans la feuille de calcul sheet1
j'ai un Formulaire de Contrôle de zone de liste déroulante nommée combobox_test
et il a choisi la valeur x
en plus de cela, j'ai aussi embbeded un bouton qui, lorsque je presse, je tiens à prendre la valeur de combobox_test
et le placer dans something.Rows(y)
. Mais je ne peux pas le faire fonctionner et je suis un peu frustré. Peut-être que vous pouvez me pointer dans la bonne direction
Sub ButtonPressed_sample()
Dim value As String
Set putItRng = Range("theCells")
putItRng.Rows(1) = ActiveSheet.Shapes("combobox_test").Value
End Sub
Tout conseiller? Je suis un débutant absolu en VBA, donc veuillez être aussi précis que vous le pouvez. Grâce
quelle est l'erreur que vous obtenez?
Erreur d'exécution
Erreur d'exécution
438
. Cet objet ne gère pas cette propriété ou cette méthode... et il montre la ligne putItRng.Rows(1) = ActiveSheet.Shapes("combobox_test").Value
OriginalL'auteur Carlos | 2010-11-18
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que c'est ce que vous voulez, mais c'est un début. La Forme de l'objet n'a pas une Valeur de la propriété, qui est la source de l'erreur. Il y a une liste Déroulante objet qui est obsolète, mais toujours disponible.
OriginalL'auteur
OriginalL'auteur
Le plus voté répondre références les listes déroulantes de la collection, mais Alain mentionné que c'était déconseillé, parce que si vous choisissez de regrouper plusieurs formes, des contrôles qui sont dans les groupes n'apparaissent pas dans les objets de collection". Les formes de la collection est un autre moyen de faire référence à une zone de liste déroulante contrôle de formulaire, mais Carlos post ne fonctionne pas pour moi.
J'ai juste essayé de
ActiveSheet.Shapes("combobox_test").ControlFormat.Value
et trouvé qu'il a obtenu le même résultat. Certains scénarios pourrait être plus approprié de style de codage.OriginalL'auteur
Essayer:
Si cela ne fonctionne pas alors votre zone de liste déroulante n'est pas nommé "Combobox_test"
Vous devez référence par ActiveWorkbook.Activesheet ('cause de plusieurs classeurs ont, chacun, une Activesheet). Les lignes(1) vous donne l'ensemble de la gamme de toutes les colonnes dans la ligne 1... Aller étape par étape sur cette. Essayez de trouver la source du problème à l'aide de deux Msgbox, un pour le côté gauche, l'autre pour le côté droit de la ci-dessus suggère d'affectation. Qui permettra de mieux cerner ce qui est la question. Je devine votre objet de nommage est faux.
OriginalL'auteur
Comme l'a dit avant la Forme de la zone de liste déroulante n'a pas de Valeur de propriété.
- Je utiliser le DrawingObject propriété de la Forme de l'objet pour obtenir une Case à cocher FormControl objet. Cette Case à cocher objet peut alors être utilisé comme n'importe quel autre FormControl.
Vous devez également être en mesure d'utiliser le DrawinObject pour obtenir la zone de liste déroulante objcet de la forme de l'objet.
Si vous souhaitez obtenir te le texte sélectionné, alors vous pouvez essayer le code suivant ciselée:
OriginalL'auteur