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 :

Récupérer valeur cellule dans classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut Récupérer valeur cellule dans classeur
    Bonjour,

    J'essaye de récupérer des valeurs dans un classeur, le code :
    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
    18
    19
    20
    Sub Macro1()
     
    Dim disk, doss, doss2 As String
     
    Dim chem1, chem2 As String
     
    Workbooks.Open Filename:="C:\e\a.xls"
     
        disk = Range("A1").Value
        doss = Range("A2").Value
       doss2 = Range("A3").Value
     
        chem1 = "c:\e\list.xls"
        chem2 = disk & ":\" & doss & "\" & doss2 & "\list.xls"
     
     
        FileCopy chem1, chem2
    Workbooks.Close
     
    End Sub
    Nota : dans le classeur "a.xls", cellule A1 contient le chemin (exemple c), A2 le nom du dossier (e), A3 le nom du sous dossier (ee)

    Le code fonctionne bien, mais il m'oblige d'ouvrir à chaque fois le classeur "a.xls", n'est-il pas possible de récupérer ces valeurs sans ouvrir le classeur ?

    Merci
    A+

  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
    Par défaut
    Citation Envoyé par ericdev
    Le code fonctionne bien, mais il m'oblige d'ouvrir à chaque fois le classeur "a.xls", n'est-il pas possible de récupérer ces valeurs sans ouvrir le classeur ?
    Si ! Pour cela, regarde ici
    Mais tu peux aussi tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim CL1 as workbook
    Application.screenUpdatig = false
    Set CL1 = Workbooks.Open Filename:="C:\e\a.xls"
    Windows(CL1.name).visible = false
    '... ton code

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Salut Ouskel'n'or,

    J'avais fait un tour sur ce forum , mais quand j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Lecture de la cellule A1 dans la Feuil1 du classeur fermé				
    MsgBox ExecuteExcel4Macro("'C:\e\[a.xls]Feuil1'!R1C1")
    Ca n'a pas fonctionné....le code se met en erreur, j'ai pas compris pourquoi, c'est pourquoi j'ai essayé ma méthode....
    Si je comprends bien ton code, en fait tu ouvres aussi le classeur, mais ne le fait pas apparaitre...bien vu (sans mauvais jeux de mots....)

    Je voulais essayer de chercher directement la valeur de la cellule dans le classeur a.xls, qui me sert de référence pour les chemins, et donc ces valeurs sont toujours les mêmes.

    A+

  4. #4
    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
    Par défaut
    As-tu tout lu ? Entre autres, cette ligne
    Citation Envoyé par SilkyRoad
    Vous devez préalablement activer la référence Microsoft ActiveX Data Objects x.x Library pour utiliser les exemples présentés dans ce tutoriel.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Oui, j'ai bien mis la référence,
    mais quand je mets tout seul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ExecuteExcel4Macro("'C:\e\[a.xls]Feuil1'!R1C1")
    , il ne se passe rien, et je sais pas où le mettre dans mon code...j'ai essayé d'attribuer la variable c'est à dire cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    disk = MsgBox ExecuteExcel4Macro("'C:\e\[a.xls]Feuil1'!R1C1")
    Et visual me repond :
    erreur de compilation
    ....comprend pas

    Merci
    A+

  6. #6
    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
    Par défaut
    Alors je te suggère une solution de rechange :
    Dans le classeur contenant ta macro, mets "simplement"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Thisworkbook.worksheets("feuil1").range("IV65633").FormulaLocal = "='C:\e\[a.xls]Feuil1'!A1"
        Thisworkbook.worksheets("feuil1").range("IV65635").FormulaLocal = "='C:\e\[a.xls]Feuil1'!A2"
        Thisworkbook.worksheets("feuil1").range("IV65635").FormulaLocal = "='C:\e\[a.xls]Feuil1'!A3"
     
        disk = Thisworkbook.worksheets("feuil1").Range("IV65633").Value
        doss = Thisworkbook.worksheets("feuil1").Range("IV65635").Value
        doss2 = Thisworkbook.worksheets("feuil1").Range("IV65635").Value
     
        Thisworkbook.worksheets("feuil1").range("IV65633") = ""    Thisworkbook.worksheets("feuil1").range("IV65635") = ""
        Thisworkbook.worksheets("feuil1").range("IV65635") = ""
    Pas très élégant mais en attendant que Silkyroad explique le pb que tu as rencontré...

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

Discussions similaires

  1. [XL-2007] Recherche valeur cellule dans plusieurs classeurs fermés
    Par Millenniums dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2011, 20h32
  2. [XL-2003] Récupérer valeurs cellules dans userform
    Par fullmetalknet dans le forum Excel
    Réponses: 5
    Dernier message: 10/11/2009, 08h34
  3. Comment récupérer valeur cellule d'un gridview?
    Par cortex024 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 23/03/2007, 14h31
  4. [VBA-E]Récupérer valeur cellule
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 06/02/2006, 12h52
  5. [POI]Récupérer valeur cellule suivant format
    Par leminipouce dans le forum Documents
    Réponses: 1
    Dernier message: 27/10/2005, 08h52

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