IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aller chercher une info dans un Excel hébergé sous Sharepoint 365


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 36
    Par défaut Aller chercher une info dans un Excel hébergé sous Sharepoint 365
    Bonjour à tous,

    J'ai beau tourner le truc dans tous les sens depuis des jours et des jours, je n'y arrive pas !

    WIN7Pro - Excel 2010 - Sharepoint online 365

    Je voudrais récupérer une valeur dans un fichier excel hébergé dans un sharepoint online à partir d'autre fichier excel (2010) sur mon disque D via VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub TestShPt()
     
    ActiveWorkbook.Sheets("TestVBA").Range("C9").Value = Workbooks("\\enp.sharepoint.com@SSL\DavWWWRoot\Sites\testdropfileGrpO365\Documents partages\TestMalhorne\Source Malhorne TestShPt.xlsx").Sheets("Feuil1").Range("D10").Value
     
    End Sub
    J'ai tjrs le même message d'erreur :
    Erreur d'exécution '9' L'indice n'appartient pas à la sélection
    Ce qui laisse penser que le nom du fichier, de l'onglet ou de la cellule n'est pas reconnu.
    Avec les variables espions, il me semble que c'est le chemin + nom du fichier Excel sous Sharepoint qui coince ... (certainement une "virgule" pas à sa place ...mais je ne trouve pas l'erreur)

    J'ai réussi (après beaucoup de difficultés) à récupérer le chemin (avec DavWWWRoot ... ça ne s'invente pas !) en passant par "ouvrir dans l'explorateur".
    Mais même avec "W:\TestMalhorne\Source Malhorne TestShPt.xlsx", j'ai le même message d'erreur

    J'ai déclaré mon site enp.sharepoint.com dans les sites de confiance avec l'option nom d'utilisateur + MdP
    J'ai redémarré, recommencé, ... utiliser toutes les combinaisons qui me sont venues à l'esprit (https://, \\, documents partages, shared documents, remplacé les espaces par %20, ...) ... je suis à court d'idées !
    J'en appelle donc à votre grande expérience et votre grande sagacité ... (le service informatique de mon entreprise m'a envoyée bouler ... grrrr)

    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu peux intégrer le chemin Sharepoint dans ton explorateur. Tu peux alors utiliser ce chemin comme si les fichiers étaient "locaux" sans te préoccuper que tu te connectes au SharePoint
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 36
    Par défaut
    Coucou,

    Comme indiqué dans mon msg initial, j'ai bien essayé, mais KO aussi ...
    "W:\TestMalhorne\Source Malhorne TestShPT.xlsx"
    où W:\ est le lecteur réseau connecté avec le chemin du SP

    pffff.....

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Décompose l'accès au fichier en créant une variable pour le fichier, que tu dois ouvrir, puis pour la feuille vers laquelle tu pointes puis vers la cellule.

    Pour aller rechercher une donnée dans un fichier, il faut qu'il soit ouvert, même s'il existe des possibilités d'y arriver par SQL sans ouvrir le fichier avec Excel, je pense que c'est beaucoup se compliquer la vie pour pas grand-chose.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Par défaut [XL-2010] code VBA pour aller chercher une info dans un excel hégergé sous Sharepoint 365
    Bonjour,

    Il faut ouvrir le fichier sur SharePoint, récupérer la donnée dans une variable, fermer le fichier et écrire la variable dans votre fichier.
    Cordialement,

  6. #6
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 36
    Par défaut
    @ Pierre
    J'ai fait toutes mes tentatives en ayant au préalable ouvert le fichier "source", soit dans Excel 365, soit dans Excel 2010 (je savais que c'était plus simple avec le fichier ouvert). Sans succès.
    J'ai également testé la décomposition : une variable chemin + une variable nom de fichier et concaténer les 2 pour aller chercher l'info souhaitée. KO aussi

    ... à moins que ... "ouvrir le fichier", tu veux dire par VBA ? ou à la main, indépendamment de toute autre commande VBA ?
    Je me suis focalisée sur l'identification du chemin SP, j'en ai négligé les basics ? ...


    @ Form_Zen
    Ouvrir le fichier. ok
    Récupérer la donnée .... c'est justement là que ça coince. Le chemin emprunté ne m'y conduit pas ...


    A bientôt

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu dois ouvrir le fichier en vba si tu veux le manipuler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim wb as workbook
    dim sh as worksheet
     
    set wb = workbooks.open(Path)
    set sh = wb.worksheets(...)
    ...
    ...

    Voilà ce que cela pourrait donner avec ton chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub Test()
      Dim Filename As String
      Dim SheetName As String
      Dim wb As Workbook
      Dim sh As Worksheet
      Dim r As Range
      Dim Value
     
      Filename = "\\enp.sharepoint.com@SSL\DavWWWRoot\Sites\testdropfileGrpO365\Documents partages\TestMalhorne\Source Malhorne TestShPt.xlsx"
      SheetName = "Feuil1"
      Set wb = Workbooks.Open(Filename)
      Set sh = wb.Worksheets(Feuil1)
      Set r = sh.Range("D10")
      Value = r.Value
      wb.Close False
    End Sub

    Cela dit, il se peut que ton chemin réseau pose problème. Puisque tu l'as monté en W:\, essaie avec ce chemin local.


    Cela dit, il est étrange de devoir aller chercher une cellule précise d'une feuille précise d'un autre classeur. Je suppose que c'est un premier test mais que as d'autres choses à réaliser par la suite avec ce fichier. Il pourrait être intéressant, pour obtenir une réponse plus adaptée à ton besoin réel, d'expliquer ce que tu souhaites mettre en place sur un plan fonctionnel.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre confirmé
    Homme Profil pro
    Gestionnaire de projet dans le BTP
    Inscrit en
    Janvier 2017
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de projet dans le BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2017
    Messages : 88
    Par défaut
    Pour information, la collection WorkBooks ne contient que des fichiers déjà ouverts par VBA ou à la main (dans une même instance d'Excel, mais c'est généralement le cas), et dans WorkBooks(Fichier), Fichier ne doit pas contenir de chemin. C'est d'ailleurs pour ça qu'Excel interdit d'ouvrir en même temps deux fichiers de même nom, qui sont dans des répertoires différents.

  9. #9
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 36
    Par défaut
    Coucou,

    Désolée d'avoir tardé à répondre, j'étais accaparée par d'autres sujets.

    Mais bien sûuuuuuur !...
    Mon erreur vient du fait que je mettais le chemin complet dans la désignation du fichier : Workbooks(fichier) où fichier = "\\.......xlsx"
    alors qu'il faut d'abord ouvrir le fichier (ou qu'il soit déjà ouvert) et juste le désigner par son "petit" nom.

    La honte totale !
    Merci (Doatyn) de m'avoir ouvert les yeux

    J'ai voulu faire court, rapide et direct pour récupérer le chemin d'accès à un fichier hébergé dans un sharepoint ... et j'y ai passé un temps fou avec bcp d'énervements inutiles.

    L'objectif final est d'alimenter un tableau Excel à partir de fichiers clients. Chaque utilisateur saisi ses infos dans son fichier, stocké dans sharepoint. (Ce sont les préconisations d'entreprise de tout migrer sous sharepoint ... autant que possible)
    Sharepoint ne supporte pas encore les fichiers avec macros et "mes" utilisateurs ne veulent pas faire leurs saisies dans le tableau final parce que trop lourd, trop long, pas assez sexy,... ça ne les intéresse pas parce que le résultat final n'est pas pour eux mais pour la hiérarchie ... mais la hiérarchie n'encourage pas ces saisies (allez comprendre ...)
    Alors j'essaye de trouver des solutions "faciles" et simples pour eux.


    @Pierre : petite question de "culture générale" (je ne suis pas de formation informaticienne)
    Je comprends l’intérêt d'une variable quand elle doit prendre plusieurs valeurs différentes, éventuellement à différents moments du traitement
    Mais quel est l’intérêt de déclarer plusieurs variables (Filename, Sheetname, wb, sh, r, value) si chacune ne prend au final qu'une valeur unique ? Et qu'en l'occurrence, il s'agit juste de faire un petit test rapide (ou souhaité rapide)
    J'ai l'impression que cela alourdit le code et que cela en complexifie la lecture et la compréhension ...

    J'attends ta réponse et je clos le sujet
    A bientôt

  10. #10
    Membre confirmé
    Homme Profil pro
    Gestionnaire de projet dans le BTP
    Inscrit en
    Janvier 2017
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de projet dans le BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2017
    Messages : 88
    Par défaut
    Dans mon entreprise, on a aussi du SharePoint (2013). Les macros y fonctionnent très bien, en utilisant l'accès SSL à la place de https. Ceci marche, que la macro soit dans SharePoint ou pas :
    Workbooks.Open(\\enp.sharepoint.com@SSL\ ... xls
    Après, tu n'a plus qu'à trouver une boucle qui va aller ouvrir un à un tous les fichiers de tes utilisateurs.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu ne peux pas accéder à une cellule du classeur s'il n'est pas ouvert. Dès lors, tu dois l'ouvrir et, tant qu'à l'ouvrir, le stocker dans une variable te permettra de le manipuler, et donc de le fermer, facilement.

    Pour le reste, c'est une question de style de programmation d'une part, et de possibilité de vérification et de test d'autre part. En attribuant ces objets à des variables, tu te donnes la possibilité de tester que les objets existent. Il est plus facile de déboguer des lignes de code qui ne font qu'une chose qu'une ligne dans laquelle tu dois "espérer" que ce que tu manipules existe bien. C'est pourquoi, en test ou lorsque l'on rencontre un problème, il est utile de passer par des variables pour voir plus rapidement où ça coince.

    Cela étant, tu tagues 2010 => Power Query pourrait être une solution pour la consolidation de tes classeurs. Cet outil, qui doit être installé sur les XL 2010 (il ne l'est pas "par défaut") permet de rassembler plusieurs tableaux en un seul, sans aucune ligne de code et de manière sécurisée. Je pense que cela pourrait être une piste à explorer dans ton cas.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Aller chercher des infos dans plusieurs dossiers.
    Par Yepazix dans le forum Langage
    Réponses: 19
    Dernier message: 09/12/2013, 02h12
  2. Récupérer le title pour chercher une info dans la BD
    Par mamillette dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2011, 21h32
  3. aller chercher une image dans un formulaire
    Par mike5923 dans le forum Struts 1
    Réponses: 2
    Dernier message: 11/01/2008, 10h43
  4. Réponses: 9
    Dernier message: 11/07/2007, 23h46
  5. Comment aller chercher une info dans un fichier
    Par El-Diablo- dans le forum C++Builder
    Réponses: 15
    Dernier message: 06/05/2007, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo