Changement Entête de cases Excell

Résolu
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 12 janv. 2008 à 00:00
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 12 janv. 2008 à 20:07
Bonsoir,

lors de l'export d'une table ACCES à un fichier Ecell, je voulais que les libellés des champs de ma tables soient modifié au niveau du fichier Excell.
Est ce que cela est possible?

Merci d'avance!

Le savoir est la lumière de nous tous, partageons le!

7 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
12 janv. 2008 à 16:46
Mon explication n'était pas très claire effectivement... et un peu erronée. Ce n'est pas le CopyFromRecordset qui gère les noms de champs, mais bien la requête SQL elle-même.

Sous ADO, je ne sais pas trop, mais ça devrait quand même ressembler à ça (c'est écris sous DAO)

strSQL = "Select NomChampUn As NouveauNom From MaTable"
Set Rs = Db.OpenRecordset(strSQL) 'changer pour connexion ADO

'Écriture des entêtes (les Alias seront considérés)
      For I = 0 To Rs.Fields.Count - 1
          'Ici, les noms de champs seront ceux de la base
          'sauf si tu leur as donné un nom d'Alias avec AS
          Sheets("MaFeuille").Range("A1").Offset(0, I) = Rs.Fields(I).Name
      Next

Comme on vient de copier les entêtes sur la ligne 1, on va copier les enregistrements à partir de A2
Sheets("MaFeuille").Range("A2").CopyFromRecordset Rs

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
12 janv. 2008 à 20:07
Merci MPi, tu m'as montré le bon chemin, voici la modif à faire:
il faut changer cette ligne:
req = "SELECT * FROM `" & Combo2.Text & "`"
par
req = "SELECT 1erchamp as [NOUVEAU NOM], 2emechamp as [NOUVEAU CHAMP] {ect} FROM `" & Combo2.Text & "`"
et le tour est joué merci encore une fois!

Le savoir est la lumière de nous tous, partageons le!
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 janv. 2008 à 01:36
Modif catégorie de la question en VBA (Access, Excel se programment en VBA, pas en VB6)

Non, les noms des champs sont fournies par le fichier exporté de Access.
Donc, tu ne pourras les modifier qu'après avoir fait l'import, ce sont les noms apparaissant sur la première ligne de la feuille Excel (normalement)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
12 janv. 2008 à 01:49
Ok Merci mais est ce qu'on peut les modifier une fois le fichier exporté sans les toucher je veux dire automatiquement après export?

Le savoir est la lumière de nous tous, partageons le!
0

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

Posez votre question
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
12 janv. 2008 à 09:04
salut
moi,pour exporter mes données Access vers Excel j'utilise la commande "données" qui se trouve dans excel et à partir de la tu peut choisir de ne pas rapatrier le non des champs et tu actualise à chaque ouverture de ton fichier Excel.
dans Excel 2007 tu vas dans
données
a partir du fichier Access
tu vas chercher ton fichier Access
voila
@plus
petchy
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
12 janv. 2008 à 13:58
Personnellement, pour importer dans Excel à partir d'Access, j'utilise la commande
Range("A1").CopyFromRecordset MonRecordset

Donc, si tu fais un query en utilisant des Alias, tu devrais pouvoir modifier le nom des champs au moment de l'importation.

ex:
Select NomChampUn As NouveauNom From MaTable
"NouveauNom" deviendra l'intitulé de la colonne.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
12 janv. 2008 à 16:03
Merci MPi peux tu stp m'expliquer d'avantage cette méthode je te prie, moi je procède de cette manière pour exporter ma table ACCES à EXCEL:

Private Sub createFile()
    Dim fileName As String
    Dim appExcel As Excel.Application
   
    ' Exécution d'Excel
    Set appExcel = CreateObject("Excel.Application")
    ' Attribut de visibilité d'Excel
    appExcel.Visible = False
    ' Pour éviter les questions!!!
    appExcel.AlertBeforeOverwriting = False
    appExcel.DisplayAlerts = False

    ' Déclaration du chemin du fichier Excel
    Dim cheminFichierExcel As String
    ' Déclaration du fichier Excel à ouvrir
    Dim fichierExcel As Excel.Workbook
   
    ' remplissage du fichier
    Dim bd As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim req As String
    Dim i As Integer
    bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & File1.Path & "" & File1.fileName
    bd.Open
    If Check1.Value = 0 Then
        ' Ouverture du fichier Excel
        fileName = Combo2.Text & ".xls"
        Set fichierExcel = appExcel.Workbooks.Add
        req = "SELECT * FROM `" & Combo2.Text & "`"
        Rs.Open req, bd, adOpenForwardOnly, adLockReadOnly
        ' remplissage du fichier excel
        If Not (Rs.EOF And Rs.BOF) Then
            ' Ecriture des en-têtes de colonnes et des valeurs
            generateExcel Combo2.Text, Rs, appExcel
        End If
        Rs.Close
        fichierExcel.Close True, File2.Path & "" & fileName
        File2.Refresh
        MsgBox "Fichier généré avec succès", vbOKOnly, "Access2Excel"
    Else
        For i = 0 To (Combo2.ListCount - 1)
            ' Ouverture du fichier Excel
            fileName = Combo2.Text & ".xls"
            Set fichierExcel = appExcel.Workbooks.Add
            Combo2.ListIndex = i
            req = "SELECT * FROM `" & Combo2.Text & "`"
            Rs.Open req, bd, adOpenForwardOnly, adLockReadOnly
            ' remplissage du fichier excel
            If Not (Rs.EOF And Rs.BOF) Then
                ' Ecriture des en-têtes de colonnes et des valeur
                generateExcel Combo2.Text, Rs, appExcel
            End If
            Rs.Close
            fichierExcel.Close True, File2.Path & "" & fileName
        Next i
        Combo2.ListIndex = 0
        File2.Refresh
        MsgBox "Fichiers générés avec succès", vbOKOnly, "Access2Excel"
    End If
    bd.Close
    appExcel.quit

End Sub

Le savoir est la lumière de nous tous, partageons le!
0
Rejoignez-nous