Types de variables en VBA
Les variables vues dans cette vidéo sont:
Integer, Long, LongLong, LongPtr, Currency, Decimal, Single, Double, Objet, Date, Type défini par l'utilisateur et Collection
Code source
Option Explicit
Const pi As Single = 3.1415926
Sub test_integer()
Dim i
'For i = 0 To 100000 Step 10000
' Debug.Print i
'Next
Debug.Print VarType(i)
i = 0
Debug.Print VarType(i)
i = "0"
Debug.Print VarType(i)
End Sub
Sub test_decimal()
Dim d As Variant
d = CDec(100 / 3)
Debug.Print d
d = CDec("1,12345678")
Debug.Print d
End Sub
Sub test_objet()
Dim Feuille As Object
Dim Nom As String * 50
Set Feuille = Worksheets(1)
Nom = "Nom fichier """ & Feuille.Name & """"
Debug.Print Nom
Nom = "Nom fichier " & Chr(34) & Feuille.Name & Chr(34)
Debug.Print Nom
End Sub
Sub test_date()
Dim d1 As Date, d2 As Date
d1 = 1.86
Debug.Print d1
Debug.Print Format(d1 + 1, "m/dd/yyyy")
Debug.Print Format(d1 + 1, "dddd d mmmm yyyy")
Debug.Print Format(d1 + 1, "long date") & " " & Format(d1 + 1, "long time")
'd2 = Date
'Debug.Print d2 - d1
End Sub
*****************
Définition de Type à mettre dans un module
Type Voiture
matricule As String
proprietaire As String
marque As String
DateMEC As Date
End Type
Sub test_type()
Dim maVoiture As Voiture
With maVoiture
.proprietaire = "A123456"
.DateMEC = "01/03/2000"
.marque = "Mercedes"
.matricule = "1A12345"
End With
Debug.Print maVoiture.matricule
Dim mesVoitures(1 To 3) As Voiture
With mesVoitures(1)
.proprietaire = "A123456"
.DateMEC = "01/03/2000"
.marque = "Mercedes"
.matricule = "1A12345"
End With
With mesVoitures(2)
.proprietaire = "A123456"
.DateMEC = "01/03/2005"
.marque = "Hyundai"
.matricule = "2B12345"
End With
With mesVoitures(3)
.proprietaire = "A123456"
.DateMEC = "01/03/2015"
.marque = "Jeep"
.matricule = "2W12345"
End With
Debug.Print "mes voitures"
Dim i As Byte
For i = 1 To 3
Debug.Print mesVoitures(i).matricule & " " & mesVoitures(i).marque
Next
End Sub
Sub test_collection()
Dim col As New Collection, i As Byte
'Set col = New Collection
col.Add "Maroc", "1"
col.Add "Canada", "2"
col.Add "Belgique", "3"
Debug.Print "Nbr équipes:" & col.Count
Debug.Print "liste en utisant un compteur"
For i = 1 To col.Count
Debug.Print col(i)
Next
Debug.Print "liste en utilisant for each"
Dim el
For Each el In col
Debug.Print el
Next
col.Remove "2"
Debug.Print "liste en utilisant for each apres suppression"
For Each el In col
Debug.Print el
Next
End Sub
Function aireDisque(r As Single)
aireDisque = pi * r * r
End Function
Sub test()
Debug.Print aireDisque(1)
End Sub
Commentaires