| N'oubliez
pas |
|
Besoin d'une assistance,
d'une application
MS Office
Consultez GEMCCAP
|
|

|
| Le
lien du mois |
Titfleur
un site de liens pour les graphismes PSP entre autre |
|
|
Au cours de vos prochaines
visites sur CathyAstuce, n'hésitez pas à cliquer
1 fois sur les pubs. Cela ne vous
coûte rien et peux m'aider à couvrir les frais de ce site.
Merci d'avance |
|
Lettre
Février
2003
|
- Access
- Désactiver les paramètres de démarrage
- Lancer votre
base de données avec une image personnalisée
- Excel
- VBA
- Lire ou écrire dans la base de registre
- Windows
- Éviter l'exécution des scripts
- Word
- Les numéros de page et les champs ne sont pas exactes
lors de l'impression
- Personnaliser la fenêtre "Ouvrir" et
"Enregistrer"
|
Désactiver les paramètres de démarrage
Pour un rendu plus professionnel, vous avez activer un formulaire de
démarrage ou une macro Autoexec. Si vous désirez ouvrir votre base sans
cet automatisme : appuyez sur la touche Maj
tout en ouvrant la base (par double-clic sur un raccourci ou dans
l'Explorateur ou ).
Lancer votre base de
données avec une image personnalisée
Pour apporter à votre base de données une touche de
professionnalisme, placez un fichier bitmap de l'image de votre choix dans
le même dossier que la base de données.
Ce fichier image et la base de données doivent porter le même nom et ne
diffèrent que par leur extension : .bmp pour l'image et .mdb pour le
fichier access. Par exemple : cathyastuce.bmp et cathyastuce.mdb.
Maintenant lorsque vous double-cliquez sur le nom de la base de
données dans l'Explorateur ou sur un raccourci vers celle-ci, l'image
s'affiche en tant qu'écran d'ouverture. Il ne s'affiche pas si vous
ouvrez d'abord Access puis ouvrez votre base.
Attention cet écran d'ouverture n'est pas un formulaire de démarrage
(formulaire s'exécutant automatiquement au démarrage).
La fonction RECHERCHEV
Cette fonction permet de rechercher une valeur dans une liste de
donnée. Cette recherche est effectuée dans une colonne de la liste,
lorsqu'elle est trouvée, Excel se déplace vers la droite sur la même
ligne et lit la valeur dans la colonne indiquée.
Les paramètres dont elle a besoin sont donc :
- valeur_cherchée : la valeur
recherchée
- table_matrice : la plage dans laquelle
la valeur est recherchée
- no_index_col : l'index de la colonne
renvoyant la donnée
- valeur_proche: VRAI
pour rechercher la valeur la plus proche dans la 1ère colonne de la
plage et FAUX pour rechercher la valeur
exacte.
Pour fonctionner correctement la fonction a besoin d'une certaine
structure :
- La colonne dans laquelle doit se faire la recherche doit être la
1ère colonne de la plage.
- la plage doit contenir la colonne renvoyant la donnée.
- la 1ère colonne de la plage a l'index 1.
Par exemple dans une liste contenant les champs Date, Produit, Prix
unitaire, Taux TVA, Nombre, respectivement dans les colonnes A, B, C, D, E
et la ligne 1, les données s'étendant jusqu'à la ligne 100. Pour
rechercher :
- le prix unitaire à partir du Produit, table_matrice
doit être au moins B1:C10 et no_index_col
est 2.
- le nombre à partir de la date, table_matrice
doit être au moins A1:E10 et no_index_col
est 6.
Lire ou écrire dans la base de registre
Pour conserver une donnée dans la base de registre et la relire
ensuite, VBA met à votre disposition 3 fonctions : GetSetting,
SaveSetting et DeleteSetting.
Celle-ci utilise la clé VB and VBA Program
Settings situé dans [HKEY_USERS\Software].
Ces 3 fonctions utilisent les paramètres Appname,
Section, Key, Value.
- Appname représente le nom de votre
application, choisissez le nom que vous voulez. Il deviendra une
sous-clef de
- Section représente un sous-dossier de
la clef désignée par Appname
- Key est le nom de la valeur à
laquelle vous désirez affecter une donnée. Celle-ci est toujours une
valeur de type string.
- Value est la donnée elle-même.
permet d'ajouter une valeur à la base de registre, permet de la lire
et permet de supprimer une valeur ou une clef.
Par exemple pour conserver dans la base de registre, le contenu de la
donnée strMaDonnee (de type string) de
votre application MonAppli.xls. Cette donnée représente le texte à
afficher à l'ouverture du classeur, vous pouvez alors l'enregistrer avec
le code SaveSetting "MonAppli",
"Ouverture", "texte", strMaDonnee.
Ce qui donne la clef [HKEY_USERS\Software\VB
and VBA Program Settings\MonAppli\Ouverture\texte], celle-ci
contenant la valeur de strMaDonnee.
Mais si vous désirez modifier une clef de la base qui ne soit pas à
vous ou placer ailleurs vos valeurs, vous devez utiliser les API.
Insérer un module dans votre classeur et tapez le code suivant :
Option Explicit
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_DYN_DATA = &H80000004
Const REG_SZ = 1 ' valeur chaîne
Const KEY_QUERY_VALUE = &H1
Const KEY_ALL_ACCESS = &H3F
Const ERROR_SUCCESS = 0
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias
"RegCreateKeyA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias
"RegDeleteKeyA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias
"RegDeleteValueA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll"
Alias "RegQueryValueExA" _
(ByVal hkey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias
"RegSetValueExA" _
(ByVal hkey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
lpData As Any, _
ByVal cbData As Long) As Long
Public Function Enreg_Val(Clef As Long, sousClef As String, Valeur As
String, Donnee As String) As Boolean
Dim Resultat As Long, Ident As Long
On Error Resume Next
Resultat = RegCreateKey(Clef, sousClef, Ident)
If Resultat = ERROR_SUCCESS Then
Resultat =
RegSetValueEx(Ident, Valeur, 0&, REG_SZ, ByVal Donnee, Len(Donnee) +
1)
If Resultat =
ERROR_SUCCESS Then Enreg_Val = True
End If
Resultat = RegCloseKey(Ident)
End Function
Public Function Lit_Val(Clef As Long, sousClef As String, Valeur As
String) As String
Dim Resultat As Long, Ident As Long, TailleBuffer
As Long
Dim Donnee As String
On Error Resume Next
Lit_Val = ""
TailleBuffer = 255
Donnee = String(TailleBuffer, " ")
Resultat = RegOpenKeyEx(Clef, sousClef, 0,
KEY_ALL_ACCESS, Ident)
If Resultat = ERROR_SUCCESS Then
Resultat =
RegQueryValueEx(Ident, Valeur, 0&, REG_SZ, ByVal Donnee, TailleBuffer)
Lit_Val = Left(Donnee,
TailleBuffer - 1)
End If
Resultat = RegCloseKey(Ident)
End Function
Public Function lit_UneValeur() As String
On Error Resume Next
lit_Licence = Lit_Val(HKEY_LOCAL_MACHINE,
"Software\Gemccap\WebOnet", "Nom")
End Function
Public Sub Enreg_Valeur()
On Error Resume Next
Enreg_Val HKEY_LOCAL_MACHINE, "Software\Gemccap\WebOnet",
"Nom", "Monier"
End Sub
Éviter l'exécution des scripts
Un script est susceptible de contenir un virus, si vous double-cliquez
sur celui-ci le virus s'exécute. Il est alors préférable de ne plus
affecter le double-clic à l'exécution du script.
- Dans le Panneau de configuration, ouvrez .
- Sélectionnez l'onglet
- Recherchez l'extension
ou le type de fichier
- Cliquez sur le bouton
- Dans la liste , sélectionnez ,
puis cliquez sur .
Recommencer pour l'extension , VBS et
VBE
Les numéros de page et les champs ne sont pas exactes lors de
l'impression
Parfois lorsque vous imprimez, les numéros de page persistent à
afficher 1/1, 2/2,3/3,... ou d'autres invraisemblances.
Pour corriger ce fait, il suffit de cocher l'option Mettre à jour les
champs sur l'onglet Impression, menu Outils/Options.
Personnaliser la fenêtre "Ouvrir" et
"Enregistrer"
Depuis la version 2000, 5 icônes situées à gauche de la fenêtre
permettent d'atteindre rapidement "Historique", "Mes
documents", "Bureau", "Favoris", "Favoris
réseau". Vous pouvez mettre vos propres boutons vers les dossiers
que vous désirez.
- Ouvrez l'éditeur du Registre : ,
tapez puis cliquez sur .
- Ouvrez la clé HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\
Common\Open Find\Places\StandardPlaces.
- Sélectionnez une des clefs Desktop (Bureau), Favorites (Favoris),
MyDocuments (Mes documents), Publishing (Favoris réseau), Recent (Historique)
- Clic-droit, sélectionnez .
- Nommez Show cette entrée et laissez
la valeur à 0. ceci permet de ne plus afficher le dossier
correspondant.
- Sélectionnez la clé HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\
Common\Open Find\Places\UserDefinedPlaces\Place1. Si cette clé
n'existe pas, clic-droit sur UserDefinedPlaces,
puis sélectionnez , tapez Place1
puis Entrée.
- Clic-droit, sélectionnez . Renommez la Name.
- Recommencez pour une nouvelle chaîne dénommée Path.
- Double-clic sur la valeur Name, que
vous venez de créer, donnez-lui le nom de votre nouvel emplacement.
- Double-clic sur la valeur Path que
vous venez de créer, tapez le nom du chemin complet de votre dossier.
Pour éviter les erreurs, ouvrez l'explorateur, sélectionnez votre
dossier, cliquez sur la barre ( pour l'afficher), appuyez sur les
touches Ctrl+c (pour copier), fermez
l'explorateur et collez-la, avec Ctrl+v,
dans la boîte de dialogue de .
- Fermez la base de registre.
Pour ajouter un autre bouton, il suffit de recommencer en ajoutant la
valeur Show (DWORD) à une des clefs de StandardPlaces.
Puis ajouter une clef Place2 à la clef UserDefinedPlaces.
Vous pouvez ainsi afficher 5 grosses icônes ou 10 petites réparties
entre celle de StandardPlaces et celles de UserDefinedPlaces.
- Pour ordonner ces boutons, ajouter une valeur DWORD aux différentes
clefs StandardPlaces et/ou UserDefinedPlaces
(clic-droit et sélectionnez ).
- Nommez Index cette entrée et attribuez l'index que vous désirez :
1 pour la 1ère et ainsi de suite.
|