Tester une variable de type variant

Tester une variable de type variant

Messagepar Michael DELIQUE » 11 Mai 2007 à 18:59

Cette fonction permet de savoir si un variant est renseigné.

Code : Tout sélectionner
Public Function TestVariant(vrValue As Variant) As Integer
   
   'Cette fonction permet de savoir si un variant est renseigné.
   'renvois false si la variable est vide, nul ou égale à nothing
   'si la variable est une liste ou un tableau renvoi false si il n'y a aucune ligne
   
   'déclaration Variable
   Dim i As Long
   
   On Error Goto ErreurHandle
   
   Select Case Datatype(vrValue)
   Case 0,1, 10 'EMPTY,NULL, OLE error
      TestVariant = False
   Case 9 'OLE object  or NOTHING
      If vrValue Is Nothing Then
         TestVariant = False
      Else
         TestVariant = True
      End If      
   Case Else
      
      If Isempty(vrValue) = True Then
         TestVariant = False
         Exit Function
      End If
      
      i = 0
      If Isarray(vrValue) Or Islist(vrValue) Then
         Forall Value In vrValue
            i = i+1
            If i > 2 Then
               'pour eviter un traitement trop long s'il ya bcp de valeurs
               Exit Forall
            End If
         End Forall
         
         If i = 0 Then
            TestVariant = False
         Else
            TestVariant = True
         End If
      Else
         TestVariant = True
      End If
      i = 0
   End Select
   
   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   TestVariant = False
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 02 Nov 2010 à 17:27

une variante permettant de savoir si un variant contient un array ou une liste exploitable

Code : Tout sélectionner
 Function TestArray(wvrValue As Variant) As Boolean
   
'Cette fonction permet de savoir si le variant contient un array ou une liste exploitable
'cad contenant au moins une occurence
   
   'déclaration Variable
   Dim i As Integer
   
   On Error Goto ErreurHandle
   
   TestArray = False
   
   Select Case Datatype(wvrValue)
   Case 0 To 11,13 To 17
      Exit Function
   Case Else
      
      If Isempty(wvrValue) = False Then
         If Isarray(wvrValue) Or Islist(wvrValue) Then
            i = 0
            Forall Value In wvrValue
               i = i+1
               If i > 2 Then
               'pour eviter un traitement trop long s'il ya bcp de valeurs
                  Exit Forall
               End If
            End Forall
            
            If i > 0 Then
               TestArray = True
            End If
         End If      
      End If
   End Select   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   TestArray = False
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 03 Nov 2010 à 10:18

Code : Tout sélectionner
Function TypeArray(wvrValue As Variant) As String
   
'Cette fonction permet de savoir quelle type de donné contient la list ou l'array
   
   On Error Goto ErreurHandle
   TypeArray = ""
   
   Select Case Datatype(wvrValue)
   Case 0 To 11,13 To 17
      Exit Function
   Case Else       
      If Isarray(wvrValue) = True Then
         TypeArray = Trim(Strleft(Ucase(Typename(wvrValue)),"("))
      Elseif Islist(wvrValue) = True Then
         TypeArray = Trim(Strleft(Ucase(Typename(wvrValue))," LIST"))
      End If      
   End Select   
   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   TypeArray = ""
   Exit Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Divers