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
Par contre quand je veux ajouter une autre 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
le but est d'avoir sur la feuille2, trois colonne avec les titres, les clés et les résumés
le fichier source qui alimente la colonne 1 est un fichier xml formater comme suit :
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
...
TITRE mon titre
KEY ma clé
RESUME mon résumé
TITRE mon titre
KEY ma clé
RESUME mon résumé
...
Partager