Fonctionnement macros sur onedrive
Bonjour à tous
je suis nouvelle dans ce forum et nouvelle utilisatrice de onedrive et j'espère que vous pourrez aider
j'ai créé un fichier excel (entretien) avec un user form et des macros et je souhaite le mettre a disposition sur le onedrive de mon entreprise.
les utilisateurs vont ils pouvoir faire fonctionner l user form et les macros directement sur onedrive ou ils vont devoir le télécharger en local ?
dans mon fichier (entretien) je vais aussi via une macro chercher des infos dans un autre fichier (datas), si je mets les fichiers (entretien et data) sur onedrive je dois réécrire mes lignes de codes VBA ? si oui comment je dois les rédiger ?
merci d'avance pour votre aide
a très bientot
Bonjour Paradis et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum.
Concernant votre demande, malheureusement NON, impossible d'utiliser le fichier directement sur Onedrive avec les macros
En revanche si ce fichier est synchronisé en local, ce sera transparent
Pour le lien avec le fichier "data" même chose
Merci de votre participation
Cordialement.
Salut,
Le répertoire de OneDrive de chaque PC étant différent voici une fonction qui récupère le chemin de OneDrive, attention à bien spécifier le OnedriveCommercial ou Consumer.
' Procedure : GetEnvironType(OneDriveType)
' Date : 20/06/2019
' Auteur : Jean-Paul (Valtrase)
' Objectif : Une des variables d'environnement
' Entrée : Sélectionnez le type de dossier onedrive à retourner
' Sortie : Chemin du dossier sinon ""
' Note : https://docs.microsoft.com/fr-fr/office/vba/Language/Reference/User-Interface-Help/environ-function
' Exemple : GetOnDrivepath Retour: "C:\Utilisateur\Moncompte\Onedrive\"
' Variables : ALLUSERSPROFILE; APPDATA; CommonProgramFiles; CommonProgramFiles (x86); CommonProgramW6432; COMPUTERNAME; ComSpec; DriverData; FPS_BROWSER_APP_PROFILE_STRING
' FPS_BROWSER_USER_PROFILE_STRING; HOMEDRIVE; HOMEPATH; LOCALAPPDATA; LOGONSERVER; ; NUMBER_OF_PROCESSORS; OneDrive; OneDriveCommercial; OneDriveConsumer
' OS; Path; PATHEXT; PROCESSOR_ARCHITECTURE; PROCESSOR_ARCHITEW6432; PROCESSOR_IDENTIFIER; PROCESSOR_LEVEL; PROCESSOR_REVISION; ProgramData; ProgramFiles
' ProgramFiles (x86); ProgramW6432; PSModulePath; PUBLIC; SESSIONNAME; SystemDrive; SystemRoot; TEMP; TMP; USERDOMAIN; USERDOMAIN_ROAMINGPROFILE; UserName
' USERPROFILE; windir
Public Function GetEnvironType(Optional EnvironType As vaEnvironType = OneDrive) As String
Dim strEnvironType As String, strTemp As String
'// On récupère la chaine complète
strTemp = Environ(EnvironType)
Debug.Print strTemp
If strTemp <> "" Then
'strTemp = Right(strTemp, Len(strTemp) - InStr(1, strTemp, "=", vbTextCompare))
strTemp = Split(strTemp, "=", , vbTextCompare)(1)
GetEnvironType = IIf(Right(strTemp, 1) = "\", strTemp, strTemp & "\")
Else
GetEnvironType = strTemp
End If
End FunctionBonjour à tous,
@jean-paul
J'ai voulu être curieux et tester ta fonction, seulement j'ai une erreur 'Type défini par l'utilisateur non défini' dans Public Function GetEnvironType(Optional EnvironType As vaEnvironType = OneDrive) As String
J'ai bien tenté un As vbEnvironType, sans succès.
Excel 2019 non connecté mais je ne pense pas que ce soit ça
eric
Salut eric,
Effectivement j'ai loupé quelque chose, je regarde cela demain.
Re,
'———————— ENUMERATION POUR DOSSIER ONEDRIVE ———————————————————————————————————————————————————————————————————————
Public Enum vaEnvironType
AllUsersProfile = 1
ApplicationData = 2
CommonProgramFiles = 3
CommonProgramFiles_x86 = 4
CommonProgramW6432 = 5
ComputerName = 6
ComSpec = 7
DriverData = 8
FPS_BROWSER_APP_PROFILE_STRING = 9
FPS_BROWSER_USER_PROFILE_STRING = 10
HomeDrive = 11
InstalledOS = 19
OneDrive = 16
OneDriveCommercial = 17
OneDriveConsumer = 18
ProgramFiles = 28
ProgramFiles_x86 = 29
ProgramW6432 = 30
SystemDrive = 34
SystemRoot = 35
Temp = 36
tmp = 37
UserDomain = 38
UserName = 40
UserProfile = 41
windir = 42
End Enum
Public Function GetEnvironType(Optional EnvironType As vaEnvironType) As String
Dim strEnvironType As String, strTemp As String
'// On récupère la chaine complète
strTemp = Environ(CInt(EnvironType))
If strTemp <> "" Then
'strTemp = Right(strTemp, Len(strTemp) - InStr(1, strTemp, "=", vbTextCompare))
strTemp = Split(strTemp, "=", , vbTextCompare)(1)
'GetEnvironType = strTemp & "\"
Else
GetEnvironType = strTemp
End If
End FunctionBonjour Jean-Paul,
Tu devrais mettre des exemples de syntaxe, j'ai dû m'y reprendre à plusieurs fois.
Ex : env = GetEnvironType(OneDrive)
En 1er essai j'ai tenté GetEnvironType("OneDrive")
Comme c'est Optional, mon 2nd essai était sans paramètre, je me suis fait jeter...
Tu as oublié la valeur par défaut (Optional EnvironType As vaEnvironType = OneDrive)
Au final j'ai eu "" en réponse. C'est normal, je ne me connecte pas à OneDrive. Pas pu pousser le test plus loin...
eric
Salut eric,
Oui le Optional est peut-être en trop. Ou alors tu peut adapter comme tu le souhaite Public Function GetEnvironType(Optional EnvironType As vaEnvironType = Onedrive ) As String
Si tu crée un module et que tu colles le code au complet, c'est à dire le type Enum et la fonction, tu n'a rien à taper juste à choisir dans la liste.
Ps penser à enlever aussi le commentaire superflus donc en gros cela donne ça :
Public Function GetEnvironType(EnvironType As vaEnvironType) As String
Dim strTemp As String
'// On récupère la chaine complète
strTemp = Environ(CInt(EnvironType))
If strTemp <> "" Then
strTemp = Split(strTemp, "=", , vbTextCompare)(1)
GetEnvironType = strTemp & "\"
Else
GetEnvironType = strTemp
End If
End FunctionDes fois je pêche par rapidité.