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 :

[VBA]Copier le contenu d'une cellule d'un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [VBA]Copier le contenu d'une cellule d'un autre classeur
    Bonjour,
    je débute dans le codage VB sous Excel.

    Je voudrais faire une chose qui semble "simple" mais n'y arrive pas :

    Je voudrais mettre dans une cellule, A1 par exemple, le nom d'une cellule d'un autre fichier (par exemple "[test.xls]Feuil1!F14") et je voudrais que dans la cellule A2 apparaisse la valeur qui est contenu dans cette cellule (F14 de la feuille Feuil1 du fichier test.xls).

    Est-ce possible ???

    J'ai essayé avec CELLULE(), mais n'y arrive pas .

    =CELLULE("contenu";[test.xls]Feuil1!F14) fonctionne, mais je voudrais avoir du style =CELLULE("contenu";CELLULE("contenu";A1)) . Mais ce n'est pas correct en syntaxe.

    Je tourne en rond depuis plusieurs heures (déjà !!!) et je craque.

    Merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    As-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Fichier.XLS]Feuil1!$G$32
    Sincèrement ? Je trouve que tu pousses... Suffit de le faire et tu as la formule...
    Ou alors tu veux autre chose, auquel cas, dis-nous quoi...

    A+

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Mais j'ai une question: tu fais du VBA, ou tu veux juste mettre une formule dans une cellule pour qu'elle prenne la même valeur qu'une autre?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé aussi en VBA, mais je n'y arrive pas.


    je ne veux pas coder =[Fichier.XLS]Feuil1!$G$32 dans la cellule.

    Je veux que le nom du fichier ou de la cellule soit paramérable !

    Donc mettre fichier dans une cellule, Feuil1 dans une autre $G$32 dans une autre encore et générer "=[Fichier.XLS]Feuil1!$G$32" dans une dernière avec la valeur résultante...

    Suis-je clair ?

    j'ai aussi essayé [A2] = [CELLULE("contenu",A1)] , mais j'obtiens #NOM?

    J'ai voulu créer une fonction test() qui fasse tout cela en entrant test(A1), mais c'est toujours pareil ...

    Je vais peut-être aller me coucher et trouver demain après une bonne nuit de sommeil ??

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    ca marchera avec INDIRECT si l'autre classeur est ouvert

  6. #6
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    tu a essayé en enregistrant une macro ??

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci infiniment ...

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu peu jouer avec INDIRECT et peu-être ADRESSE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(1;3;;;"Feuil2"))

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu peux aussi tout paramétrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub InsérerFormule()
         NomFich = "Fichier.xls"
         NomFeuil = "Feuil1"
         NoCol = 5
         NoLigne = 12
         Cells(5, 6).Formula = "=[" + NomFich + "]" + NomFeuil + "!" + Cells(NoLigne, NoCol).Address
    End Sub
    A+

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui, cela je sais faire avec sub(),

    mais j'aurais voulu faire cela avec function ... (car sub() il faut la lancer la macro à chaque fois qu'on modifie les entrées, non ?)

    Du style Function Test(Cellule As Range) As Variant ....

    et mettre dans la feuille Excel : test(A1)

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je comprends. Mais en voulant faire ce que tu dis, il semble me souvenir que ça pose un problème.
    J'avais rencontré des difficultés de mise à jour : Pour que la liaison se fasse, il fallait que j'entre dans la cellule et que je la valide par entrée... Je précise : il y a longtemps et à l'époque je ne connaissais pas les différentes procédures de mise à jour. Je n'ai plus essayé depuis.

    Cependant, il me semble (re) que récemment, quelqu'un avait eu le même problème et la solution retenue avait été, puisqu'il se trouvait en VBA, de résoudre sa formule et de coller le résultat dans la cellule.

    Si tu as lu jusque là, alors tu sais que je n'ai pas de réponse...

    Bonne chance avec bbil, SilkyRoad, jmpmarquès ou autre jpleroisse...

    A+

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai effectivement le problème qu'il faut entrer dans la cellule et valider par <Entrée> pour supprimer le #NOM? qui apparaît ...

    Je pensais bien que je ne devais pas être le seul à m'être posé cette questio .

    Quand j'utilise VBA, effectivement, résoudre la formule et coller est simple. mais je voulais ne mise à jour automatique et c'est pour cela que je pensais à une fonction.

    C'est pas grave. C'était une modif que je voulais faire, mais je vais me débrouiller avec une sub() et puis voilà.

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    On ferme le post ?

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    oki,

    on ferme ...

    merci à tous

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

Discussions similaires

  1. [XL-2000] VBA-Copier la valeur d'une liste dans un autre classeur
    Par Noe06 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2012, 12h01
  2. Réponses: 7
    Dernier message: 23/08/2010, 22h26
  3. [VBA]Copier le contenu d'une cellule x fois selon x
    Par fixou dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/04/2007, 23h58
  4. Copier le contenu d'une cellule dans une variable sous excel
    Par franckB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/04/2007, 19h54
  5. [VBA-E]Copier le contenu d'une cellule vers une autre
    Par idir.17 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/03/2007, 16h50

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