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 :

manipulation avec d'autres classeur excel [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut manipulation avec d'autres classeur excel
    J'ai un classeur qu'on va nommé toto.xls
    Dans ce classeur je veux récupérer des données qui se trouvent dans d'autres classeur qui commencent tous par bud*.xls (stockés dans le même repertoire).
    les données à récupérees sont toujours sur la feuil4 (qui à un nom mais différent dans chaque classeur (c'est l'année qui change en fait)) donc il faut utiliser feuil4 ou item(4) je suppose.
    Dans chaque fichier je cherche la derniere ligne non vide (dernligne= Feuil4.Range("A2").End(xlDown).Row) et suivant cette ligne je copie A2:Adernligne et F2:Fdernligne dans mon classeur toto.

    Ma question est puis-je faire ca sans ouvrir les classeurs qui commencent par bud ?
    Pour l'instant j'ai commencé mais j'arrive juste à ouvrir et fermer les classeurs qui commencent par bud et je n'arrive pas à prendre des données dans ces classeurs.
    La solution avec classeur fermé doit être mieux je pense et plus rapide pour l'éxécution mais ca je n'ai pas trouvé comment faire.
    Si quelqu'un peut m'aider..
    Merci

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,
    Manipuler les fichier sans les ouvrir est légèrement complexe et comporte plusieurs limitation regarde ce tuto
    Lire et écrire dans les classeurs Excel fermés

    Je te conseillerais d'ouvrir le fichier de récupérer ce qui t'intéresse et de le fermer
    Pour trouver tous les fichier bud*.xls
    regarde l'aide sur la fonction Dir() et fait une petite recherche sur le forum il y a des dizaine d'exemple (mot clef : lister les fichier d'un repertoire, utiliser la fonction DIR,etc)
    Un exemple de la FAQ a adapter
    http://excel.developpez.com/faq/inde...TriFichiersRep
    un autre qui utilise une autre méthode
    http://excel.developpez.com/faq/inde...riptingRuntime

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    merci pour ta réponse krovax.
    j'ai regardé un peu sur le forum hier mais je n'ai pas trouvé ce que je voulais.

    Pour toi c'est mieux d'ouvrir le fichier et de le fermer plutot que de prendre mes infos classeur fermé c'est ca? Je pensais que ca prendrais moins de ressource pourtant.

    pour récupérer une donnée d'un autre classeur je suis obligé de taper cette commande (en activant le workbook avant)? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test= ActiveWorkbook.Sheets.Item(1).Range("C28").Value
    avec ca ca fonctionne mais je n'ai pas trouvé la commande avec feuil4.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Leptitdave, Krovax

    Lorsque tu ouvres un classeur celui-ci est forcément actif,
    donc en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test= ActiveWorkbook.Sheets("Feuil4").Range("C28").Value
    tu dois pouvoir récupérer la cellule C28 de la feuille 4

    A+

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    honnètement pour faire les deux régulièrement sur un de mes classeurs je t'avoue qe la différence n'est pas flagrantes si tu as un ordinateur qui ne date pas de matusalem.. .
    D'autant plus que quand tu ouvres des classeurs en tache de fond tu ne réouvre pas excel e tpour peu que tes classeurs ne contiennent pas trop de données ni d'images ou autre choses lourdes ca sera du kif kif bourricot.
    Par contre si tes classeurs sont lourds fait avec le tuto de Krovax (lire et écrire dans des classeurs fermés) c'est ce que j'ai fait et ca marche aussi très bien


    punaise un montargois a posté avant moi eh ben dis donc ...

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    non car ma feuille ne s'appelle pas feuil4 mais à un nom bien défini qui est variable suivant les classeurs.
    Enfin je suis entrain de me débrouiller autrement je regarde le lien de krovax pour Lire et écrire dans les classeurs Excel fermés et je pense m'en sortir avec ca vu mes premiers essais.
    Je reviens vers vous si je coince trop
    Merci encore.

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    si t'as feuille est toujours la 4eme de ton clsseur (ordre de création pas 4eme position dans tes sheets tabs) alors tu peux l'appeler avec sheets(4) ...

  8. #8
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Ce n'est pas que c'est mieu c'est plus simple regarde le tuto que je t'ai indiqué il y a toute une série de limitation a la lecture de classeur fermé.

    je te conseille de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim wb as workbook
     
    set wb=workbook.open(tonchemin)
     
    'ensuite tu utilise wb
    wb.worksheets("feuil1").range("A1")

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    C'est bon avec le tuto j'ai réussi à faire tout ce que je voulais merci. j'ai réadapté pour faire une boucle sur les fichiers commencant par bud et maintenant c'est niquel.
    J'ai opté pour classeur fermé.

    Merci beaucoup j'ai avancé trop vite grâce à vous.

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

Discussions similaires

  1. Créer du code vba excel réutilisable dans d'autres classeurs excel
    Par nicoMU dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2008, 15h22
  2. Réponses: 0
    Dernier message: 30/08/2008, 09h59
  3. Réponses: 5
    Dernier message: 01/07/2008, 14h30
  4. Excel, liaisons avec avec d'autres classeurs
    Par avigeilpro dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/02/2008, 18h08
  5. [VBA-EXCEL] - Fonction NB.SI en liaison avec un autre classeur
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/01/2007, 16h43

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