[Access depuis Excel]Ouverture du formulaire a partir d'excel
Bonjour,
j'ai un petit soucis :)
VOila j'ai cette macro :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sub TravailDansAccess()
DefVariablesPublic
Dim acApp As New Access.Application
'demarrer access
Set acApp = New Access.Application
'ouvrir la base
acApp.OpenCurrentDatabase (CheminFichiers & "\bd2.mdb")
'exécuter la macro dans Access
acApp.Run "ImportFeuilleExcel"
'quitter access
acApp.Quit
Set acApp = Nothing
End Sub |
Qui me permet d'ouvrir Access, et d'éxécuter une macro qui est dans Access (qui s'appelle "ImportFeuilleExcel")
Cette macro me permet de travailler dans Access. Voici la macro dans Access :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Sub ImportFeuilleExcel()
'Empêche les demande de confirmation de s'afficher
CheminFichiers = ParentDir(Application.CurrentDb.Name)
'MsgBox CheminFichiers
DoCmd.SetWarnings False
'Efface le contenu de la table
DoCmd.RunSQL "DELETE * FROM ExtractWithGoodTitle;"
'importe la table excel
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ExtractWithGoodTitle", CheminFichiers & "\Classeur_TestsMacros.xls", True, "ExtractWithGoodTitle!"
DoCmd.OpenForm "FormWelcome"
End Sub |
Donc cette procédure me permet de supprimer tous les éléments de ma table, puis de la réremplir en importer une feuille Excel que j'ai précédemment créé (c'est le fichier excel de départ en fait), et de checker les problèmes.
Après cette importation, j'ai une requete qui me permet d'exporter mon résultat :
Code:
1 2 3 4 5 6 7 8
| Sub ExportFeuilleExcel()
CheminFichiers = ParentDir(Application.CurrentDb.Name)
If Dir(CheminFichiers & "\Value_Contract.xls") = "Value_Contract.xls" Then
Kill (CheminFichiers & "\Value_Contract.xls")
End If
MsgBox CheminFichiers
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Check_value_contract", CheminFichiers & "\Value_Contract.xls", True
DoCmd.SetWarnings True |
Avant cette importation, comme vous le voyez (merci STarec), j'ouvre un formulaire appelé "FormWelcome", qui me permet justement de checker les problèmes.
En fait, c'est un formulaire de bienvenue, ou j'ai le choix entre checker les problèmes, où j'ai alors d'autres formulaire qui s'ouvrent, justmeen tpour checker, et un bouton RUn, qui me permet de faire le report, et donc d'exporter mon fichier Excel par la macro juste au dessus.
En fait au final les étapes :
- importer ma feuille Excel
- Corriger les erreurs de ma feuille Excel que j'ai importé (car en fait je dois checker des problèmes)
- une fois le check fini, exporter le résultat de ma requête dans un classeur Excel et continuer a travailler sur mon fichier Excel :)
Mon problème vient après l'importation : je voudrais que le formulaire apparaisse en vue (je pense que vous avez compris que je pilote Access depuis Excel), que je puisse checker, et quand j'ai fini ça, j'exporte mon résultat et ça me "relance" dans ma macro Excel, pour que ça continue le travail.
Là, ce que ça me fait, ça m'importe la feuille Excel comme je veux, ça c'est bon, mais ça m'ouvre pas le formulaire :? enfin si je fais du pas à pas, ça me l'ouvre, mais je ne peux pas accéder à celui-ci, et je peux pas demander à l'utilisateur de faire du pas à pas :mrgreen: donc je voudrais que le formulaire s'affiche, et mette en fait une espèce de pause dans le code Excel, et quand j'exporte le fichier, que la macro Excel reprenne. Cad :
Code:
1 2 3
| acApp.Run "ImportFeuilleExcel"
'quitter access
acApp.Quit |
Sur le Run, ça m'importe le fichier et m'ouvre le formulaire, et quand j'exporte ça aille sur ce acApp.Quit :)
J'espère avoir été assez clair :oops:
PS : Ce post en fait, fait référence a celui-ci, que j'avais déja créé et résolu :
http://www.developpez.net/forums/sho...d.php?t=506253
Merci en tout cas par avance pour votre aide :)