1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Sub UneCellule()
Dim var As Variant
'---
'### CAS 1 : Le variant représente une seule cellule
[a1] = 3.14
var = Range("a1")
'---
MsgBox "Le variant représente une seule cellule et ne contient qu'une seule valeur" & _
vbCrLf & vbCrLf & "var = " & var
'--- Inscription
Range("E1") = var
End Sub
Sub UnePlageCellules()
Dim var As Variant
Dim i As Long
Dim j As Long
Dim A As String
Dim R As Range
'---
'### CAS 2 : Le variant représente une plage de cellules
'### Ce sera un variant tableau de variants qui aura toujours 2 dimensions (une pour les lignes, l'autre pour les colonnes)
'### Dans l'exemple ci-dessous, on travaille sur la plage A1:A10
For i = 1 To 10
Range("a" & i) = i
Next i
var = [a1].CurrentRegion
'---
For i = 1 To UBound(var, 1) ',1 la dimension ligne(s)
For j = 1 To UBound(var, 2) ',2 la dimension colonne(s)
A = A & var(i, j) & vbCrLf
Next j
Next i
'---
MsgBox "Le variant représente une plage et contient un tableau de variants. Tableau à 2 dimensions" & _
vbCrLf & vbCrLf & "Nombre de lignes = " & UBound(var, 1) & _
vbCrLf & "Nombre de colonnes = " & UBound(var, 2) & _
vbCrLf & vbCrLf & "Les valeurs :" & vbCrLf & A
'--- Inscription
Set R = Range("e1").Resize(UBound(var, 1), UBound(var, 2))
R = var
End Sub |
Partager