Résultat de Split dans tableau 2D VBA
Résolu
Galgante
-
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
Dans le tableau suivant:
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...
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
-
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)
-
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.-
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 -
-
-
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.