Bonjour a tous,

J'ai un souci d'alimentation de tableau a plusieurs dimensions.
Le principe est de parcourir la colonne A et de vérifier la présence d"une chaine, si oui alimente le tableau avec la valeur d'une autre cellule.

j'arrive à alimenter une dimension
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Dim plage As Range, cell As Range
Dim wks As Worksheet
Set wks = Worksheets("Feuil1")
Set plage = Range("A1:A" & wks.UsedRange.Cells.Count)
Dim i As Integer
Dim Tableau() As Variant
 
i = 0
For Each cell In plage
    If cell.Value = "TITRE" Then
    'Définit la taille du tableau et le type de données.
    ReDim Preserve Tableau(i)
    Tableau(i) = cell.Offset(0, 3).Value   'Alimente les éléments du tableau
    i = i + 1
    End If
Next
Sheets("Feuil2").Select
Range("A1:A" & i).Value = Application.WorksheetFunction.Transpose(Tableau)  'transpose : mise en colonne les données d'une liste
Sheets("Feuil1").Select
Par contre quand je veux ajouter une autre dimension ...
le but est d'avoir sur la feuille2, trois colonne avec les titres, les clés et les résumés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Dim plage As Range, cell As Range
Dim wks As Worksheet
Set wks = Worksheets("Feuil1")
Set plage = Range("A1:A" & wks.UsedRange.Cells.Count)
Dim i As Integer, j As Integer
Dim Tableau() As Variant
i = 0
j = 0
For Each cell In plage
 
    If cell.Value = "TITRE" Then
j = 0
    ReDim Preserve Tableau(i, j)
    Tableau(i, j) = cell.Offset(0, 3).Value
    i = i + 1
 
    End If
 
    If cell.Value = "KEY" Then
    ReDim Preserve Tableau(i)
    Tableau(i) = cell.Offset(0, 3).Value
    j = j + 1
    End If
 
    If cell.Value = "RESUME" Then
    'Définit la taille du tableau et le type de données.
    ReDim Preserve Tableau(i)
    Tableau(i, j) = cell.Offset(0, 3).Value    'Alimente les éléments du tableau
    j = j + 1
    End If
Next
Sheets("Feuil2").Select
Range("A1:C" & i).Value = Application.WorksheetFunction.Transpose(Tableau)  'transpose : mise en colonne les données d'une liste
le fichier source qui alimente la colonne 1 est un fichier xml formater comme suit :
...
TITRE mon titre
KEY ma clé
RESUME mon résumé
TITRE mon titre
KEY ma clé
RESUME mon résumé
...