Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 12/04/2011, 16h24   #1
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut access --> excel

Bonjour à vous,

Comme je l'ai déjà mentionné dans mon dernier post, je suis nouveau ici. J'ai beaucoup utilisé votre super site durant mes études pour consultation. Je suis présentement en stage sur un très gros projet Access 2007. Disons que c'est assez compliqué.

J'utilise un Template que j'ai moi-même monté en Excel 2003 et grâce à la magie de VBA je remplis mon template. Jusque-là pas de problème.

J'aimerais cependant lorsque mon code VBA est terminé et que mon template est maintenant rempli d'information... ouvrir ce template pour que l'utilisateur puisse le consulter!

J'aimerais, lui demander, s'il le souhaite d'enregistrer son résultat.

Je ne sais pas trop comment faire ça. Pour le moment les informations que je fais sont écrasées dans mon template !!!

SIZE="1"]j'efface toutes les cellules du template avant de faire ma procédure;-( Bref, ce n’est pas merveilleux et ça "scrappe" un peu aussi la définition de template ![/SIZE]

J'ai fouillé vite sur le site ici, mais je n'ai pas trouvé d'information sur AccessExcel. Peut-être que vous êtes meilleur que moi pour fouiller, mais si c'est possible pour vous de me donner quelques liens de base sur ce genre de code cela serait grandement apprécié. Je suis certain que vous allez trouver puisqu’à date les réponses que j'ai eues étaient "ÉCEURANTE"

( je suis québécois pour ça veut dire très très bonne !)

Merci beaucoup j'ai deja hate d'avoir vos super réponses
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 18h25   #2
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut Save As

Salut,

après mes lectures sur le net je crois que faire un Save As permet de contourner une partie du problème ( soit de ne pas écraser mon template).

Reste juste la convertion en pdf a faire !!!

( je vais vous mettre le code complet lorsque je vais avoir terminé mes tests plus tard !)

merci
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 19h38   #3
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
Hello,

les methodes proposees dans les sources a ta disposition te conviendraient-elles ?

http://access.developpez.com/sources...lg#ExtendPrint
http://excel.developpez.com/faq/inde...ion#ImprimePDF
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/04/2011, 20h24   #4
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut A voir !!!

Salut,

encore une fois merci pour cette réponse rapide (J'adore ce forum)

premier lien =
( il va falloir que j'analyse sérieusement ce lien, je suis quand même pas pire en programmation, mais je ne crois pas être capable d'assimilé a en 5 minutes!!! mais super par contre comme lien!!! merci)

Je crois que le deuxième lien semble le plus simple...

Bref, je vais vous tenir au courant et probablement poster mon code lorsque je vais avoir terminé.

D’autres suggestions en attendant!
Je vous remercie on se reparle bientôt, lorsque j'aurais testé ta solution
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 13h59   #5
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut mise en page

Salut la gang,

Autre petite question dans le même style.
Est-ce qu’il y a moyen par cotre VBA d'aller modifier l'en-tête et le pied de page!

Bref comme faire la gestion de la mise en page d'Excel avec du VBA!
Pour ensuite l'envoyer en PDF évidemment!

Ciao
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 19h31   #6
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut petit application pdf

Salut,

suite à mes recherches, j'ai trouvé l'application suivante sur votre site

Cependant, elle permet de convertir des ETAT accès en pfd et non des Excel...

Je vous propose le lien pour ceux que ça intéresse!

http://cafeine.developpez.com/access/tutoriel/pdf/
sinon je continue mes recherches...

Ciao
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 21h29   #7
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut Explication !!!

Salut la gang,

Voici comment faire pour régler mon problème.

Dans mon application je créé un petit dossier TEMPLATE!

Mon logiciel ouvre le fichier Excel Template dont il a besoin et par la suite il le remplit...

Lorsqu'il a terminé il SAVEAS !
Ainsi, mon Template est conservé !!!

Et mon fichier est sauvegardé ailleurs.

De plus pour faire suite à mes autres post que j'ai créé à ce sujet. Je n'ai jamais réussi à trouver comment faire pour créer des PDF lorsque toutes les manipulations antérieures sont faire! ;-(

J'ai donc, pour contourné le problème! rajouté de la protection sur l’Excel. Ainsi, la personne ne peut pas le modifier!

Pour conclure, je demande l'utilisateur s'il souhaite sauvegarder le Template rempli ailleurs selon son choix!

Je mets en annexe un petit bout de code très intéressant qui permet de "TERMINNATE" n'importe quel procès!!! très pratique dans mon cas ainsi j'évite les erreurs du type " fichier EXCEL déjà ouvert ". Cependant lorsqu’on utilise cette fonction tous les fichiers Excel déjà ouverts vont se fermer, et cela, sans sauvegarder !!! a utilisé donc avec modération ( vous pouvez remettre certain des commentaires que j'ai enlevés dans la fonction!!!)

Voici donc une partie de mon code comme prévit mon code comme prévu
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 21h30   #8
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut code Excel

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
'===============================================================
' Description générale :
'Créer la commande dans le fichier excel
''Date de modification
'       DATE 1 : 9 mai 2011
'       INFO : création du module
'
 
'===============================================================
Public Sub CreerCommande(MonProjet As Double, modeOuverture As Boolean)
 
'================
' ERREUR GOTO   |
'================
On Error GoTo GESTION_ERROR:
 
    Dim ERREUR_EXCEL(3) As String
    ERREUR_EXCEL(0) = "COMMANDE DE TRAVAIL .XLS"
    ERREUR_EXCEL(1) = CODE_GLOBALE.get_Username_Conn
    ERREUR_EXCEL(2) = "Excel_CommandeTravail"
    ERREUR_EXCEL(3) = "ValiderCommande"
 
'=================================
' initialisations des variables  |
'=================================
 
' Déclaration des variables nécessaires pour travailler sur le classeur excel.
Dim appexcel As Excel.Application
Dim classeurexcel As Excel.Workbook
Dim feuilleexcel As Excel.Worksheet
 
Dim cheminModele As String
 
'======
'code |
'======
 
'fermeture de tout les excels deja ouvert présentement pour éviter les problèmes
TerminateExcel.TerminateExcelProcess
 
'valider et créer le chemin du repertoire ou nous allons mettre notre fichier
CODE_GLOBALE.CREATIONFICHIERLOCAL
 
 
 
'///
'CREATION DU FICHIER
' ///
'Ouverture de l'application Excel
Set appexcel = CreateObject("Excel.Application")
 
'Ouverture d'un fichier Excel
cheminModele = chemin_Connexion.GetTEMPLATE("1")
Set classeurexcel = appexcel.Workbooks.Open(cheminModele)
 
'Ouvrir le fichier sur la premiere FEUILLE #1
Set feuilleexcel = classeurexcel.Worksheets(1)
 
'on met le display a false pour ne pas avoir de gestion de message excel ( et donc écraser le fichier s'il existe deja)
classeurexcel.Application.DisplayAlerts = False
 
 
'maintenant
 
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
 REMPLIR LE TEMPLATE
 
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
feuilleexcel.Range("F10").Value= "BLALBLALBLALBLALBLALB"
 
 
'///
'SECURITE ET FERMETURE DU NOUVEAU FICHIER
' ///
 
' on met la protection sur le classeur et la feuille
classeurexcel.Protect Password:=chemin_Connexion.GetPASSWORDEXCEL, Structure:=True, Windows:=False
feuilleexcel.Protect Password:=chemin_Connexion.GetPASSWORDEXCEL
 
' on sauvegarde temporaire
classeurexcel.SaveAs FileName:=chemin_Connexion.GetARCHIVE("commande-local") + "\1-COMMANDE_TRAVAIL.xls"
 
'on met le display a true pour éviter les mauvaise surprise
classeurexcel.Application.DisplayAlerts = True
 
'on ferme no variables
classeurexcel.Close
 
Set feuilleexcel = Nothing
Set classeurexcel = Nothing
Set appexcel = Nothing
 
 
 
 
 
'///
' OUVERTURE DU FICHIER créé
' ///
 
If modeOuverture = True Then
 
    'Ouverture de l'application Excel
    Set appexcel = CreateObject("Excel.Application")
 
    'Ouverture d'un fichier Excel
    Set classeurexcel = appexcel.Workbooks.Open(chemin_Connexion.GetARCHIVE("commande-local") + "\1-COMMANDE_TRAVAIL.xls")
 
    'Ouvrir le fichier sur la premiere FEUILLE #1
    Set feuilleexcel = classeurexcel.Worksheets(1)
 
    classeurexcel.Application.DisplayAlerts = False
 
    'RENDRE VISIBLE !!!
    appexcel.Visible = True
 
    'forcer l'utilisateur de sauvegarder ailleure
    Dim SAUVEGARDE As String
    SAUVEGARDE = appexcel.GetSaveAsFilename("C:\", FileFilter:="XLS (*.xls), *.xls", Title:="Sauvez moi...")
 
    'mini gestion des erreurs
On Error GoTo SAUVEGARDEERROR:
        classeurexcel.SaveAs SAUVEGARDE
SAUVEGARDEERROR:
 
 
    'fermer le tout
    classeurexcel.Application.DisplayAlerts = True
 
    'classeurexcel.Close
 
    Set feuilleexcel = Nothing
    Set classeurexcel = Nothing
    Set appexcel = Nothing
 
End If
 
FIN:
Exit Sub
 
'=================
' GESTION ERREUR |
'=================
GESTION_ERROR:
MsgBox (err.Number & "---" & err.description)
  Fichier_log.EcrireMessageErreur 112, ERREUR_EXCEL
Resume FIN:
 
 
End Sub
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 21h30   #9
Candidat au titre de Membre du Club
 
Homme Simon-Pierre Béliveau
Inscription : mars 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Simon-Pierre Béliveau
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 34
Points : 12
Points : 12
Par défaut ANNEXE TERMINATE PROCESS

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Option Compare Database
Option Explicit
 
Public Sub TerminateExcelProcess()
     '---------------------------------------------------------------------------------------
     '              : Terminates a process. First checking to see if it is running or not.
     '              : Uses WMI (Windows Management Instrumentation) to query all running processes
     '              : then terminates ALL instances of the specified process
     '              : held in the variable strTerminateThis.
     '              :
     '              : ***WARNING: This will terminate a specified running process,use with caution!.
     '              : ***Terminating certain processes can effect the running of Windows and/or
     '              : ***running applications.
     '---------------------------------------------------------------------------------------
    Dim strTerminateThis As String 'The variable to hold the process to terminate
    Dim objWMIcimv2 As Object
    Dim objProcess As Object
    Dim objList As Object
    Dim intError As Integer
 
    strTerminateThis = "Excel.exe" 'Process to terminate,
     'change notepad.exe to the process you want to terminate
 
    Set objWMIcimv2 = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\.\root\cimv2") 'Connect to CIMV2 Namespace
 
    Set objList = objWMIcimv2.ExecQuery _
    ("select * from win32_process where name='" & strTerminateThis & "'") 'Find the process to terminate
 
 
    If objList.Count = 0 Then 'If 0 then process isn't running
        'MsgBox strTerminateThis & " is NOT running." & vbCr & vbCr _
        '& "Exiting procedure.", vbCritical, "Unable to continue"
        Set objWMIcimv2 = Nothing
        Set objList = Nothing
        Set objProcess = Nothing
        Exit Sub
    Else
         'Ask if OK to continue
        'Select Case MsgBox("Are you sure you want to terminate this running process?:" _
        '    & vbCrLf & "" _
        '    & vbCrLf & "Process name: " & strTerminateThis _
        '    & vbCrLf & "" _
        '    & vbCrLf & "Note:" _
        '    & vbCrLf & "Terminating certain processes can effect the running of Windows" _
        '    & "and/or running applications. The process will terminate if you OK it, WITHOUT " _
        '    & "giving you the chance to save any changes in anything that is running in the specified process above." _
        '    , vbOKCancel Or vbQuestion Or vbSystemModal Or vbDefaultButton1, "WARNING:")
 
        'Case vbOK
             'OK to continue with terminating the process
            For Each objProcess In objList
 
                intError = objProcess.Terminate 'Terminates a process and all of its threads.
                 'Return value is 0 for success. Any other number is an error.
                If intError <> 0 Then
                    MsgBox "ERROR: Unable to terminate that process.", vbCritical, "Aborting"
                    Exit Sub
                End If
            Next
             'ALL instances of specified process (strTerminateThis) has been terminated
            'Call MsgBox("ALL instances of process " & strTerminateThis & " has been successfully terminated.", _
            'vbInformation, "Process Terminated")
 
            Set objWMIcimv2 = Nothing
            Set objList = Nothing
            Set objProcess = Nothing
            Exit Sub
 
        'Case vbCancel
        '     'NOT OK to continue with the termination, abort
        '    Set objWMIcimv2 = Nothing
        '    Set objList = Nothing
        '    Set objProcess = Nothing
        '    Exit Sub
        'End Select
    End If
 
End Sub
Simon777pb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h58.


 
 
 
 
Partenaires

Hébergement Web