écrire dans un fichier excel

cs_antonio75 Messages postés 38 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 18 mai 2007 - 27 avril 2007 à 10:10
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 27 avril 2007 à 10:50
Bonjour à tous,

voila, j'ai un petit pb. A partir de mon prog VB, je crée un fichier excel et je le rempli avec des infos d'une BdD Access. Je souhaiterais inserer du texte dans la 1ere ligne (entêtes) mais je sais pas trop comment m'y prendre. En cherchant un peu, j'ai trouvé une fonction Cells(x,x) mais quand j'essaie de l'utiliser ca déconne. Si quelqun pouvait m'aider...

merci d'avance,

++, Antoine.

7 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 avril 2007 à 10:12
Salut,
Bien qu'il est déjà beaucoup de sujet traitant du pilotage d'EXCEL depuis VB6, il aurait été bon tout demême pour étoffer ta question, de nous mettre le bout de code que tu as déjà fait.

Cells(x, y) devrait effectivement répondre à ta question utilises Cells(x, y).value = TonTitre

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_antonio75 Messages postés 38 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 18 mai 2007
27 avril 2007 à 10:24
Private Sub Gen_Prel_Click()
Dim Date_ech As Date
Dim Connexion As New ADODB.Connection
Dim Provider As String
Dim Connect As String
Dim g As Integer
Dim champ1 As String
Dim champ2 As String
Dim champ3 As String
Dim champ4 As String
Dim champ5 As String
Dim champ6 As String
Dim champ7 As String
Dim champ8 As String
Dim champ9 As String
Dim champ10 As String

On Error GoTo erreur
'*** connexion Fichier Base Access 2000,XP
Provider = "Microsoft.JET.OLEDB.4.0"
Connect = "\\Serveur03\Base.mdb"

'**** Connexion à la Base de données
With Connexion
.Provider = Provider
.ConnectionString = Connect
.ConnectionTimeout = 6
.CommandTimeout = 60
.Open
End With

If Month(Date) = 12 Then
Date_ech = CDate("01/" & Month(Date) + 1 & "/" & Year(Date) + 1)
Else
Date_ech = CDate("01/" & Month(Date) + 1 & "/" & Year(Date))
End If

Set rst = New ADODB.Recordset
rst.Open "SELECT NOMPRENOM, MATRICULE, DATEECHEANCE, CODEBANQUE, CODEGUICHET, NUMCOMPTE, CLERIB, LIBELEBANQUE, MONTANTINITIALE FROM echeancier WHERE (DATEECHEANCE = #" & Format(Date_ech, "mm/dd/yyyy") & "#) ORDER BY NOMPRENOM", Connexion, adOpenDynamic, adLockOptimistic
rst1.Open "SELECT SONNOM, ARVMAT, ARVENCOURS FROM DB1 WHERE (ARVENCOURS = 1)", Connexion, adOpenDynamic, adLockOptimistic

g = FreeFile
Open "C:\prelevements.xls" For Output As #g

While Not (rst.EOF)
champ1 = rst("NOMPRENOM")
champ2 = rst("MATRICULE")
champ4 = rst("CODEBANQUE")
champ5 = rst("CODEGUICHET")
champ6 = rst("NUMCOMPTE")
champ7 = rst("CLERIB")
champ8 = rst("LIBELEBANQUE")
champ9 = rst("MONTANTINITIALE")
rst1.MoveFirst
While Not rst1.EOF
If (rst1("ARVMAT") = rst("MATRICULE")) Then
rst2.Open "SELECT ARVMAT, ARVSOCIETE, ARVNOIMM FROM DB1 WHERE (ARVMAT = '" & rst("MATRICULE") & "')", Connexion, adOpenDynamic, adLockOptimistic
champ3 = rst2("ARVNOIMM")
If IsNull(rst2("ARVSOCIETE")) Then
Print #g, champ1 & " ; " & champ2 & " ; " & champ3 & " ; " & champ4 & " ; " & champ5 & " ; " & champ6 & " ; " & champ7 & " ; " & champ8 & " ; " & champ9
Else
champ10 = rst2("ARVSOCIETE")
Print #g, champ1 & " ; " & champ2 & " ; " & champ3 & " ; " & champ4 & " ; " & champ5 & " ; " & champ6 & " ; " & champ7 & " ; " & champ8 & " ; " & champ9 & " ; " & champ10
End If
rst2.Close
End If
rst1.MoveNext
Wend
rst.MoveNext
Wend

Close #g
MsgBox (" Le fichier a été généré")
rst.Close
rst1.Close

erreur:
Exit Sub
End Sub
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 avril 2007 à 10:28
Salut,
Je pense que plutot que de passer par cette facon de procéder (Open .. Print, ) tu devrait directement piloter Excel
Ajoute Microsoft Excel Object Library en référence à ton projet et tu pourras alors utiliser les Objets WorkBook, Application, WorkSheet, Range, CElls

Car la avec ce que tu as actuellement, Cells n'est pas reconnu.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_antonio75 Messages postés 38 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 18 mai 2007
27 avril 2007 à 10:32
j'ai une erreur, 1004 : la methode cells a échoué
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 avril 2007 à 10:35
Salut,
Toujours pareil, sans code j'vais pas aller loin moi

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_antonio75 Messages postés 38 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 18 mai 2007
27 avril 2007 à 10:36
j'ai ajouté la librairie Excel et j'ai ajouté
Cells(1, 1).Value = "Nom" juste apres le Open.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 avril 2007 à 10:50
Salut,
Non si tu décides d'uiliser les objet Excel, il faut oublier les Open

Déjà va voir ce snippet Comment ouvrir un classeur Excel Vierge depuis VB6
Et ensuite essaies de comprendre la philosophie de cette facon de faire.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Rejoignez-nous