Résultat de Split dans tableau 2D VBA

Résolu
Galgante -  
 Galgante -
Bonjour,

Je cherche à récupérer des valeurs dans une feuille 1 (colonne 1) et les placer dans un tableau à 2 dimensions.

- Description du contenu de ma colonne feuille 1: 480 lignes, le contenu de chaque ligne est un ensemble de valeurs séparées par des virgules (sur 1 colonne)
Ligne 1 = [valeur1, valeur2, valeur3,... ,valeur 20]

Je cherche à mettre le résultat de
For i = 0 To 480
    tab1(i) = Split(Worksheets("feuille 1").Cells(i + 1, 1), ",") 'Séparation 
   Next i

Dans le tableau suivant:
Dim tab2(480,20)




NB: Lors d'un test d'espionnage de la variable tab1, le debugger me sort un tableau, mais je ne trouve pas comment y accéder en code...

A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Par exemple :

Dim i As Integer
Dim j As Integer

     For i = 0 To 480
          For j = 0 To 20
               MsgBox tab2(i,j)
          Next j
     Next i


;o)
0
Galgante
 
Bonjour,

Merci pour la tentative, mais mon problème n'est pas le fait de parcourir un tableau 2D, mais de récupérer dans un tableau 2D les données générées par la fonction "Split"
0
Galgante
 
A la place d'un code VBA, j'ai utilisé la fonction Excel suivante, qui fonctionne très bien:
Données/Convertir...
J'ai ensuite sélectionné ma colonne...

Si quelqu'un sait comment faire en VBA, je suis tout de même preneur.

Cdlt.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

en VBA restitution en feuille2 (testé sur 3 lignes et 2 valeurs par ligne)

Sub decouper_lig()
Dim derlig As Integer
Dim tablo, temp
derlig = Range("A1000").End(xlUp).Row - 1
ReDim tablo(derlig, 19)
For cptr = 0 To derlig
    temp = Split(Sheets(1).Cells(cptr + 1, 1), ",")
    For col = 0 To UBound(temp)
        tablo(cptr, col) = temp(col)
    Next
Next
Sheets(2).Range("A1:B" & derlig + 1) = tablo

End Sub
0
Galgante
 
Merci, je vais tester ça.
0
Galgante
 
Voici la version finale de mon code, tirée de la version de michel_m:

Sub decouper_lig()
    Dim derlig As Integer
    Dim tablo, temp
    Dim col As Integer
    
On Error GoTo Errorr
    derlig = Worksheets("VAR L39 ligne").Range("A1000").End(xlUp).Row - 1
    col = 0
    ReDim tablo(derlig, 19)
    For cptr = 0 To derlig
        temp = Split(Worksheets("VAR L39 ligne").Cells(cptr + 1, 1), ",")
        For col = 0 To 19
            tablo(cptr, col) = temp(col)
        Next col
    Next cptr
    Worksheets("Feuil2").Range("A1:T" & derlig + 1) = tablo
    Exit Sub
Errorr:
    MsgBox Err.Number & " " & Err.Description & vbCrLf & "Col: " & col & vbCrLf & "Lig: " & cptr & vbCrLf & "Derlig: " & derlig
    Worksheets("Feuil2").Range("A1:T" & derlig + 1) = tablo
End Sub


Encore merci.
0