VB6 tableau X ligne avec 5 Colonnes

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Salut...


Je me suis fais un tableau avec X ligne(s) et 5 Colonnes
Quand j'arrive à remplir le tableau il y a une erreur. J'ai mit l'erreur en gras...
Si quelqu'un peut me dire qu'est ce que j'ai pas fait de correct...
Erreur dit: Indice hors de la plage

Public Tableau() As Variant


Public Sub Parcourir_Fichier_text(aMesLignes)


    Dim i As Integer, j As Integer, LineCount As Integer
    Dim SplitLine() As String

    LineCount = 0


    For i = 0 To UBound(aMesLignes)


        If LineCount = 0 Then                           
            ReDim Tableau(4, LineCount)
        Else
            ReDim Preserve Tableau(4, LineCount)
        End If


        SplitLine = Split(aMesLignes(i), " ")


        For j = 0 To UBound(SplitLine)


                If j = 0 Then
                    Tableau(0, LineCount) = Trim(SplitLine(j))
                ElseIf j = 1 Then
                    Tableau(1, LineCount) = Trim(SplitLine(j))
                ElseIf j = 2 Then
                    Tableau(2, LineCount) = Trim(SplitLine(j))
                ElseIf j = 3 Then
                    Tableau(3, LineCount) = Trim(SplitLine(j))
                ElseIf j = 4 Then
                    Tableau(4, LineCount) = Trim(SplitLine(j))
                End If


                LineCount = LineCount + 1
            End If
        Next


    Next i

10 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
Es tu sûr que le séparateur pour ton tableau de variables est bien l'espace ?

Sinon, faire

        SplitLine = Split(aMesLignes(i), " ")

        For j = 0 To UBound(SplitLine)

                If j = 0 Then
                    Tableau(0, LineCount) = Trim(SplitLine(j))
                ElseIf j = 1 Then
                    Tableau(1, LineCount) = Trim(SplitLine(j))
                ElseIf j = 2 Then
                    Tableau(2, LineCount) = Trim(SplitLine(j))
                ElseIf j = 3 Then
                    Tableau(3, LineCount) = Trim(SplitLine(j))
                ElseIf j = 4 Then
                    Tableau(4, LineCount) = Trim(SplitLine(j))
                End If

                LineCount = LineCount + 1
            End If
        Next

reviens à faire

        SplitLine = Split(aMesLignes(i), " ")

        For j = 0 To UBound(SplitLine)
                Tableau(j, LineCount) = Trim(SplitLine(j))
                LineCount = LineCount + 1
            End If
        Next

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
20
Salut Jeff (de retpour de promenade).

Vas jeter un coup d'oeil à ton autre discussion...
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Salut...


J'ai faite une affaire du genre mais ca me sort l'erreur suivante....
Erreur d'exécution 9
Indice hors de la plage


Public Sub Parcourir_Fichier_text(aMesLignes)


    Dim i As Integer, j As Integer, LineCount As Integer
    Dim SplitLine() As String
    Dim intCompteur As Integer


    LineCount = 0


    For i = 0 To UBound(aMesLignes)


        If LineCount = 0 Then
            ReDim Tableau(4, LineCount)
        Else
            ReDim Preserve Tableau(4, LineCount)
        End If


        SplitLine = Split(aMesLignes(i), " ")


        For j = 0 To UBound(SplitLine)
            Tableau(j, LineCount) = Trim(SplitLine(j)) 'ERREUR
            LineCount = LineCount + 1
        Next


Next i


End Sub


 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
beh l'erreur est clair, t'as un problème dans tes indices...

dans ça :
        For j = 0 To UBound(SplitLine)
            Tableau(j, LineCount) = Trim(SplitLine(j)) 'ERREUR
            LineCount = LineCount + 1
        Next

Si UBound(SplitLine) est égal à 4,
tu auras Tableau(0, 0)
puis Tableau(1, 1)
puis Tableau(2, 2)
puis Tableau(3, 3)
puis Tableau(4, 4)

d'ailleurs, faire
        For j = 0 To UBound(SplitLine)

            Tableau(j, LineCount) = Trim(SplitLine(j)) 'ERREUR

            LineCount = LineCount + 1

        Next

reviendrai également à faire :
        For j = 0 To UBound(SplitLine)

            Tableau(j, j) = Trim(SplitLine(j)) 'ERREUR
<strike>
            LineCount = LineCount + 1</strike>

        Next

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
20
Tu as tout ce qu'il te faut de l'autre côté.


Arrête de te creuser les méninges ...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
20
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Salut vous deux...
toujours de sporb...

615490 jmfmarques  si je prend ton code.... al;ors ce donne ca...

Public Sub Parcourir_Fichier_text(aMesLignes)


    Dim i As Integer, j As Integer, LineCount As Integer
    Dim SplitLine() As String
    Dim intCompteur As Integer


 


    For i = 0 To UBound(aMesLignes)
        LineCount = 0
        If LineCount = 0 Then
            ReDim Tableau(4, LineCount)
        Else
            ReDim Preserve Tableau(4, LineCount)
        End If


        SplitLine = Split(aMesLignes(i), " ")


        For j = 0 To UBound(SplitLine)
            If Trim(SplitLine(j)) <> "" Then
                Tableau(0, j) = Trim(SplitLine(j)) 'ERREUR indice en dehors de la plage
            End If
        Next
                
    Next i


End Sub

J'ai le même prob ?????
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
J'ai trouvé

Public Sub Parcourir_Fichier_text(aMesLignes)


    Dim i As Integer, j As Integer, LineCount As Integer
    Dim SplitLine() As String
    Dim intCompteur As Integer


 


    For i = 0 To UBound(aMesLignes)
        LineCount = 0
        If LineCount = 0 Then
            ReDim Tableau(4, LineCount)
        Else
            ReDim Preserve Tableau(4, LineCount)
        End If


        SplitLine = Split(aMesLignes(i), " ")


        For j = 0 To UBound(SplitLine)
            If Trim(SplitLine(j)) <> "" Then
                Tableau( j, LineCount ) = Trim(SplitLine(j))
            End If
        Next
        LineCount = LineCount + 1
    Next i


End Sub

merci
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonsoir,

pas tout à fait !

For i = 0 To UBound(aMesLignes)
        LineCount = 0
        If LineCount = 0 Then
comment veux-tu qu' il en soit autrement ?!!!

Plutôt
LineCount = 0
For i = 0 To UBound(aMesLignes)
       If LineCount = 0 Then
       ...
      
Pour l' erreur tu as bien compris que  tu intervertissais Indice de ligne et indice de colonne

On en parle plus ...
<hr />Pour faire le portrait d' un poisson:
Peindre d' abord un fond.Versez-y ensuite beaucoup beaucoup d' eau.

* Rolling   
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
voici ce qui , en principe, devrait arranger les choses
For i = 0 To UBound(aMesLignes)-1
      ReDim Preserve Tableau(i,4)
      SplitLine = Split(aMesLignes(i), " ")
       For j = 0 To 4
           If Trim(SplitLine(j)) <> "" Then
              Tableau(i,j) = Trim(SplitLine(j))
           End If
        Next j
Next i