tablo=[A1:G10].value
msgbox application.index(tablo,3,2)
ligne=application.index(tablo,3,0)'on obtient la ligne 3 complète dans un array 1 dim
'juste pour voir
msgbox join(ligne)
macolonne= application.index( tablo,0,3)
msgbox macolonne(1,1)
monarray=application.transpose(macolonne)
msgbox monarray(1)'ici plus de 2d dimension
Sub test()
'récupération de certaines ligne du tableau toutes les colonnes
tablo = [A1:G10]
'--------------------------------------------------------------------------
'on determine les lignes que l'on veut
lignes = [{1;3;5;7;9}] 'exprimé en matricielle dans evaluate abrégé !![on obtient un tableau 2 dim(x lignes,1 colonne)]!!
'ou la meme chose
'lignes = Application.Transpose(Array(1, 3, 5, 7, 9))
'--------------------------------------------------------------------------
'--------------------------------------------------------------------------
'on determine les colonnes que l'on veut
colonnes = Evaluate("column(A1:G1)")'exprimé en matricielle dans evaluate abrégé !![on obtient un tableau 1 dim(x items)]!!
'ou la meme chose
colonnes = Array(1, 2, 3, 4, 5, 6, 7)
'--------------------------------------------------------------------------
newtablo = Application.Index(tablo, lignes, colonnes)
[I1].Resize(UBound(newtablo), UBound(newtablo, 2)) = newtablo
End Sub
colonnes = Array(3,5,1,7,2,4,6)
Sub test()
'récupération de toutes les lignes du tableau certaines colonnes
tablo = [A1:G10]
'--------------------------------------------------------------------------
'on détermine les lignes que l'on veut
lignes = Evaluate("row(1:10)") 'exprimé en matricielle dans evaluate ![on obtient un tableau 2 dim(x lignes,1 colonne)]!!
'ou la meme chose
'lignes = Application.Transpose(Array(1,2,3,4,5,6,7,8,9,10))
'--------------------------------------------------------------------------
'--------------------------------------------------------------------------
'on détermine les colonnes que l'on veut
colonnes = Array(1, 4, 6, 7)
'--------------------------------------------------------------------------
newtablo = Application.Index(tablo, lignes, colonnes)
[I1].Resize(UBound(newtablo), UBound(newtablo, 2)) = newtablo
End Sub
colonnes = Array(7,4,1,6)
Sub testIndex()
Dim Lgn As Integer
Dim Tbl As Variant
With Worksheets("Test")
Tbl = .UsedRange.Value
For Lgn = 1 To UBound(Tbl, 1)
If Application.CountA(Application.Index(Tbl, Lgn, 0)) = 0 Then
MsgBox Lgn
End If
Next Lgn
End With
End Sub
Sub testIndex()
Dim Lgn As Integer, Tbl As Variant
With Worksheets("Test")
'Tbl = .UsedRange.Value
For Lgn = 1 To .UsedRange.Rows.Count ' UBound(Tbl, 1)
Debug.Print "ligne:" & Lgn & ": " & Application.CountA(.UsedRange.Rows(Lgn)) & " case(s) pleine(s)"
If Application.CountA(.UsedRange.Rows(Lgn)) = 0 Then
MsgBox Lgn
End If
Next Lgn
End With
End Sub
Si j'utilise une Boucle sur les Lignes de la plage , ça détecte les Lignes Vides !
Utilisez CountA pour compter le nombre de cellules qui contiennent des données dans une plage ou un tableau.
For i = LBound(Tbl, 1) To UBound(Tbl, 1)
Texte = Join(Application.Index(Tbl, i), ";")
Print #FileNumber, Texte
Next i
For i = LBound(Tbl, 1) To UBound(Tbl, 1)
For j = LBound(Tbl, 2) To UBound(Tbl, 2)
TblTemp(j) = Tbl(i, j)
Next j
Print #FileNumber, Join(TblTemp, ";")
Next i