Nom du type VBA

Cet article montrera l'utilisation de la fonction VBA TypeName.

Le VBA NomType La fonction est utilisée pour déterminer le type de données stockées dans une cellule, ou le type d'un objet sélectionné - par exemple une feuille de calcul, une plage ou une cellule, ou un contrôle sur un formulaire.

Détermination du type de données dans une cellule

Pour déterminer le type de données dans une cellule, nous pouvons utiliser la fonction TypeName avec la propriété Cells.

123 Sous TestCellDataType()MsgBox "Le type de données dans " & Cells(3, 2).Address & " is " & TypeName(Cells(3, 2).Value)Fin du sous-marin

Si nous exécutons ce code ci-dessus avec la feuille de calcul ci-dessous, la boîte de message nous indiquera quel type de données se trouve dans la cellule.

Détermination du type d'objet sélectionné

Nous pouvons également utiliser TypeName pour déterminer quel type d'objet a été sélectionné dans une feuille de calcul - une plage ou un graphique par exemple.

123 Sélection de sous-test()MsgBox "Vous avez sélectionné un " & TypeName (Sélection)Fin du sous-marin

Ou, si nous sélectionnons un graphique :

Nous pouvons explorer encore plus loin et sélectionner les objets dans le graphique, et la macro renverra ce que nous avons sélectionné.

Tout cela peut être très utile dans la construction de notre projet VBA soit pour contrôler le flux du code, soit pour empêcher les erreurs de se produire en testant pour s'assurer que le bon type d'objet est sélectionné, ou que le bon type de données est entré dans une cellule .

Utilisation de TypeName sur les contrôles de formulaire

VBA nous permet de créer des formulaires interactifs que l'utilisateur peut remplir et renvoyer des données au code à utiliser de différentes manières. Nous pouvons utiliser l'opérateur TypeName pour déterminer le type de contrôles qui sont utilisés sur un formulaire.

Dans l'exemple ci-dessous, j'ai créé un formulaire utilisateur avec une variété de contrôles - quelques zones de texte, une zone de liste déroulante, 2 boutons d'option, 2 cases à cocher et 3 boutons de commande.

À l'aide du code ci-dessous, je peux déterminer le type de contrôles sur le formulaire en parcourant tous les contrôles du formulaire. J'ai utilisé la fonction TypeName pour renvoyer un message avec le type du contrôle avec une instruction VBA IF pour vérifier quel type de contrôle est sélectionné.

123456 Sous WhatControlType()Dim ctl comme objetPour chaque ctl In Me.ControlsMsgBox "Le contrôle est un " & TypeName(ctl)ctl suivantFin du sous-marin

Ce type de code peut être très utile si l'on souhaite activer ou désactiver des contrôles. Dans le code ci-dessous, lors de la première ouverture du formulaire, les cases d'option et les cases à cocher sont désactivées.

123456789101112 Private Sub UserForm_Initialize()Dim ctl comme objetPour chaque ctl In Me.ControlsSi TypeName(ctl) = "CheckBox" Alorsctl.Enabled = FalseElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = FalseAutrectl.Enabled = TrueFin sictl suivantFin du sous-marin

Pour activer les boutons d'option et les cases à cocher, j'ai écrit du code supplémentaire derrière le bouton Activer les contrôles.

12345678910 Sous-cmdEnable_Click () privéDim ctl comme objetPour chaque ctl In Me.ControlsSi TypeName(ctl) = "CheckBox" Alorsctl.Enabled = Non ctl.EnabledElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = Non ctl.EnabledFin sictl suivantFin du sous-marin

La fonctionnalité de ce code peut également être créée à l'aide de l'opérateur VBA TypeOf.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave