Bonjour,
J'ai une appli développée depuis pas mal d'années déjà (et dont je ne reconnais plus très bien le code !).
Depuis un formulaire Access, je veux aller sur une feuille Excel, et dans une cellule bien précise, en correspondance avec mon champ Access sur le formulaire de départ
Pour cela, je déroule une macro Demarre_excel() qui cherche d'abord si Excel est déjà ouvert, une instance en mémoire, ou si c'est le premier appel
d'Excel.
Jusque là tout fonctionnait bien. Mais j'ai à présent une erreur sur la fonction FindWindows ( "Sub ou fonction non définie" )
Je n'en vois pas du tout l'explication. Entre temps, j'ai certainement réinstallé Microsoft office depuis mon Cd. Est-ce une piste ?
Si je ne trouve pas, je vais devoir réécrire le truc d'une toute autre manière.
Qui peut m'aider ?
A toutes fins utiles je vous mets ci-dessous le code employé
Merci d'avance
Roland
-----------------------
Sub DetectExcel()
Const WM_USER = 1024
Dim hWnd As Long
hWnd = FindWindow("XLMAIN", 0) C'est là que ça plante !!!!!
If hWnd = 0 Then
Exit Sub
Else
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub
--------------------------------------------
Cette sub est appelée par:
-----
Sub Demarre_Excel()
Dim MyXL As Object
Dim ExcelWasNotRunning As Boolean
Dim fichouv As Boolean
fichouv = 0
' Test pour déterminer si une copie de Microsoft Excel
' est déjà en exécution.
On Error Resume Next
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Call DetectExcel ' Définit la variable objet faisant référence au fichier à ouvrir.
Set MyXL = GetObject("C:\Mythologie\Organigramme_mytho.XLS")
fichouv = 1
'DoCmd.Close acForm, "Personnages", acSaveYes
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
GoTo Suite
End If
'DoCmd.Close acForm, "Personnages", acSaveYes
MyXL.Application.WindowState = vbMaximizedFocus
MyXL.Visible = True
MyXL.Parent.Windows(1).Visible = True
Suite:
If fichouv = 0 Then
MyXL.Run "Organigramme"
End If
Set MyXL = Nothing ' Libère la référence à l'application
' et à la feuille de calcul.
End Sub
-------------------------------------------------------------------------------
elle même appelée, depuis le formulaire, par
Private Sub Commande33_click()On Error GoTo Err_Commande33_Click
Nomp = Forms!Personnages!Repertoire!Page.Value & [Nom]
'
SaveSetting "Mytho", "Lien_excel", "Nom", Nomp
Call Demarre_Excel Exit_Commande33_Click:
Exit Sub
Err_Commande33_Click:
MsgBox Err.Description
Resume Exit_Commande33_Click
End Sub
----------------------------------------------------------------
ouaiiiiii Je n'y pensais plus C'est sûr et certain que ça doit être ça Merciiiiiiiii Eriiiiiic
Votre réponse
Forum Bureautique
Discussions sur les outils et logiciels de bureautique. Trouvez des solutions à vos problèmes, apprenez des astuces pour maximiser votre productivité et connectez-vous avec une communauté dédiée à l'efficacité au travail.