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

VBScript Discussion :

Activer un classeur ouvert


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 34
    Par défaut Activer un classeur ouvert
    Bonjour à tous,

    Le script VBS sur lequel je travaille me permet d'extraire des données d'une base et d'ouvrir un fichier Excel contenant les données exportées. Ce fichier Excel porte un nom différent à chaque extraction. Or j'ai besoin de travailler sur ce fichier Excel mais je ne sais pas comment l'affecter dans une variable puisque son nom change à chaque fois.

    Si j'utilise la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set TmpWorkbook = ExcelApp.ActiveWorkbook
    Ça marche, mais uniquement si je n'ai aucun autre classeur ouvert. À partir du moment où j'ai déjà un (ou plusieurs) fichier(s) Excel ouvert(s), ça ne marche pas..

    Quelqu'un pour m'aider ?

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut
    Ce fichier Excel porte un nom différent à chaque extraction
    Tu connais peut être le nom du dossier, si oui, le fichier dans ce dossier est il le seul?, ce de fichier a peut être des similitudes a chaque fois dans son nom ?.....

    Suivant ta/tes réponses, il sera peut être possible de t'aider.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 34
    Par défaut
    Merci pour votre réponse.

    C'est un fichier Excel temporaire, donc stocké "provisoirement" dans le dossier Temp. Après, le fichier Excel en question est de la forme "[ID]_[date du jour]_[une série de chiffres sans logique]" donc à mon sens impossible à traiter...

    J'ai également vu qu'un problème similaire au mien avait déjà été abordé sur ce forum mais je n'ai pas trop compris les solutions apportées : http://www.developpez.net/forums/d10...connaitre-nom/

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Re

    [ID]_[date du jour]_[une série de chiffres sans logique]
    date du jour tu n'as qu'un fichier par jour?
    Si oui, en se branchant sur le dossier Temp et en triant les noms de fichier avec la date du jour dans son nom suffirait il ?
    Si non, plusieurs noms de fichier contenant la date du jour, si celui à traiter est le dernier du jour, en lisant la propriété modifié le cela reste possible de le retrouver.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 34
    Par défaut
    Bonjour,

    date du jour tu n'as qu'un fichier par jour?
    Pas forcément un fichier par jour.

    Si non, plusieurs noms de fichier contenant la date du jour, si celui à traiter est le dernier du jour, en lisant la propriété modifié le cela reste possible de le retrouver.
    Je vais essayer de voir dans cette direction, merci.

    Par ailleurs, comme l'ID est toujours le même, une autre solution serait de rechercher, parmi tous les classeurs ouverts, celui qui contient la chaîne de caractères correspondant à l'ID. Aurais-tu une idée de comment faire cela ?

    Encore merci

    EDIT : Un truc de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set ExcelApp = CreateObject("Excel.Application")							
    ExcelApp.Visible = True	
    for each Wk in ExceApp.Workbooks
       if InStr(Wk.Name, "CH99") > 0 then
          Wk = ActiveWorkbook
       end if
    next
    Sachant que CH99 est l'ID.

    Mais malheureusement ça ne marche pas... :/

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par zakake Voir le message
    Sachant que CH99 est l'ID.
    Mais malheureusement ça ne marche pas...
    Cela fonctionne en affectant une variable objet via l'instruction Set et différente de celle utilisée dans la boucle
    ou avec un minimum de logique si le classeur est trouvé alors ne pas oublier de sortir de cette boucle !

    _________________________________________________________________________________________________________
    Je suis Paris, Berlin, Nice, Bruxelles, Charlie, …

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Pour ne pas avoir d'erreur, j'ai dût modifier le code (GetObject non pas CreateObject, et ajout de vbNullString) Set ExcelApp = GetObject(vbNullString, "Excel.Application").
    GetObject pour éventuellement récupérer une session Excel et non pas la créer.
    Je n'y connais quasiment rien en tableur Excel.
    J'ai essayé d'ouvrir 2 .xls, il n'y a jamais de détection des tableaux ouverts dans la boucle For Each ....
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Activer un classeur ouvert manuellement
    Par bencio dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/02/2016, 13h22
  2. Réponses: 5
    Dernier message: 07/09/2012, 08h16
  3. Activer un classeur ouvert sans connaitre son nom
    Par djjilou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/04/2012, 17h47
  4. activer un classeur ouvert sans connaitre son nom
    Par touriste01 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 24/02/2011, 09h05
  5. [VBA-E] Probleme avec l'activate d'un classeur ouvert pour un copy paste
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/08/2006, 22h31

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