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 :

API nom d'un fichier sélectionné


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut API nom d'un fichier sélectionné
    Bonjour à tous !

    je suis à la recherche d'une API windows qui permet de connaitre le nom du fichier sur lequel l'utilisateur à cliquer.

    En fait, j'essaie de faire une macro qui fait bouger et cliquer la souris toute seule sur un certains nombre de fichiers d'un dossier (que je fais apparaître grace à Shell explorer etc.) et lorsque je tombe sur le fichier recherché je fais un clic droit pour ouvrir le menu contextuel (en fait c'est un fichier excel dont j'ai besoin d'éditer un fichier .xml à l'intérieur, je n'ai donc pas besoin de l'ouvrir).

    J'arrive à faire bouger et cliquer la souris par contre j'arrive pas à trouver une API qui permet de récupérer le nom du fichier où j'ai précédemment cliqué dessus.

    ça se trouve y'a une autre solution qui passe pas forcément par une API et je prends aussi, enfin voila j'espère avoir été assez clair (je reconnais que c'est un peu alambiqué ce que j'essaie de faire)


    merci d'avance

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    As tu été voir du coté des "FileDialog"

    et plus précisément : msoFileDialogFilePicker

    tu dis

    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    non je connaissais pas j'ai regardé et j'essaie de trouver un moyen de l'intégrer à mon problème


    Edit : J'ai regardé mais ça marche pas car j'ai aussi besoin d' "explorer" (le verbe pas l'éxécutable lol) le fichier excel pour retrouver mon fichier .xml à l'intérieur.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Va falloir que tu appelles le département des miracles. Il n'y a aucune API Windows qui permette de chercher un fichier XML dans un fichier Excel.

    Une fois que tu as utilisé la boîte de dialogue pour ouvrir le classeur Excel, tu utilises Excel pour chercher dans Excel.

    Ceci dit, enregistrer un fichier xml qui reste un fichier xml dans un classeur Excel, cela tient du délire.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    je crois que je m'exprime mal mais ce n'est pas un délire : j'ai un fichier excel avec une liste de 200/300 fichiers excel qui déconnent à cause d'un TCD sur chacun des fichiers, le problème se résout en allant modifier (grace au bloc-notes) le fichier pivotCacheDefinition1.xml de chaque fichier.
    En le faisant à la main il faut ouvrir le fichier avec 7zip recherché le xml et l'éditer : je veux resimuler tout cela avec une macro en lui disant quel route suivre par rapport à ce qu'il clique.



    Pour la petite histoire: j'arrive déjà avec une macro à modifier le pivotCacheDefinition1.xml en décompressant le fichier excel, en modifiant le .xml et en recompressant le tout. Le problème avec cette technique c'est que certains fichiers sont volumineux et cela génère des fichiers temporaire qui sature le disque dur. C'est pour cela que je suis sur une technique qui modifie le .xml sans décompression/recompression


    voila voila^^

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour

    il est impossible de modifier le xml d'un fichier xlm sans l'extraire du zip ou rar du moins a ma connaissance
    sinon tu pense bien que la securité est 100% remise en cause tu le comprends bien

    par contre je suis interessé par le comment tu dezip ton fichier excel xlm

    apres les fichier temporaire ca se netoie
    avecla reference Sripting runtime tu peut aller vider le dossier temps par exemple ou bien le Appdata roaming....... etc.....
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    je dézip le fichier excel avec une commande 7zip

    par exemple :
    Shell "C:\Program Files\7-Zip\7z.exe x C:\Donnees\POK\FichierADecompresser.xlsm -oC:\Donnees\POK\decomptemp" (apres le -o c'est la destination, le dossier "decomptemp" n'existe pas à l'origine, il est créé en meme temps que la décompression)

    j'utilise cette ligne de code dans une fonction qui fait patienter la macro le temps que le shell finisse

    le plus compliqué à mon sens reste la recompression : en recompressant avec 7zip le fichier devient corrompu, il faut passer par le "zipper" natif de windows pour que le fichier ne le soit pas




    par contre pour l'instant je pense arréter mes recherches car ce matin je "m'amusais" à coder les déplacements de souris et j'ai carrément fait disparaitre le curseur lol

    merci a tous pour vos réponses en tout cas

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour.

    Citation Envoyé par Minise Voir le message
    je dézip le fichier excel avec une commande 7zip
    Tous les fichiers Office avec une extension MS à quatre lettres, sont déjà des fichiers zip sans l'extension zip. Il n'y a pas vraiment d'intérêt à les rezipper

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonsoir clement
    oui tout a fait d'accords ce qui m'interèssait c'est le zipage et l'ouverture et extraction du xml
    pour le zippage la fonction name suffit
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par patricktoulon Voir le message
    Bonsoir clement
    oui tout a fait d'accords ce qui m'interèssait c'est le zipage et l'ouverture et extraction du xml
    pour le zippage la fonction name suffit
    Là, je dirais que c'est plus délicat. À mon avis, note que je peux me tromper, il y a deux cas possibles. Si tu as un fichier Office "original" dont juste l'extension a été changée, tu n'as qu'à rechanger l'extension. Mais si tu as un fichier Office qui a été "rezippé", là j'ai l'impression qu'Il faille le "dézipper" une fois avant de rechanger l'extension. Mais là, pour savoir dans quel cas on se trouve, cela ne semble pas évident.

    D'un autre côté, si tu veux récupérer les divers éléments d'un fichier Word, Excel ou PowerPoint sans utiliser l'application initiale, il y a moyen de le faire avec VB.net et même C#, avec le SDK OpenXML. Pour un fichier, par exemple, Visio, ou Publisher, il y a aussi moyen de le faire en .net, mais sans utiliser le SDK.

    Mais, pour quelqu'un qui veut voir le "côté obscur de la Force, oups d'un fichier Open XML, il y a cet utilitaire gratuit :

    http://packageexplorer.codeplex.com/releases/view/4373

    Ce n'est pas le seul, mais c'est le plus complet que je connaisse.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    pour le zippage la fonction name suffit

    On peut créer un fichier zip à partir de plusieurs dossiers grâce à la fonction name ? me semble pas que ce soit possible pour ça que je passe par le zip de windows

  12. #12
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Relis consciencieusement le no 8, parce que Patrick réagissait à ce que je disais au numéro 8.

    Dis autrement : Depuis Office 2007, les fichiers Office avec une extension à quatre lettres sont des fichiers zip sans l'extension zip. Donc, à part que pour tromper les FAI qui ne veulent pas de fichiers de macros dans leurs réseaux, il n'y a aucun intérêt à zipper des fichiers Office.

  13. #13

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Re
    Rdurupt qu avez vous fait a mon mailer toi et grizan
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Invité
    Invité(e)
    Par défaut
    Si j'ai apporter une petite pierre à ton grand géni , avec mes petits moyen, j'en serais ravis!

    Si tu cherche de idées d'adonne!

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/06/2015, 18h26
  2. [XL-2010] Récupérer nom fichier sélectionné
    Par Blaiz58 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/11/2014, 02h10
  3. JFileChooser sans JFrame - Receuillir les path et nom du fichier sélectionné
    Par Chavadam dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 14/08/2013, 12h12
  4. Réponses: 19
    Dernier message: 05/11/2007, 12h11
  5. Réponses: 6
    Dernier message: 08/03/2006, 14h58

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