Conditionnement d'un type de données d'un paramètre de fonction
Fermé
Victor Porée
Messages postés
75
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
30 mai 2017
-
24 avril 2017 à 20:39
Victor Porée Messages postés 75 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 30 mai 2017 - 24 mai 2017 à 17:22
Victor Porée Messages postés 75 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 30 mai 2017 - 24 mai 2017 à 17:22
A voir également:
- Conditionnement d'un type de données d'un paramètre de fonction
- Fonction si et - Guide
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Remettre parametre usine pc - Guide
- Durée de fonctionnement processeur ✓ - Forum Windows 10
3 réponses
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
24 avril 2017 à 20:56
24 avril 2017 à 20:56
Bonjour,
Tu peux utiliser le type Variant ainsi que le mot clé [ Optional ].
Exemple :
En utilisant le type [ Variant ], chaque variable peut contenir
n'importe quel [ Type ]. Et en utilisant le mot clé [ Optional ],
l'argument peut ne pas être présent.
Avec une combinaison des deux, tu devrais pouvoir obtenir
le comportement souhaité.
K
Tu peux utiliser le type Variant ainsi que le mot clé [ Optional ].
Exemple :
Public Sub EssaiParamatres(ByVal pArg1 As Variant, Optional ByVal pArg2 As Variant, Optional ByVal pArg3 As Variant)
Select Case pArg1
Case "1"
' Traiter le cas 1
Case "2"
' Traiter le cas 2
' etc...
End Select
End Sub
En utilisant le type [ Variant ], chaque variable peut contenir
n'importe quel [ Type ]. Et en utilisant le mot clé [ Optional ],
l'argument peut ne pas être présent.
Avec une combinaison des deux, tu devrais pouvoir obtenir
le comportement souhaité.
K
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
25 avril 2017 à 13:35
25 avril 2017 à 13:35
Bonjour,
Autre possibilité qui est moins utilisé et pourtant très efficace
est de créer des structures [ Type ].
Ainsi, tu peux n'avoir qu'un seule variable qui contiendra, tous les
types dont tu as besoin.
Ainsi, tu pourras avoir tous les types nécessaires
au déroulement des opérations à l'intérieur d'une seule
structure (d'une seule variable).
J'utilise beaucoup cette façon de faire avec des structures imbriquées.
K
Autre possibilité qui est moins utilisé et pourtant très efficace
est de créer des structures [ Type ].
Ainsi, tu peux n'avoir qu'un seule variable qui contiendra, tous les
types dont tu as besoin.
Option Explicit
Type TypBloc
Cible As Range
Valeur As String
Limite As Double
Compteur As Long
Identifiant As Integer
Val1 As Integer
Val2 As Long
Val3 As Double
Val4 As Variant
End Type
Type TypBoite
Bte1 As TypBloc
Bte2 As TypBloc
Bte3 As TypBloc
End Type
Sub Essai(ByRef LaVariable1 As TypBloc, ByRef LaVariable2 As TypBloc)
Select Case LaVariable1.Val1
Case 1
Set LaVariable2.Cible = LaVariable1.Cible
Case 2
LaVariable2.Valeur = LaVariable1.Valeur
Case 3
' etc...
End Select
End Sub
Ainsi, tu pourras avoir tous les types nécessaires
au déroulement des opérations à l'intérieur d'une seule
structure (d'une seule variable).
J'utilise beaucoup cette façon de faire avec des structures imbriquées.
K
Victor Porée
Messages postés
75
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
30 mai 2017
2
24 mai 2017 à 17:22
24 mai 2017 à 17:22
Merci pour les réponses !
Je ne vous ai pas oubliés, j'ai juste mis ce problème en suspens. Je vous tiens au courant. :)
--
Je ne vous ai pas oubliés, j'ai juste mis ce problème en suspens. Je vous tiens au courant. :)
--
25 avril 2017 à 12:06
Merci pour ta réponse ! :)
Je l'avais déjà testé, et ça fonctionne, effectivement. Mais l'inconvénient, c'est qu'il faut jouer avec les virgules (ou points-virgules) pour obtenir le bon type de données. Ce qui n'est finalement pas très pratique. L'intérêt serait d'avoir à la même position de paramètre, par exemple, tantôt un , tantôt un . Et puis j'ai pas mal de types à déclarer, alors les paramètres n'en finiraient pas.
Sinon, est-il possible de modifier le type de données d'une variable au cours de la procédure ?
25 avril 2017 à 12:44
Tout ceci n'est pas très clair !
« Sinon, est-il possible de modifier le type de données d'une variable au cours de la procédure ? » Non, en VBA, il n'est pas possible de modifier le type d'une variable.
Par contre il est possible de déterminer le type de variable contenue dans une variable déclarée en Variant à l'aide des fonctions VarType ou TypeName :
Si nécessaire, tu peux réaffecter ensuite cette variable à une autre variable de type correspondant (par exemple pour bénéficier de l'intellisense) :