Accueil

Windows Word Excel Access Glossaire Télécharger Forum  
VBA Internet     Matériel Liens Lettre Cathy
N'oubliez pas

Besoin d'une assistance, d'une application
MS Office

Consultez GEMCCAP

Ecrivez-moi

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
    • La fonction RECHERCHEV
  • 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"

Access

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 Fichier/Ouvrir).

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).

Excel

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.

VBA

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

'Constantes correspondant aux cinq clés
'à la base de la base de registres


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

'API nécessaires

'pour créer ou ouvrir une clé
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long

'pour supprimer une clé
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String) As Long

'pour supprimer une valeur
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
(ByVal hkey As Long, _
ByVal lpSubKey As String) As Long

'pour lire une valeur
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

'pour fixer ou créer une valeur
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

'les fonctions
'pour enregistrer une valeur dans la base
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

'Pour lire une valeur dans la base
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

'maintenant un exemple de lecture de la valeur Nom de la sous-clé Software\Gemccap\WebOnet de la clé HKEY_LOCAL_MACHINE:
Public Function lit_UneValeur() As String
On Error Resume Next
     lit_Licence = Lit_Val(HKEY_LOCAL_MACHINE, "Software\Gemccap\WebOnet", "Nom")
End Function

'et un exemple de l'enregistrement d'une valeur Nom de la sous-clé Software\Gemccap\WebOnet de la clé HKEY_LOCAL_MACHINE:
Public Sub Enreg_Valeur()
On Error Resume Next
     Enreg_Val HKEY_LOCAL_MACHINE, "Software\Gemccap\WebOnet", "Nom", "Monier"
End Sub

Windows

É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 Options des dossiers.
  • Sélectionnez l'onglet Types de fichiers
  • Recherchez l'extension JS ou le type de fichier Jscript Script File
  • Cliquez sur le bouton Avancé
  • Dans la liste Actions, sélectionnez Modifier, puis cliquez sur Par défaut.

Recommencer pour l'extension JSE, VBS et VBE

Word

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.

  1. Ouvrez l'éditeur du Registre : Démarrer/Exécuter, tapez Regedit puis cliquez sur Ok.
  2. Ouvrez la clé HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\
    Common\Open Find\Places\StandardPlaces
    .
  3. Sélectionnez une des clefs Desktop (Bureau), Favorites (Favoris), MyDocuments (Mes documents), Publishing (Favoris réseau), Recent (Historique)
  4. Clic-droit, sélectionnez Nouveau/Valeur DWORD.
  5. Nommez Show cette entrée et laissez la valeur à 0. ceci permet de ne plus afficher le dossier correspondant.
  6. 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 Nouveau/clé, tapez Place1 puis Entrée.
  7. Clic-droit, sélectionnez Nouveau/Valeur chaîne. Renommez la Name.
  8. Recommencez pour une nouvelle chaîne dénommée Path.
  9. Double-clic sur la valeur Name, que vous venez de créer, donnez-lui le nom de votre nouvel emplacement.
  10. 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 Adresses (Affichage/Barre d'outils/Barre d'adresses 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 Regedit.
  11. 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.
AccueilDébut de la page