Connexion entre VBA Access et Excel

Résolu
arthur5c -  
 arthur5c -
Bonjour à tous,

Je souhaite communiquer entre un formulaire Access et une page Excel. Par exemple, sur le formulaire Access, lorsqu'on appuie sur un bouton, le texte 'Exemple' s'écrit sur la case B2 dans Excel. J'ai essayé différentes méthodes et tutoriels mais sans réussites.

Auriez-vous un code ou une idée ?
Merci

4 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    qu'as-tu essayé, quel résultat as-tu obtenu?
    0
  2. arthur5c
     
    J'ai trouvé cela sur internet :

    chemin = Application.CurrentProject.Path & "\Classeur1.xlsx"

    Set fenetre = CreateObject("Excel.Application")
    Set classeur = fenetre.Workbooks.Open(chemin)

    recuperation = classeur.Sheets("Feuil1").Range("B1").Value
    MsgBox (recuperation)
    classeur.Sheets("Feuil1").Range("B2").Value = "Test envoie"
    MsgBox (classeur.Sheets("Feuil1").Range("B2").Value)

    fenetre.Application.DisplayAlerts = False
    fenetre.Quit

    Set fenetre = Nothing
    Set classeur = Nothing

    ----------------------------------------------------------------------------------------------------------------------------------------------------------
    Et pour le résultat, il arrive à récupérer la valeur du champs B1 dans la feuille 1 mais il n'arrive pas à écrire dans B2.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      "il n'arrive pas": que se passe-t-il? message d'erreur?
      qu'affiche le second msgbox?
      0
  3. arthur5c
     
    Le second MsgBox affiche correctement "Test envoie" mais quand je vais sur Excel pour voir la case B2 rien n'a été écrit. Case vide
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      C'est normal, tu ne sauves pas le classeur Excel.
      Suggestion:
      Option Compare Database
      Option Explicit
      
      Private Sub ty()
      Dim fenetre As Excel.Application, classeur As Excel.Workbook
      Dim chemin As String, recuperation As String
      chemin = Application.CurrentProject.Path & "\Classeur1.xlsx"
      
      Set fenetre = New Excel.Application
      Set classeur = fenetre.Workbooks.Open(chemin)
      
      recuperation = classeur.Sheets("Feuil1").Range("B1").Value
      MsgBox (recuperation)
      classeur.Sheets("Feuil1").Range("B2").Value = "Test envoie"
      MsgBox (classeur.Sheets("Feuil1").Range("B2").Value)
      Call classeur.Close(True)
      fenetre.Application.DisplayAlerts = False
      fenetre.Quit
      
      Set fenetre = Nothing
      Set classeur = Nothing
      End Sub
      
      Il est nécessaire d'ajouter "Microsoft Excel nn Object Library" dans les références de l'application.
      0
  4. arthur5c
     
    Je vous remercie de votre précieuse aide, il me manquait la ligne 16 et étant donné que je suis sur Mac avec un système d'exploitation Windows j'ai du effectué une autre manip.
    0