Bonjour à tous,
à la suite d'une conversion d'un fichier texte en tableau, je cherche à intégrer celui-ci sur ma "Feuil3" d'Excel.

Il y a dans mon code 4 parties :
  • les déclarations
  • la lecture du fichier
  • le stockage dans un tableau 2D
  • l'écriture dans ma Feuil3 (problème dans cette partie)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    Dim tableau(), tab_line() As String
    Dim i As Long, j As Long
    Dim fso As IWshRuntimeLibrary.FileSystemObject
    Dim oTs As IWshRuntimeLibrary.TextStream
    Dim sFichiertxt As String, sContenu As String, sLigne As String
 
    ChDir ThisWorkbook.Path
    ChDrive ADR
    If (Fichier_et3 <> "") Then
        sFichiertxt = Fichier_et3
    Else
        sFichiertxt = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    End If
 
    Set fso = New IWshRuntimeLibrary.FileSystemObject
 
    Set oTs = fso.OpenTextFile(sFichiertxt, ForReading)
 
    Do Until oTs.AtEndOfStream
        sContenu = oTs.ReadAll
    Loop
 
    tab_line = Split(sContenu, vbCrLf)
    ReDim tableau(0 To UBound(tab_line))
    For i = 0 To UBound(tab_line)
        tableau(i) = Split(tab_line(i), Chr(9))
    Next i
 
    'Sheets("Feuil3").Select
 
    Application.EnableEvents = False
    With Worksheets("Feuil3")
        .Range("A1").Resize(UBound(tableau, 1), UBound(tableau, 2)) = tableau 'Erreur ici
    End With
    Application.EnableEvents = True
Le fait est que la longueur de la ligne est variable donc je reçois tout le temps l'erreur "L'indice n'appartient pas à la sélection" dans mon "UBound(tableau, 2)".

Quelqu'un saurait comment traiter ce problème sans toutefois rentrer dans une boucle ? (car mes fichiers sont lourds)

Merci d'avance,

Cordialement

Au pire si quelqu'un connait une méthode "bouclée" assez rapide qui n'hésite pas, de toute façon je n'avance pas... !

J'avais peut être pensé à trouver la ligne possédant le plus de colonnes et à intégrer dans toutes les autres lignes un nombre de caractère égal à la différence de caractère entre les 2 lignes ... Ce n'est qu'une idée je ne sais pas trop comment la mettre en place... !

Cordialement