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 Function

Bonjour à 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 Function

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

image

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 Function

Des fois je pêche par rapidité.

Rechercher des sujets similaires à "fonctionnement macros onedrive"