Résultat de Split dans tableau 2D VBA [Résolu/Fermé]

Signaler
-
 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...

3 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 156
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)
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"
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.
Messages postés
16431
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 avril 2021
3 161
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
Merci, je vais tester ça.
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.