Ouvrir un fichier xls existant et travailler dessus

STCManiak Messages postés 9 Date d'inscription lundi 6 janvier 2003 Statut Membre Dernière intervention 16 mai 2003 - 6 janv. 2003 à 10:48
STCManiak Messages postés 9 Date d'inscription lundi 6 janvier 2003 Statut Membre Dernière intervention 16 mai 2003 - 6 janv. 2003 à 13:30
Voilà, j'aimerais enffet, ouvrir un fichier excell déjà existant et lui affecté des données provenant de mes listboxs,testboxs, variables,...

Merci d'avances pour vos réponses
A+

3 réponses

cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 1
6 janv. 2003 à 12:51
'Ouverture du fichier
X% = Shell("exel.exe toto.xls", 2)
DoEvents
Rep = DoEvents()
'Active la liaison DDE
'trans étant un textbox
trans.LinkTopic = "EXCEL|TOTO.XLS"
Rep = DoEvents()
trans.LinkItem = ""
Rep = DoEvents()
trans.LinkMode = 2

'Affecte une valeur
trans.LinkItem = "L10C4"
trans = "Toto"
Trans.linkpoke

'Agrandit la fenêtre
Cmd = "[APP.AGRANDISSEMENT()]"
trans.LinkExecute Cmd
Rep = DoEvents()

voila , bon courage....
0
cs_PrX Messages postés 91 Date d'inscription lundi 16 septembre 2002 Statut Membre Derniè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

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

PrX
, :-p Initiate To VB6 And Completely Crazy
0
STCManiak Messages postés 9 Date d'inscription lundi 6 janvier 2003 Statut Membre Dernière intervention 16 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
0
Rejoignez-nous