Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 17h59   #1
Membre du Club
 
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 60
Points : 60
Par défaut Exportation Access vers Excel

Bonsoir,

J'ai un fichier Excel dans lequel j'ai cinq tableaux croisées dynamiques, dans ce fichier j'exporte trois requêtes, et à la fin je l'enregistre sous un autre nom et je l'ouvre.

Voici le code :
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
 
Dim strChemin As String
Dim strNomfichier As String
 
        strChemin = CurrentProject.Path & "\Gestion_TEST.xlsx"
        strNomfichier = "Gestion_TEST.xlsx"
        Err.Clear
 
        'Ouvrir la matrice
        Dim fichXls As Object
        Set fichXls = CreateObject("Excel.Application")
        Dim fichW As Excel.Workbook
        fichXls.visible = False
        fichXls.UserControl = False
        Set fichW = fichXls.Workbooks.Open(strChemin)
 
        Me.lblInfo.Caption = "1/3 - Transfert des Factures..."
        Traitement_Factures strNomfichier, 2, fichXls
 
        Me.lblInfo.Caption = "2/3 - Transfert des Commandes..."
        Traitement_Commandes strNomfichier, 2, fichXls
 
        Me.lblInfo.Caption = "3/3 - Transfert des Fournisseurs..."
        Traitement_Fournisseurs strNomfichier, 2, fichXls
 
        On Error Resume Next
        Dim pathmatrice As String
        pathmatrice = "C:\"
 
        'Enregistrer le nouveau classeur
        fichW.SaveAs pathmatrice & "Gestion_" & Right(Date, 4) & ".xlsx"
 
        'Affichage du fichier
        fichW.Close
        Set fichW = fichXls.Workbooks.Open(pathmatrice & "Gestion_" & Right(Date, 4) & ".xlsx")
        fichXls.visible = True
        fichXls.UserControl = True
 
        Set fichW = Nothing
        Set fichXls = Nothing
 
        MsgBox "Export effectué dans le répertoire " & pathmatrice, vbInformation, "Export Excel"
Donc cela fonctionne bien, mais lorsque je veux ouvrir un autre fichier excel, il m'ouvre aussi le fichier que je suis entrain de préparer et du coup cela provoque une erreur.

Auriez-vous une idée pour éviter l'ouverture du fichier avant que le transfert soit terminer ?

Merci de vos réponses
Nefertari
nefertari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 18h39   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 958
Points : 30 958
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Essayes de mettre l'instruction DoEvents après cette ligne :

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/12/2011, 09h45   #3
Membre du Club
 
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 60
Points : 60
bonjour,

j'ai ajouter le DoEvents mais cela ne change rien. Lorsque je fais mon transfert, je ne peux pas ouvrir d'autres fichier Excel sinon le transfert plante.

Si quelqu'un aurais une autre idée ?

Merci par avance
nefertari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2012, 18h03   #4
Membre du Club
 
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 60
Points : 60
Bonsoir,

Je me permets de relancer sur ma demande car j'ai toujours le problème.

Le transfert s'effectue mais je ne attendre que le transfert soit finis avant d'ouvrir un autre fichier Excel.

est-il possible de bloquer l'instance que j'utilise pour le transfert ?

merci par avance
Nefertari
nefertari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2012, 09h53   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 620
Points : 11 620
Bonjour,

Nulle part je ne vois de Quit.

Si tu regardes dans ton Gestionnaire de tâches le processus Excel doit toujours être là.

Tu peux t'inspirer du code d'export présent sur mon article sur la recherche dernière partie.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web