Question

Disons que j'ai une feuille de calcul Excel intégrée dans un formulaire Microsoft Access.J'appelle le cadre objet

ExcelFrame

et j'ajoute une zone de texte sur le formulaire appelé

txtA1

et j'ajoute un bouton sur le formulaire appelé

cmdInsert

Je veux taper "Hello World" dans la zone de texte, cliquer sur le bouton et le faire apparaître dans la cellule A1 de cette feuille de calcul.Quel VBA dois-je utiliser pour réaliser cela ?

Merci

Était-ce utile?

La solution

Vous pouvez automatiser Excel, écrire votre valeur dans la feuille de calcul, puis mettre à jour le cadre d'objet.

Private Sub cmdInsert_Click()
    Dim strPath As String
    Dim oExcel As Object
    Dim oSheet As Object

    Set oExcel = CreateObject("Excel.Application")
    oExcel.Visible = True

    strPath = Me.ExcelFrame.SourceDoc
    'Debug.Print strPath '
    oExcel.Workbooks.Open strPath
    Set oSheet = oExcel.ActiveSheet
    'Debug.Print oSheet.Name '

    oSheet.Range("A1").Value = Me.txtA1
    oExcel.ActiveWorkbook.Save
    oExcel.Quit
    Set oSheet = Nothing
    Set oExcel = Nothing
    'acOLEUpdate action requires Enabled = True '
    'and Locked = False '
    Me.ExcelFrame.Enabled = True
    Me.ExcelFrame.Locked = False
    Me.ExcelFrame.Action = acOLEUpdate
    Me.txtA1.SetFocus
    Me.ExcelFrame.Enabled = False
    Me.ExcelFrame.Locked = True
End Sub

Modifier:L'exemple était basé sur un fichier de classeur externe qui est lié comme source du cadre objet du formulaire.

Pour lier une feuille de calcul, choisissez le "Créer à partir d'un fichier" bouton radio, cochez la case "Lien", puis parcourez la case pour sélectionner le classeur.C'est comme ça que je l'ai fait avec Access 2007.Si je me souviens bien, c'était similaire avec Access 2003.

Autres conseils

Il est jamais trop tard, non?

prévoir que vous avez déjà créé l'objet Excel (comme dans OP):

Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"

Notez que ce code requiert une référence à MS Excel en VBA.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top