VB6 tableau X ligne avec 5 Colonnes

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 11 juil. 2007 à 19:14
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 12 juil. 2007 à 00:32
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 juil. 2007 à 19:21
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
11 juil. 2007 à 19:24
Salut Jeff (de retpour de promenade).

Vas jeter un coup d'oeil à ton autre discussion...
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
11 juil. 2007 à 19:34
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


 
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 juil. 2007 à 19:39
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
11 juil. 2007 à 19:40
Tu as tout ce qu'il te faut de l'autre côté.


Arrête de te creuser les méninges ...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
11 juil. 2007 à 19:48
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
11 juil. 2007 à 20:07
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 ?????
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
11 juil. 2007 à 20:30
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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
11 juil. 2007 à 23:40
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   
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
12 juil. 2007 à 00:32
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
0
Rejoignez-nous