Importer un classeur excel dans vb6

cs_feihung Messages postés 4 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 26 mars 2004 - 9 mars 2004 à 11:42
3Pom Messages postés 90 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 7 octobre 2004 - 10 mars 2004 à 12:49
bonjour!

désireux de réussir mon programme, j'ai décidé de m'encquérir de votre aide à vous collègues informaticiens!!

voilà, je tente d'afficher et dans sa forme le contenu d(un classeur excel (1300 ignes et 30 colonnes)
dans un tableur sous VB6.0 que j'ai créé avec le contrôle MSFlexGrid.

Comment faire??

Voici ce que j'ai fait:

Private Sub Form_Load()

'definition de la largeur des colonnes
MSFlexGrid1.ColWidth(1) = 2000 'taille en twips où 1cm=567 twips
For i = 2 To 29
MSFlexGrid1.ColWidth(i) = 1700
Next i
'definition de l'alignement des colonnes
For i = 1 To 29
MSFlexGrid1.ColAlignment(i) = 0 'alignement des cellules 0=gauche 1=droite 2=centre
Next i
'affichage des en tetes de ligne et de colonnes

For i = 1 To 1299
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i
Next i

For i = 1 To 29
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = i
MSFlexGrid1.Text = Chr(64 + i)
Next i

'lecture des données à afficher et affichage
Open "D:\Documents and Settings\Administrateur\Bureau\Passeport Culturel\Tableau général PCA 2003 2004.txt" For Input As #1
For i = 1 To 1299
MSFlexGrid1.Row = i
For j = 1 To 29
MSFlexGrid1.Col = j
Input #1, a
MSFlexGrid1.Text = a
Next j
Next i
Close #1

End Sub

l'erreur est "une erreur d'exécution '62'
l'entrée dépasse la fin de fichier"

ça fait 2h et demi que je travaille à résoudre ça, et j'n'yarrive paaaas!!!!

Merci d'avance pour votre aide!!

5 réponses

3Pom Messages postés 90 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 7 octobre 2004
9 mars 2004 à 12:46
Je pense ke le + simple pour toi est d'utiliser un contrôle grille ki prend en charge l'affichage de fichiers excel et là je pense principalement au VsFlexGrid. Tu pourras le trouver si mes souvenirs st exact sur www.videosoft.com. Tu verras il est tres facile à utiliser et bcp + pratique ke ts les contrôles de microsoft.

Bonne prog
0
cs_feihung Messages postés 4 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 26 mars 2004
9 mars 2004 à 14:14
Merci mais cela ne m'aide pas beaucoup!!
Je ne désire pas acheter le produit que propose

ComponentOne LLC

Même s'il s'agit du plus génial des logiciel dédié à sa fonction!

Il faut vraiment que je réussisse mon opération, car c'est celle qui m'a été demandé, désolé de ne pas l'avoir énoncé plus tôt!

Merci quand même de ta réponse 3Pom!

cordialement, A L'AIDE!!!!!!!
0
3Pom Messages postés 90 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 7 octobre 2004
9 mars 2004 à 16:22
Bon ds ce cas utilise +tôt des objets Excel.application c bcp + facile ke de faire ce ke tu fais ac 1 open. Avec ca tu boucle + facilement sur les lignes et les colonnes
0
cs_feihung Messages postés 4 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 26 mars 2004
10 mars 2004 à 11:04
Oui je vois ce que tu veux dire, j'ai d'ailleurs trouvé cette source,

Private Sub Command1_Click()
Dim strAppPath As String
Dim excel_app As Object
Dim excel_sheet As Object
Dim Row As Integer
Dim new_value As String

Screen.MousePointer = vbHourglass
DoEvents

On Error GoTo CloseFile
strAppPath = App.Path
If Right$(strAppPath, 1) <> "" Then strAppPath = strAppPath & ""
' Create the Excel application.
Set excel_app = CreateObject("Excel.Application")

' Open the Excel spreadsheet.
excel_app.Workbooks.Open FileName:=strAppPath & "D:\Documents and Settings\Administrateur\Bureau\Passeport Culturel\tab.xls"

' Check for later versions.
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If

Row = 1
Do
' Get the next value.
new_value = CStr(Trim$(excel_sheet.Cells(Row, 1)))
' See if it's blank.
If Len(new_value) = 0 Then Exit Do
'MSF is the Flexgrid's name
MSF.AddItem new_value
Row = Row + 1
Loop

CloseFile:
excel_app.ActiveWorkbook.Close False
' Close Excel.
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
Screen.MousePointer = vbDefault
End Sub

ai s étant vraiment débutant en la matière, j'arrive pas à voir ce que signifie: "Screen.MousePointer = vbHourglass
DoEvents" par exemple, serait-il possible que tu me traduises les lignes de commandes?? je sais c'est quand même beaucoup demandé, alors je ne t'en voudrais pas si tu ne pouvais consacrer ce temps, jte remercie ds ts les cas!!

Je fais ça car, je n'ai même pas la collection MSDN pour m'aider à les comprendre!

see you later...
0

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

Posez votre question
3Pom Messages postés 90 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 7 octobre 2004
10 mars 2004 à 12:49
1 - Screen.MousePointer = vbHourglass

Permet de transformer le curseur de la souris en sablier pr montrer k'un traitement est entrain d'être effectué par la machine.

2 - DoEvents
Permet d'intercepter les evenement au cours d'une boucle sinon aucune procedure evenementielle n'est appellée
0
Rejoignez-nous