
Salut les Amis !
Ce code est déjà sur Vbfrance mais je ne sais plus où !
Il fonctionne en automatique directement implanté des un module d'accès. Moi j'utilise ce code tous les jours en auto dans des bases d'analyse commerciale. Il est utilisé par un autre module qui utilise une table où sont paramétré tous les états avec pour chaque leur filtre. Ex de table:
NomEtat | Filtre | CheminRep | NomFichier |
Cette table est réutilisé par un autre module qui vérifie sur le réseau où est imprimé en pdf les états leurs date de modif et si il y à un pdf non mis à jour alors la base m'envoi automatiquement un mail en me signalant directement l'état (pdf) non mis à jour. Ci-joint le code pour imprimer un état en pdf (voir directement la dernière fonction en bas du code)
'--------------------------------------
'Ce code est libre d'utilisation (c'est pour ça qu'il est
'sur vbfrance !
'
'L'utilisation est très simple : Il suffit de taper "Reg." dans
'votre code, et il est affiché les fonctions possibles à utiliser.
'[Reg.Ecrit]
' Reg.Ecrit sert à créé ou modifier une clé.
' Le premier paramètre, est les clés, il suffit de choisir dans la liste qui s'affiche toute seule.
' Le deuxième est l'endroit ou écrire.
' Le troisième la valeur
' Le dernier, le format :
' REG_String : Format chaine de caractère normale (exemple : "C:\WINDOWS\wt\updater\wcmdmgrl.exe -launch")
' REG_Number : Un nombre style integer (exemple : 43574)
' REG_Binary : Un code binaire (exemple : 1) pratique pour enregistrer une configuration.
' REG_Expand_String : Une chaine de caractère "expandable" (exemple : "%windir%\calc.exe")
' Vous n'êtes pas obligés de préciser le format, il le sera automatiquement sur REG_String par défault
'
'Exemple 1 : Reg.Ecrit HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", "C'est un test", REG_String
' Mettra "C'est un test" dans la valeur par défault de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
'Exemple 2 : Reg.Ecrit HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\wcmdmgr", "C:\WINDOWS\wt\updater\wcmdmgrl.exe -launch"
' Mettra le programme de mise à jour automatique de Windows au démarrage (Sous Windows XP au moins)
'[Reg.Lit]
'Les deux premiers paramètres fonctionnent comme pour Reg.Ecrit
'Le troisième est le texte renvoyé en cas d'erreur. Par défault ce texte est "Erreur"
'Exemple 1 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId")
' Vous donnera votre numéro de license de Windows
'Exemple 2 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "Clé\Qui\Existe\Pas")
' Vous renvoyera "Erreur", car la clé n'éxiste pas.
'Exemple 3 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "Clé\Qui\Existe\Pas", "Inconue")
' Vous renvoyera "Inconue", car la clé n'éxiste pas.
'[Reg.Suprime]
'Vous permet de suprimer une clé dans la base de registre.
'Fonctionne de la même façon que Reg.Lit, sauf que Reg.Suprime ne renvoie rien.
Public Enum HKEYs
HKEY_CLASSES_ROOT = 0
HKEY_CURRENT_USER = 1
HKEY_LOCAL_MACHINE = 2
HKEY_USERS = 3
HKEY_CURRENT_CONFIG = 4
End Enum
Public Enum REG_TYPE
REG_String = 0
REG_Number = 1
REG_Binary = 2
REG_Expand_String = 3
End Enum
Public Sub Ecrit(HKEY As HKEYs, Endroit As String, Valeur As String, Optional Type_Of_Reg As REG_TYPE = REG_String)
Dim WSHShell
Set WSHShell = CreateObject("WScript.Shell")
Select Case Type_Of_Reg
Case 0: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_SZ"
Case 1: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_DWORD"
Case 2: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_BINARY"
Case 3: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_EXPAND_SZ"
End Select
End Sub
Public Function Lit(HKEY As HKEYs, Endroit As String, Optional Retourner_En_Erreur As String = "Erreur") As String
On Error Resume Next
Dim WSHShell
Set WSHShell = CreateObject("WScript.Shell")
Lit = WSHShell.RegRead(HK(HKEY) & Endroit)
If Err <> 0 Then Lit = Retourner_En_Erreur
End Function
Public Sub Suprime(HKEY As HKEYs, Endroit As String)
On Error Resume Next
Dim WSHShell
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.RegDelete HK(HKEY) & Endroit
End Sub
Private Function HK(HKEY As HKEYs) As String
Select Case HKEY
Case 0: HK = "HKCR\"
Case 1: HK = "HKCU\"
Case 2: HK = "HKLM\"
Case 3: HK = "HKEY_USERS\"
Case 4: HK = "HKEY_CURRENT_CONFIG\"
End Select
End Function
'==== Fonction d'impression en PDF
Public Function EtatToPdf(NomEtat As String, CheminNomExtFichier As String, ConditionEtat As String)
'La commande est EtatToPdf "AgCumul", "c:\temp\AgCumul.pdf"
Ecrit HKEY_CURRENT_USER, "Software\Adobe\Acrobat PDFWriter\PDFFileName", CheminNomExtFichier, REG_String
DoCmd.OpenReport NomEtat, acViewNormal, , ConditionEtat
End Function
'-------------------------------------------
En espérant que cela peut t'aller !!!