Ouvrir un fichier excel depuis access en vba
Bonjour à tous,
Je rencontre un problème lorsque je souhaite ouvrir un fichier excel depuis access sur un click en vba
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Private sub cmd_open_fich_click()
Dim nomfichier as string, chemin as string
Dis wbexcel as Workbook
Nomfichier = "test.xlsm"
Chemin = "c:\documents ans settings\pc\bureau\"
Set wbexcel = workbooks.open(chemin & nomfichier)
End sub |
Le probleme est que le fichier ne s'ouvre pas mais un processus excel est bien ouvert dans le gestionnaire des taches Windows
Une idee??
D'avance merci
Blado_sap
Problème à l'ouverture de classeurs utilisant des fonctions de Macros Complémentaires
Citation:
Envoyé par
PipoWIL
Bonjour Blado_sap,
Voici quelques lignes de code qui montrent une manière de d'ouvrir Excel depuis Access et de travailler sur le tableur.
Code:
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
| Function ouvrirExcel()
'Requires to define in Tools menu the reference to Microsoft Excel Object Library
'Beware : this object library may be different from PC to PC : version 11 or 12 or..
Dim objXL As Excel.Application
Dim objWkbk As Workbook
Dim objSht As Worksheet
Dim i As Integer
'ouvrir Excel
'Si Excel est déjà ouvert sur le PC, GetObject suffit.
On Local Error Resume Next
Set objXL = GetObject(, "Excel.Application")
'Par contre, si Excel n'est pas encore lancé sur le PC, alors il faut le faire par ce CreateObject
If Nothing Is objXL Then
Set objXL = CreateObject("Excel.Application")
End If
On Error GoTo 0
'ouvrir le fichier
Set objWkbk = objXL.Workbooks.Open("C:\Temp\Book1.xls")
'The sheet with our data is the first one
Set objSht = objWkbk.Worksheets(1)
objXL.Visible = True
'Make this sheet the active one when we open the Spreadsheet
objSht.Activate
'Travailler sur le tableur Excel. For example, set titles in grey. Gris clair = color15 Gris foncé= 16
With objSht
'il y a 3 colonnes
For i = 1 To 3
.Cells(1, i).Interior.ColorIndex = 15
.Cells(1, i).WrapText = True
Next i
End With
'Fermer le fichier et le sauver
objWkbk.Close True
'libérer les pointeurs
Set objWkbk = Nothing
Set objXL = Nothing
End Function |
Bonjour PipoWIL,
Merci pour ce code qui fonctionne, chez moi, imparfaitement.
J'ai modifié les actions à effectuer, sans refermer le fichier, car c'est pour faire des vérifs.
Lorsqu’on demande l'ouverture d'un classeur utilisant des fonctions de Macros Complémentaires, Excel pose la question :
Ce classeur contient des liaisons vers d'autres sources de données.
- Cliquez sur Oui pour mettre à jour toutes les informations liées.
- Cliquez sur Non pour conserver les informations existantes.
Si on répond Oui, on peut demander l'ouverure de la source demandée, mais la macro bugue;
si on répond Non, les cellules contenant ces fonctions ne sont pas mises à jour.
J'ai résolu le problème en ouvrant deux fois le classeur et en répondant à toutes les questions demandées par Excel.
Avez-vous une idée de la cause du problème ?
Cordialement,
Bronzo73