Environ – Fonction VBA


La fonction VBA Environ() permet d'accéder aux valeurs des variables du système. Cette fonction, fort technique, sera utile surtout aux utilisateurs avancés de VBA. Avec l'exception du cas où avez besoin d'obtenir le nom de l'utilisateur – ce cas de figure peut être pratique même aux débutants.

Si vous créez des applications en Excel, cette fonction vous permettra de rendre votre code suffisamment flexible pour qu'il puisse être utilisable sur le maximum de machines. Il vous seras également possible de créer toute la gestion des droits d'utilisateurs. Ces possibilités peuvent donc facilement transformer un "fichier tableur" (.xlsm) en une vraie application!

Le syntaxe de la fonction Environ()

Cette fonction peut être utilisée avec deux types d'arguments:

  • les noms de variables (en tant que String) – notez que ces noms ne sont pas sensibles aux majuscules et minuscules
  • les chiffres de 1 à 255 (en tant qu' Integer) qui représentent les numéros de position des variables. Ceci peut être utile si vous ne connaissez pas le nom exact de la variable ou si vous voulez faire une boucle pour vérifier toutes les variables (Le code pour afficher toutes les variables et toutes les valeurs se trouve ici – FAQ VBA: Comment obtenir les variables de système? )

Remarque:
Sachez que le nombre de variables disponibles peut varier d'un système à l'autre. Le nombre maximum est 255 mais habituellement, vous en trouverez 40-50.
Les noms de variables sont classées de A à Z ce qui peut compliquer l'utilisation du numéro de variable en tant qu'argument de la fonction Environ(). La variable (on parle bien de variable et pas de la valeur de la variable) qui se "cache" derrière Environ(36) dans un système peut être différente de Environ(36) dans un autre système.

L'utilisation des numéros de variable devrait donc se limiter à l'énumération des variables disponibles et ne pas être utilisée pour aller chercher une variable en particulier…

La syntaxe de la fonction est donc la suivante:

x = Environ("NomDeLaVariable")
ou
x = Environ(NuméroDePositionDeLaVariable)

Pourquoi utiliser la fonction Environ()?

Parmi les variables accessibles via la fonction Environ(), on peut trouver, entre autres:

  • les chemins vers différents dossiers de système comme:
    • ProgramFiles – retourne le chemin du dossier "Program Files"
    • TEMP – retourne le chemin du dossier temporaire de l'utilisateur
    • Windir – retourne le dossier de Windows
  • les informations concernant l'ordinateur et l'utilisateur comme:
    • OS – retourne la version de Windows installée sur l'ordinateur
    • COMPUTERNAME – retourne le nom de l'ordinateur
    • USERNAME – retourne le nom de l'utilisateur

Remarque: si la variable demandé n'existe pas, la fonction ne retourne pas une erreur mais une chaîne vide ""


Fini la théorie, voici quelques cas pratiques en exemples d'utilisation de la fonction Environ().

Afficher le nom de l'utilisateur avec la fonction Environ()

Ceci va retourner une valeur semblable à "Pierre Malin" ou "AD45236". En fait, il s'agit du nom de l'utilisateur tel qu'il apparaît dans le système. Dans le monde des entreprises, le nom d'utilisateur aura, le plus souvent, la forme d'une valeur numérique ou d'un autre identifiant (= numéro d'employé). Ne soyez donc pas étonnés de voir un "nom d'utilisateur" qui ressemble à "U201654".

Trouver le dossier "Program Files" avec Environ()

ceci va retourner une valeur semblable à "C:\Program Files"

Trouver la version de Windows avec Environ()

ceci va retourner par exemple: "Windows_NT"

Liste des variables système disponibles à la fonction Environ()


Voici la liste des variables ainsi que la forme finale de la fonction qui sera utilisé dans le code VBA.

ALLUSERSPROFILEx = Environ("ALLUSERSPROFILE")
APPDATAx = Environ("APPDATA")
BEST_IPCx = Environ("BEST_IPC")
CommonProgramFilesx = Environ("CommonProgramFiles")
COMPUTERNAMEx = Environ("COMPUTERNAME")
ComSpecx = Environ("ComSpec")
FP_NO_HOST_CHECKx = Environ("FP_NO_HOST_CHECK")
HOMEDRIVEx = Environ("HOMEDRIVE")
HOMEPATHx = Environ("HOMEPATH")
HOMESHAREx = Environ("HOMESHARE")
LOCALAPPDATAx = Environ("LOCALAPPDATA")
LOGONSERVERx = Environ("LOGONSERVER")
LONGUSERIDx = Environ("LONGUSERID")
NUMBER_OF_PROCESSORSx = Environ("NUMBER_OF_PROCESSORS")
OSx = Environ("OS")
Pathx = Environ("Path")
PATHEXTx = Environ("PATHEXT")
PROCESSOR_ARCHITECTUREx = Environ("PROCESSOR_ARCHITECTURE")
PROCESSOR_IDENTIFIERx = Environ("PROCESSOR_IDENTIFIER")
PROCESSOR_LEVELx = Environ("PROCESSOR_LEVEL")
PROCESSOR_REVISIONx = Environ("PROCESSOR_REVISION")
ProgramDatax = Environ("ProgramData")
ProgramFilesx = Environ("ProgramFiles")
PSModulePathx = Environ("PSModulePath")
PUBLICx = Environ("PUBLIC")
SESSIONNAMEx = Environ("SESSIONNAME")
SystemDrivex = Environ("SystemDrive")
SystemRootx = Environ("SystemRoot")
TEMPx = Environ("TEMP")
TMPx = Environ("TMP")
TNS_ADMINx = Environ("TNS_ADMIN")
UATDATAx = Environ("UATDATA")
USERDNSDOMAINx = Environ("USERDNSDOMAIN")
USERDOMAINx = Environ("USERDOMAIN")
USERDOMAIN_ROAMINGPROFILEx = Environ("USERDOMAIN_ROAMINGPROFILE")
USERNAMEx = Environ("USERNAME")
USERPROFILEx = Environ("USERPROFILE")
WecVersionForRosebud.2B40x = Environ("WecVersionForRosebud.2B40")
windirx = Environ("windir")
windows_tracing_flagsx = Environ("windows_tracing_flags")
windows_tracing_logfilex = Environ("windows_tracing_logfile")

Pour aller plus loin

  • Si vous tenez à voir la page officielle de cette fonction: Environ, fonction – Microsoft mais sachez que elle ne contient pas la liste des arguments possibles (que vous trouverez ci-dessus).

 

35 0

 

Pourrait vous intéresser

Partagez cette page...
Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on RedditShare on TumblrDigg thisEmail this to someone

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.