cs_PrX
Messages postés91Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention 2 novembre 2005 6 janv. 2003 à 13:11
Salut,
Je vois ce ke tu ve faire.
Je te dis tout de suite que c'est pas le pied, et cé du genre fastidieux.
Voilà, un extrait d'un de mes progs,
Dim Livre As New Excel.Workbook 'le fichier tableur complet
Dim Feuille As New Excel.Worksheet 'la feuille sur laquelle tu veux travailler
Dim Fenetre As Excel.Window 'en fait, tu ouvres excel
' je me répète, c'est un code perso, il ouvre et créer un .xls et remplie une BdD access traduite par son Recordset ADO
' certaines astuces, comme pour lire le nom de fichier, sont intéressantes
Sub DBByExcel(FileName As String, rec As ADODB.Recordset)
Dim FileTab() As String
Dim FileLng As Long
Dim RowIndex As Long
Set Livre = Workbooks.Open(FileName, , True) ' on charge excel et le fichier .xls
' ton fichier est caché dans le N'ème rép de Windows XP dans Mes Documents, tu écris une fois la chaîne complète et tu extrait le nom de fichier (surtout pratique quand tu utilises les listes de fichiers ou le .OpenFile d'un contrôle CommonDialog
' la var fenetre est juste faite pour en écrire moins par après.
Set Fenetre = Livre.Windows(FileTab(FileLng))
' idem pour feuille qui est la var principale du code
' le code lit la donnée d'une case colonne après colonne et ligne après ligne pour les réécrire dans la base de données
Set Feuille = Livre.Sheets("feuil1")
Feuille.Activate
With Feuille
RowIndex = 1
Do While .Cells(RowIndex, 1) <> ""
rec.AddNew
For i = 1 To 7
rec(i - 1) = .Cells(RowIndex, i)
Next i
rec.Update
RowIndex = RowIndex + 1
Loop
End With
Fenetre.Close (False)
' on ferme la fenetre sans sauvegarder les modis (le False)
End Sub
Il est entendu qu'il te faut ajouter la bibliothèques Excel à ton programme...
Pour écrire dans le fichier .xls tu fais l'inverse de mon code :
Feuille.Cells ( ligne, colonne) = données.
STCManiak
Messages postés9Date d'inscriptionlundi 6 janvier 2003StatutMembreDernière intervention16 mai 2003 6 janv. 2003 à 13:30
-------------------------------
Réponse au message :
-------------------------------
> Salut,
>
> Je vois ce ke tu ve faire.
> Je te dis tout de suite que c'est pas le pied, et cé du genre fastidieux.
>
> Voilà, un extrait d'un de mes progs,
>
> Dim Livre As New Excel.Workbook 'le fichier tableur complet
> Dim Feuille As New Excel.Worksheet 'la feuille sur laquelle tu veux travailler
> Dim Fenetre As Excel.Window 'en fait, tu ouvres excel
>
> ' je me répète, c'est un code perso, il ouvre et créer un .xls et remplie une BdD access traduite par son Recordset ADO
> ' certaines astuces, comme pour lire le nom de fichier, sont intéressantes
>
> Sub DBByExcel(FileName As String, rec As ADODB.Recordset)
> Dim FileTab() As String
> Dim FileLng As Long
> Dim RowIndex As Long
>
> Set Livre = Workbooks.Open(FileName, , True) ' on charge excel et le fichier .xls
>
> ' ton fichier est caché dans le N'ème rép de Windows XP dans Mes Documents, tu écris une fois la chaîne complète et tu extrait le nom de fichier (surtout pratique quand tu utilises les listes de fichiers ou le .OpenFile d'un contrôle CommonDialog
>
> FileTab = Split(FileName, "")
> FileLng = UBound(FileTab)
>
> ' la var fenetre est juste faite pour en écrire moins par après.
>
> Set Fenetre = Livre.Windows(FileTab(FileLng))
>
> ' idem pour feuille qui est la var principale du code
> ' le code lit la donnée d'une case colonne après colonne et ligne après ligne pour les réécrire dans la base de données
>
> Set Feuille = Livre.Sheets("feuil1")
> Feuille.Activate
> With Feuille
> RowIndex = 1
> Do While .Cells(RowIndex, 1) <> ""
> rec.AddNew
> For i = 1 To 7
> rec(i - 1) = .Cells(RowIndex, i)
> Next i
> rec.Update
> RowIndex = RowIndex + 1
> Loop
> End With
>
> Fenetre.Close (False)
> ' on ferme la fenetre sans sauvegarder les modis (le False)
>
> End Sub
>
>
> Il est entendu qu'il te faut ajouter la bibliothèques Excel à ton programme...
> Pour écrire dans le fichier .xls tu fais l'inverse de mon code :
> Feuille.Cells ( ligne, colonne) = données.
>
> J'espère que ca t'aidera
>
> A plus
>
Merci les gars, je vais essayer ça!!
a+
>
> PrX
, :-p Initiate To VB6 And Completely Crazy