MsFlexGrid : Erreur 30010 - Valeur de colone non valide...

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 26 sept. 2009 à 03:47
Orlean2 Messages postés 50 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 1 décembre 2015 - 26 sept. 2009 à 14:30
Bonjour,

J'ouvre un fichier que je transforme en tableau pour ensuite completer un flexgrid mais sur certain fichier ça plante et je ne sais pas pourquoi.

Mon fichier est en format .csv (tableau par ";")

        'Ouverture du fichier liste pour extraction des données
        varString = vbNullString
        Open GetUserFilesPath & varListingFileName & ".csv" For Input As #1
            While Not EOF(1)
                Line Input #1, intval
                varString = varString & intval & vbCrLf
            Wend
        Close 1
        
        'Sequençage des données
        varTable = Split(varString, vbCrLf)
        For i = 0 To UBound(varTable) - 1
            Flexgrid.Row = Flexgrid.Rows - 1
            varSubTable = Split(varTable(i), ";")
            For y = 0 To UBound(varSubTable)
                Flexgrid.Col = y
                Flexgrid.Text = varSubTable(y)
                Flexgrid.CellAlignment = varColsAlign(y)
            Next y
            If i < UBound(varTable) - 1 Then Flexgrid.AddItem vbNullString
        Next i



Le fichier est bien ouvert, pas de problème, pourtant avec certain fichier il me fait l'erreur sur la ligne
FlexGrid.Col = y
Flexgrid.Col à une valeur de -1 à cet endroit lors du plantage alors qu'il à une valeur de 0 en temps normal.

Si jamais quelqu'un à une idée.

Merci à tous.

Guillaume

4 réponses

Orlean2 Messages postés 50 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 1 décembre 2015
26 sept. 2009 à 12:20
Remplacer les point virgule par des chr(9)

a$ = "Amelie;part;au;travail"

'Remplacer a$ par le contenu du fichier

While InStr(a$, ";")
Mid(a$, InStr(a$, ";"), 1) = Chr(9)
Wend
0
Orlean2 Messages postés 50 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 1 décembre 2015
26 sept. 2009 à 12:22
Bonjour a tous excuser moi pour avoir répondu sans annonce au préalable
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
26 sept. 2009 à 14:16
Bonjour Orlean2,

Merci pour ta réponse mais je ne vois pas le rapport avec mon problème, ce n'est pas le coupage de mes données qui me créé des soucis.


Guillaume
0
Orlean2 Messages postés 50 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 1 décembre 2015
26 sept. 2009 à 14:30
Excuse si je n'ai pas compris je te pose un exemple ou tu a qu'a changer le nom de fichier sa marche avec un cvs de Outlook Express
repond si cela a été

Private Sub Command1_Click()
'si il y a la premier line en titre
Titre = 0 'Titre 0= la primier ligne est pas un titre
'Titre 1= la premier ligne est un titre
If Titre = 1 Then
MSFlexGrid1.FixedRows = 0
MSFlexGrid1.Rows = 0
Else
MSFlexGrid1.Rows = 1

End If

MSFlexGrid1.Clear

MSFlexGrid1.Cols = 100
Libre = FreeFile 'recherche canal libre

'Open "Nom du fichier" For Input As #Libre
Open "c:\essai.csv" For Input As #Libre
I = 0
While Not EOF(Libre)

Line Input #Libre, a$
While InStr(a$, ";")
Mid(a$, InStr(a$, ";"), 1) = Chr(9)
Wend

MSFlexGrid1.AddItem Str(I) + Chr(9) + a$
I = I + 1
Wend
Close #Libre
MSFlexGrid1.FixedRows = 1

End Sub
0
Rejoignez-nous