Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2653 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comment copier une feuille EXCEL sous ACCESS?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment copier une feuille EXCEL sous ACCESS?

n°1354463
PAULOM
Posté le 26-04-2006 à 16:24:33  profilanswer
 

Bonjour à tous, voici mon problème je n'arrive pas à copier le contenu d'une feuille EXCEL dans une autre feuille EXCEL du meme classeur.
 
 
 
Je dois transférer une table ACCESS vers EXCEL, bon ça j'y arrive je transfère ma table ACCESS (toute les semaines) vers la feuille EXCEL (SXX) et cette feuille ainsi créer doit être copier dans le meme classeur dans la feuille S0, en gros je dois avoir 2 feuilles identiques dans le meme classeur mais sous 2 noms différents, et j'aimerais également mettre mes champs si possible.
 
 
 
Je met pour l'instant pour mon code si ça peut vous aider.
 
 
 
Je vous remercie d'avance pour votre aide.
 
 
 

Code :
  1. Option Compare Database
  2. Sub ExportTblAccessInExcel()
  3. Dim Db As DAO.Database
  4. Dim Rs As DAO.Recordset
  5. Dim Xlapp As Excel.Application
  6. Dim XlBook As Excel.Workbook
  7. Dim XlSheet As Excel.Worksheet
  8. Dim NomFeuille As String
  9. Dim LigneCopiees As Long
  10. On Error GoTo errOuvrirExcel
  11. Set Xlapp = GetObject(, "Excel.Application" )
  12. 'On Error GoTo oups:
  13. On Error GoTo 0
  14. Xlapp.Visible = True
  15. NomFeuille = "S" & DatePart("ww", Date) - 1
  16. Set XlBook = Xlapp.Workbooks.Open("C:\Documents and Settings\A4382\Bureau\stage\Nvx_clients_par_BG_2006_S14.xls" )
  17. If FeuilleExiste(NomFeuille, XlBook) Then
  18.   Set XlSheet = XlBook.Worksheets("NomFeuille" )
  19.    ' efface les données
  20.    XlSheet.Cells.Clear
  21. Else
  22.    ' Ajouter nouvelle feuille en dernière position
  23.    Set XlSheet = XlBook.Worksheets.Add(, XlBook.Worksheets(XlBook.Worksheets.Count - 2))
  24.    XlSheet.Name = NomFeuille
  25. End If
  26. Set Db = CurrentDb
  27. ' Copie dans feuille (nouvelle ou effacée)
  28. If DCount("*", "T31_Cumul_Nvx_clients_par_BG" ) > 0 Then
  29.     Set Db = CurrentDb
  30.      ' Copie dans feuille (nouvelle ou effacée)
  31.     Set Rs = Db.OpenRecordset("T31_Cumul_Nvx_clients_par_BG", , dbOpenForwardOnly)
  32.     Rs.MoveFirst
  33.     LigneCopiees = XlSheet.Range("A1" ).CopyFromRecordset(Rs)
  34.      ' Ferme les Var
  35.     Rs.Close: Set Rs = Nothing
  36.     Db.Close: Set Db = Nothing
  37. Else
  38.     MsgBox "Pas de données"
  39. End If
  40. ' Ferme les Var
  41. Set XlSheet = Nothing
  42. ' Sauve le fichier
  43. XlBook.Save
  44. 'XlBook.Close
  45. Set XlBook = Nothing
  46. Set Xlapp = Nothing
  47. Exit Sub
  48. errOuvrirExcel:
  49. 'Err 429 : Un serveur OLE Automation ne peut pas créer d'objet
  50. ' -> Excel n'est PAS encore ouvert.
  51. If Err = 429 Then
  52. Set Xlapp = CreateObject("Excel.Application" )
  53. Resume Next
  54. End If
  55. oups:
  56. MsgBox Err.Number & " - " & Err.Description
  57. End Sub
  58. Function FeuilleExiste(NomFeuille As String, Classeur As Excel.Workbook) As Boolean
  59. Dim errNum As Long, strName As String
  60.   errNum = 0: Err.Clear
  61.    On Error Resume Next
  62.    strName = Classeur.Worksheets(NomFeuille).Name
  63.    errNum = Err.Number
  64.    On Error GoTo 0
  65.    If errNum = 0 Then FeuilleExiste = True Else FeuilleExiste = False
  66. End Function


mood
Publicité
Posté le 26-04-2006 à 16:24:33  profilanswer
 

n°1354497
kiki29
Posté le 26-04-2006 à 16:42:27  profilanswer
 

Dégrossis au macro recorder et optimise à la main

n°1354501
PAULOM
Posté le 26-04-2006 à 16:44:00  profilanswer
 

Ou la!
Je suis désolé je comprend pas , je suis pas tres bon en VB....
 
Qu'est ce le macro recorder?
Optimise à la main?
 
Merci à toi

n°1354506
kiki29
Posté le 26-04-2006 à 16:46:45  profilanswer
 

Dans l'environnement Excel Outils/Macros/Nouvelle Macro

n°1354587
kiki29
Posté le 26-04-2006 à 17:53:50  profilanswer
 

Si application de transfert en VB6 et non en VBA
le lien http://www.vb-helper.com/howto_access_to_excel.html
te donne un code qui fonctionne correctement
et pour copier sur une 2eme feuille Excel tu peux coller
un excel_app.Sheets("Sheet2" ).Select puis remouliner le transfert de données. Le code est très bien commenté et suffisamment explicite pour le compléter et le modifier afin que l'ensemble ne génere pas de msg d'erreur
 
Je viens de le faire de façon bestiale à partir du lien et ça marche


Message édité par kiki29 le 26-04-2006 à 21:34:21
n°1355041
PAULOM
Posté le 27-04-2006 à 12:15:53  profilanswer
 

Ouais mais bon c'est dommage que ce soit en anglais les commentaires.
 
Le code que tu m'a demandé c'est pour copier exactement?
Désolé mais j'ai du mal en VB lol
 
Merci de ton aide

n°1355090
kiki29
Posté le 27-04-2006 à 13:17:02  profilanswer
 

Si tu as une adresse email je t'envoie le programme modifié
mais ACHTUNG c'est bestial et pas propre au niveau codage
il faudrait redéfinir des fonctions etc mais ça marche
 
Pour l'Anglais c'est de l'Anglais basique et crois moi c'est indispensable
si tu veux avoir accès à certaines infos ou livres techniques


Message édité par kiki29 le 27-04-2006 à 13:26:21
n°1355094
PAULOM
Posté le 27-04-2006 à 13:30:33  profilanswer
 

Je t'ai envoyé mon adresse par MP merci à toi


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comment copier une feuille EXCEL sous ACCESS?

 

Sujets relatifs
afficher la date au mois précédent sous excel[C++] Comment copier dans un tableau les infos d'un fichier?
[VBA] Suppression d'un graphique ExcelMise a jour feuille excel
[newb] Listes avec Excelprobleme d'execution de macros à l'ouverture d'excel
[PHP/MySQL] access denied, mais ca passe enligne de commandeCommentaires conditionnels dans une feuille CSS ?
Copier/coller une feuille Excel avec ACCES 
Plus de sujets relatifs à : Comment copier une feuille EXCEL sous ACCESS?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR