IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Exportation d'une table ACCESS vers une feuille deja existante d'EXCEL


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut Exportation d'une table ACCESS vers une feuille deja existante d'EXCEL
    Bonjour à tous,

    Voici mon probleme j'aimerais exporter ma table d'access "Cumul_Nvx_clients_par_semaine" vers un fichier excel "Semaine.xls" et dans la feuille "S0" puis cette feuille "S0" j'amerais la copier dans "S15".

    Le probleme est juste au niveau du code je pense, j'arrive pas à exporter cette table dans une feuille deja existante puis la copier dans le meme fichier Excel, car pour chaque semaine je souhaite remplacer les données dans S0, puis les données dans S0 les mettrent dans la feuille "Semaine -1"

    J'espere que vous m'avez suivi, si vous voulez je vous donne le code que j'ai actuellement fait....


    Merci beaucoup pour votre aide.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Ce serait plus facile de t'aider avec ton code. Au moins te mettre sur les bonnes pistes.

    A+

    pgz

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu pourrais peut-être lier ta tableau excel comme on lie une table.

  4. #4
    Membre actif Avatar de zEndymion
    Homme Profil pro
    Responsable des applications
    Inscrit en
    Avril 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des applications
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2006
    Messages : 162
    Points : 203
    Points
    203
    Par défaut
    Salut,

    Voiçi une petite procédure (un peu "brut de fonderie"), qui demande à être améliorée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
     
     
    Sub ExportTblAccessInExcel()
     
     
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim Xlapp As Excel.Application
    Dim XlBook As Excel.Workbook
    Dim XlSheet As Excel.Worksheet
     
     
     
    On Error GoTo errOuvrirExcel
    Set Xlapp = GetObject(, "Excel.Application")
     
    On Error GoTo oups:
     
    Xlapp.Visible = True
     
     
    Set XlBook = Xlapp.Workbooks.Open("c:\SEMAINE.xls")
    Set XlSheet = XlBook.Sheets("S0")
     
    ' efface les données
    XlSheet.Cells.Clear
     
    Set Db = CurrentDb
     
    ' Copie dans S0
    Set Rs = Db.OpenRecordset("Table1", , dbOpenForwardOnly)
    XlSheet.Range("A1").CopyFromRecordset Rs
     
    Set XlSheet = Nothing
     
    ' Ajout de la feuille
    Set XlSheet = XlBook.Worksheets.Add
    XlSheet.Name = "S15"
     
    ' remise au début car le 'CopyFromRecordset' ne le fait pas
    Rs.MoveFirst
    XlSheet.Range("A1").CopyFromRecordset Rs
     
     
    ' Ferme les Var
    Rs.Close: Set Rs = Nothing
    Db.Close: Set Db = Nothing
    Set XlSheet = Nothing
     
    ' Sauve le fichier
    XlBook.Save
    XlBook.Close
    Set XlBook = Nothing
    Set Xlapp = Nothing
     
     
    Exit Sub
    errOuvrirExcel:
        'Err 429 : Un serveur OLE Automation ne peut pas créer d'objet
        '    ->  Excel n'est PAS encore ouvert.
        If Err = 429 Then
            Set Xlapp = CreateObject("Excel.Application")
            Resume Next
        End If
     
    oups:
        MsgBox Err.Number & " - " & Err.Description
     
    End Sub
    J'explique,


    J'ouvre le fichier excel ( a toi de remettre le bon chemin), J'efface les données de feuille S0, je copie la table et aulieu de copier la feuille S0, je créé une feuille S15 et je recopie les données de la table.

    PS : il faut la référence à :
    - Bibli DAO 3.6
    - Excel


    A toi de voir pour l'adapter à tes besoins
    Enespérant t'avoir aidé

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut
    Merci beaucoup pour ton aide MacGiver.

    Donc j'ai utilisé ton code en changeant bien entendu mes parametres, mais il ya un petit probleme lorsque l'on crée la feuille "S15" car cette feuille existe déja en faite sur Excel mais elle est vierge car les données ne sont pas encore rentrées. C'est exactement ce que je veux faire, pas la peine de recréer une autre feuille "S15" puisqu'elle est deja existante !
    Je veux juste copier cette table dans la feuille de mon choix.

    Merci beaucoup j'espere que vous m'avez bien compris.

    Bonne journée à vous.

  6. #6
    Membre actif Avatar de zEndymion
    Homme Profil pro
    Responsable des applications
    Inscrit en
    Avril 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des applications
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2006
    Messages : 162
    Points : 203
    Points
    203
    Par défaut
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set XlSheet = XlBook.Worksheets.Add
    XlSheet.Name = "S15"
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set XlSheet = XlBook.Sheets("S15")
    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut
    J'ai trouvé ma solution Macgyver, regarde ce que ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ' Ajout de la feuille
    Sheets("S0").Select
    Sheets("S0").Copy Before:=Sheets(18)
    Sheets("S15").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("S0 (2)").Select
    Sheets("S0 (2)").Name = "S15"
    Sheets("_S15").Select
    ActiveWindow.SelectedSheets.Delete
    Donc pour l'instant ça marche mais une fois sur 2 car toutes les 2 fois que je lance le module j'ai cette erreur:

    '462 - le serveur distant n'existe pas ou n'est pas disponible'

    [Modération, cafeine : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci]

  8. #8
    Membre actif Avatar de zEndymion
    Homme Profil pro
    Responsable des applications
    Inscrit en
    Avril 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des applications
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2006
    Messages : 162
    Points : 203
    Points
    203
    Par défaut
    Ok,
    mais je ne comprend pas bien pourquoi tu détruits la feuille 15, pour recopier les données de la 0, il est plus simple d'effacer la 15 s'il y a des données et ne copié que les données de la 0 (A mois que tu copie un mise en forme), tu t'éviterais pas mal de Mani de copier, détruire, renomer ....

    @+

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par __MacGiver__
    Ok,
    mais je ne comprend pas bien pourquoi tu détruits la feuille 15, pour recopier les données de la 0, il est plus simple d'effacer la 15 s'il y a des données et ne copié que les données de la 0 (A mois que tu copie un mise en forme), tu t'éviterais pas mal de Mani de copier, détruire, renomer ....

    @+
    Oui tout a fait la feuille "S15" n'a rien dedans donc aucune mise en page.
    En fait je detruit la "_S15"car il se crée cette "_S15" va savoir...

    Merci à toi macgyver...

Discussions similaires

  1. [AC-2010] insert into pour envoyer les donnees d'une table Access vers une table Mysql
    Par jj4822 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 01/12/2014, 11h12
  2. Réponses: 3
    Dernier message: 15/06/2012, 11h39
  3. copier une table access vers une feuille excel
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/06/2010, 18h25
  4. [AC-2003] Export d'une table Access vers une table Excel
    Par lechtinico dans le forum VBA Access
    Réponses: 13
    Dernier message: 13/04/2010, 19h31
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo