Résultat de Split dans tableau 2D VBA

Résolu
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

  1. 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)
    1. 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"
  2. 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.
    1. Contributeur
      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
    2. Merci, je vais tester ça.
  3. 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.