Affecter une variable définie par l'utilisateur à un variant
skirby
Messages postés96Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention26 juillet 2007
-
5 avril 2006 à 16:40
MAXIMO71
Messages postés46Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention 7 juin 2007
-
8 avril 2006 à 12:55
Bonjour tout le monde,
j'aurais voulu savoir si il était possible d'affecter une variable dont j'ai défini le type à une variable de type variant.
Mon but est de pouvoir utiliser la même variable dans mon code mais celle ci peut "pointer" vers une structure différente.
Cela donne un truc du genre :
' --- Dans un module
Public Type T_Norm160
texte As String * 160
crlf As String * 2
End Type
Public Type T_Norm480
texte As String * 480
crlf As String * 2
End Type
Public T160 As T_Norm160
Public T480 As T_Norm480
Public Function fnt_test()
Dim T As Variant
T = T160 ' ICI j'ai une erreur (cf capture plus bas)
MsgBox Len(T)
End Function
' --- Dans la form principale
Private Sub Form_Load()
fnt_test
End Sub
Merci d'avance pour vos réponse.
A+
A voir également:
Affecter une variable définie par l'utilisateur à un variant
MAXIMO71
Messages postés46Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention 7 juin 2007 5 avril 2006 à 18:34
Je ne suis pas certain de la réponse mais as tu essayé
Set T = T160
C'est une solution pour affecter un variant à un objet, je ne sais pas si cela va fonctionner dans ton cas
De plus pourquoi déclarer T comme variant et non pas comme T_Norm160
quelle utilisation futur comptes tu faire de T qui nécessite qu'il soit
déclaré en variant?
MAXIMO71
PS Si la réponse vous satistait
pensez à la valider
skirby
Messages postés96Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention26 juillet 2007 6 avril 2006 à 08:01
Salut MAXIMO71,
Set T = T160 ne va pas car Set permet uniquement d'affecter des objets et ma variable n'est pas une variable de type objet.
Je ne peux pas déclarer T comme variable de type T_Norm160 car je veux pouvoir manipuler avec une même variable des variables de type T_Norm160 et T_Norm480 afin de simplifier mon code le plus possible et ne pas avoir à dupliquer mon code sous prétexte que je doit travailler avec deux strutures différentes.
En réalité, j'aurai un truc du genre:
Public Type T_Norm160
v1 As String * 10
v2 As String * 100
v3 As String * 50
crlf As String * 2
End Type
Public Type T_Norm480
v1 As String * 10
v2 As String * 100
v3 As String * 50
v4 As String * 320
crlf As String * 2
End Type
On peut voir que les deux tructures diffère uniquement à la fin et que le début et le même.
Ensuite, je veux écrire le contenu de ces structures dans un fichier.
Donc si je pouvais manipuler avec une même variable les deux types de structure, j'aurais un code plus simple.
MAXIMO71
Messages postés46Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention 7 juin 2007 8 avril 2006 à 12:55
Bonjour,
La nuit m'a peut être porté conseil, si je comprend seul v4 est dans le
type T_Norm480 alors pourquoi ne pas juste tester v4 pour savoir
si tu as l'une ou l'autre des normes. Je m'explique, pour quoi ne pas
juste déclarer le type T_Norm comme tu le fais dans 480 et tester si la
variable v4 est nulle ou pas pour définir la norm 160. Cela t'évite de
doubler ton code, en revanche il introduit un test, si tu dois le faire
souvant passe par une fonction de test que tu appelles à volonté.
Voilà en espérant avoir un peu contribuer à t'aider.
Bonne journée.
MAXIMO71
PS Si la réponse vous satistait
pensez à la valider