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

Excel Discussion :

Rechercher une valeur dans un fichier dont les noms sont dans les cellules de la colonne A


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Rechercher une valeur dans un fichier dont les noms sont dans les cellules de la colonne A
    Rebonjour,

    Je n'arrive pas à utiliser les cellules de la colonne A pour renseigner le chemin des fichiers où est comptenu les valeurs qui m'intéresse.

    Pouvez vous m'aider à résoudre ce problème?

    Merci!

  2. #2
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    La fonction que j'aimerais reproduire est la suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";'G:\RST\DEVIS Xavier\1106-001c Mairie (Centre de la petite enfance).xls'!HT;3)
    Mais quand je la modifie pour obtenir en truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";'G:\RST\DEVIS Xavier\'A2'!HT;3)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";'G:\RST\DEVIS Xavier\'INDIRECT.EXT(A2)'!HT;3)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";'A1' \ 'A2'!HT;3)
    etc...

    Cela ne fonctionne pas, cela me demande de mettre à jours la valeur alors que
    justement A1 contient :
    G:\RST\DEVIS

    et que A2 contient :
    1106-001c Mairie (Centre de la petite enfance).xls

    Je ne comprend pas comment faire pour utilisé ces deux valeurs!?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 201
    Points : 14 339
    Points
    14 339
    Par défaut
    Dans ce cas, tu peux définir une plage nommée (onglet "Formules", "Définir un nom") par exemple nom : Plage, fait référence à :

    'G:\RST\DEVIS Xavier\1106-001c Mairie (Centre de la petite enfance).xls'!HT

    et ensuite, écrire ta formule comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";Plage;3)
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Malheureusement cela ne peux pas marché puisque

    mon fichier "synthèse" utilise une macro pour lister tous les devis
    dans la colonnes "A"
    |------A---------|---- B------|---- C-------|
    ----- Devis------|----H.T-----| G:\RST\Devis xavier
    1106-001 blabla--|--1200.00---|
    1106-002 blabla--|-- 5400.00--|
    ...
    1108-021 blabla--|-12050.00---|
    ...
    le nombre de la colonne B n'est accessible que de la matrice du "1106-001 blabla" et le noms du fichiers ne peux être rentré à la main vue qu'il y a beaucoup de fichier

    donc il faut que je trouve une fonction texte ou je sais pas quoi, qui une fois
    dit :

    tu va cherche le montant X dans le fichier bidul par l'intermédiaire de la matrice de celui-ci, puis à la ligne suivant dans le fichier machin et ainsi de suite

    Cette une recherche qui change à chaque ligne!?
    un truc chiant quoi!

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    J'ai trouver un truc qui me fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";CONCATENER(A1;A2;"!HT");3)
    ce qui équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";"'G:\RST\DEVIS Xavier\1106-001c Mairie (Centre de la petite enfance).xls'!HT");3)
    il faudrait éliminer les guillemets.

  6. #6
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    J'ai cherché ds tous les sens. Je pense que ce n'est pas possible avc les seules fonctions d'excel, peut être qu'une macro pourrait faire l'affaire mais je n'en ai jamais fait.
    Donc, j'aimerai savoir s'il existe une macro pouvant lire une donné à partir d'une cellule contenant le chemin d'accès au fichier et d'utiliser la matrice de celui-ci (nommé H.T.) et récupérer la valeur du devis.
    Je fais appel à tous les experts en la matière qui pourrait m'apporter un début de réponse...
    Merci

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 201
    Points : 14 339
    Points
    14 339
    Par défaut
    Dans ce cas, si tu as installé la macro complémentaire Morefunc, utilise INDIRECT.EXT. Je ne la pratique pas , n'ayant jamais installé cette macro complémentaire; mais si sa syntaxe est semblable à celle d'INDIRECT, tu devrais écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";INDIRECT.EXT("'G:\RST\DEVIS Xavier\'"&A2)'!HT;3)
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2011
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Bonjour!
    Dans ton cas, je suppose que tu dois nommer la plage des données ou doit s'effectuer la recherche, mais sache que RECHERCHEV ne s'applique que lorsque la valeur recherché se trouve dans la première colonne de ta plage nommée.
    Voilà, j’espère avoir apporter un plus
    Bon Courage.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 201
    Points : 14 339
    Points
    14 339
    Par défaut
    Bonjour bhosni,

    Merci de ta contribution, mais indique à qui tu t'adresses quand il y a plusieurs contributeurs, c'est plus clair.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  10. #10
    Membre actif
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2011
    Messages : 116
    Points : 229
    Points
    229
    Par défaut
    Bonjour,

    A1 : 1106-001c Mairie (Centre de la petite enfance).xls
    B1 : G:\RST\DEVIS Xavier
    (Supprime le nom du fichier en B1)

    C1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV("H.T";INDIRECT(CONCATENER("'";B1;"\";"[";A1;"]";"HT'!$A$1:$F$10"));3)
    à adapter :

    Cordialement

  11. #11
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 201
    Points : 14 339
    Points
    14 339
    Par défaut
    @ White Mibu :

    Bonjour, INDIRECT ne fonctionne pas avec un fichier fermé, c'est ce qui fait la réputation internationale de la macro complémentaire "morefunc" de Laurent Longre (à défaut de faire sa fortune).
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  12. #12
    Membre actif
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2011
    Messages : 116
    Points : 229
    Points
    229
    Par défaut


    C'est pas faux !

  13. #13
    Membre actif
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2011
    Messages : 116
    Points : 229
    Points
    229
    Par défaut
    J'ajoute une réponse qui rejoint une autre conversation... Je crois qu'on ne peut pas joindre de fichier en MP ?

    Voilà deux fichiers exemples, je pense que c'est une bonne solution à ton problème.

    Fichier exemple (2), à chaque fichier trouver la recherche vertical se fait automatiquement.

    Fichier exemple (3), si tu veux adapter la macro seule pour actualiser les recherche...

    Si ta des questions, n'hésite pas ! Tiens moi au courant

    Cordialement
    Fichiers attachés Fichiers attachés

  14. #14
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,
    Je n'ai pas réussi à faire fonctionner les deux fichers que tu as créer.
    le programme le lance le débogage et ca ma ouvert les fichiers cible
    j'ai pas trop cherche le problème vue que je ne comprend trop ce que ca fait.

    Par contre j'ai peu être une bonne idée.

    je veux faire croire à excel que j'ai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =RECHERCHEV("H.T";'G:\SCCG\DEVIS Xavier\1106-001c Mairie de Troyes (Centre de la petite enfance).xls'!HT;3)
    Alors que c'est la macro, j'ai essayer avec ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub test2()
    ligne = 2
    Cells(ligne, 2) = "=RECHERCHEV("H.T";'" & [A1].Value & [A2].Value & "'!HT;3)"
    End Sub
    ca ne marche pas encore mais je ne perd pas espoir!

  15. #15
    Membre actif
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2011
    Messages : 116
    Points : 229
    Points
    229
    Par défaut
    Bonjour,

    excuse j'avais pas pensé que tous tes onglets n'avais le même noms...

    test ce fichier je pense que tu n'aura pas de bugs

    Cordialement
    Fichiers attachés Fichiers attachés

  16. #16
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Re bonjour,

    J'ai de nouveau un peu de temps à conssacré à ce casse tête!

    j'ai trouvé dans tuto un script que j'ai personnalisé qui devrait fonctionné
    mais qui m'affiche une erreur de compilation :

    "type defini par l'utilisateur non défini"

    pouvez vous m'aider a comprend et trouve le solution pour que cela fonction!

    voici 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    Sub test2()
     
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        Dim Fichier As String, Cellule As String, Feuille As String
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "G21:G21"
        'Pour une plage de cellules, utilisez:
        'Cellule = "A4:C10"
        Feuille = "Client-Devis$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = [A1].Value & "\" & [A2].Value
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
        Set ADOCommand = New ADODB.Command
        With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
        Range("C2").CopyFromRecordset Rst
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
     
    'ligne = 2
    'Cells(ligne, 2) = "=RECHERCHEV("H.T";'" & [A1].Value & [A2].Value & "'!HT;3)"
    End Sub

    pourtant

    j'ai bien activé les "Microscoft active objet x.x" comme demandé!

  17. #17
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 201
    Points : 14 339
    Points
    14 339
    Par défaut
    Bonjour,

    Est-ce que tu as coché la référence Microsoft ActiveX Data Objects 2.n Library ?
    (Dans la fenêtre VBE : Outils, Références.)
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  18. #18
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Alors tous un tas de

    Microsoft ActiveX Data Objects n.n Library
    et donc je viens de désactive la 2.0

    ET j'ai activé la 6.0 puisque apparent on ne peu les active toutes

    Mon message d'erreur a changé il me dit :

    Le moteur de recherche Jet Blabla na pa pue trouvé "Devis-Client"
    veuillez vérifier si chemin correct ou si ficher existe

    j'ai vérifier modifié le mon mal écrit cela me donne le même message
    je ne vois pas ce qui cloche :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Sub test2()
     
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        Dim Fichier As String, Cellule As String, Feuille As String
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "G21:G21"
        'Pour une plage de cellules, utilisez:
        'Cellule = "A4:C10"
        Feuille = "Devis-Client$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = [A1].Value & [A2].Value
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
        Set ADOCommand = New ADODB.Command
        With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
        Range("C2").CopyFromRecordset Rst
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
     
    'ligne = 2
    'Cells(ligne, 2) = "=RECHERCHEV("H.T";'" & [A1].Value & [A2].Value & "'!HT;3)"
    End Sub
    Si vous voyer quelque chose cela m'aiderai

  19. #19
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Dans A1 j'ai : G:\SCCG\DEVIS Xavier\
    Dans A2 j'ai : 1110-007s Magiline travaux.xls

  20. #20
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2011
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi ce marche

    MAINTENANT
    je veux mettre une boucle qui recherche le Mot "HT" dans ma colonne "F" et quand il la trouvé par exemple "F78" je qu'il me donne la valeur de "G28".

    Peu être que je vais y arrivé pour noël a faire ce que je veux!

Discussions similaires

  1. [Joomla!] Passer une valeur d'un fichier templateDétails template "index.php" dans un fichier "index.php
    Par jacma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 02/02/2015, 10h29
  2. Réponses: 2
    Dernier message: 22/01/2012, 15h29
  3. lire des fichiers dont le nom est dans un fichier
    Par homonxa dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 20/01/2010, 14h54
  4. Réponses: 7
    Dernier message: 27/05/2008, 10h54
  5. Réponses: 2
    Dernier message: 01/10/2007, 12h17

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