Résultat de Split dans tableau 2D VBA

Résolu/Fermé
Galgante - 2 nov. 2010 à 14:17
 Galgante - 3 nov. 2010 à 10:12
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 nov. 2010 à 15:02
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
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 nov. 2010 à 15:58
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
Merci, je vais tester ça.
0
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