IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insertion tableau 2D avec longueur de ligne variable [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 85
    Par défaut
    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

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaies comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TbLig = Split(sContenu, vbCrLf)
     
    ReDim Tableau(0 To UBound(TbLig))
    For i = 0 To UBound(TbLig) - 1
        Tableau(i) = Split(TbLig(i), Chr(9))
        Range("A1").Offset(i, 0).Resize(1, UBound(Tableau(i)) + 1) = Tableau(i)
    Next i

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 85
    Par défaut
    Bonjour Mercatog,

    Et merci, t'es vraiment une machine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau croisé avec plus de 2 variables
    Par Oreo_ dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 18/07/2014, 17h03
  2. [WD18] Tableau montants avec ajout de lignes
    Par Goose_ dans le forum WinDev
    Réponses: 12
    Dernier message: 15/11/2013, 09h32
  3. Tableau avec nombre de lignes variable
    Par grrd dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 28/05/2013, 12h05
  4. Requête INSERT ou UPDATE avec saut de ligne
    Par CinErarY dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/05/2007, 04h38
  5. [XSLT] aide pour faire un tableau HTML avec fusion de lignes
    Par utwor dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 02/01/2006, 21h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo