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!
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!
La fonction que j'aimerais reproduire est la suivant :
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\1106-001c Mairie (Centre de la petite enfance).xls'!HT;3)
ou
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)
etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RECHERCHEV("H.T";'A1' \ 'A2'!HT;3)
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!?
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)
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!
J'ai trouver un truc qui me fais ca :
ce qui équivaut à
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RECHERCHEV("H.T";CONCATENER(A1;A2;"!HT");3)
il faudrait éliminer les guillemets.
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)
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
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)
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.
Bonjour bhosni,
Merci de ta contribution, mais indique à qui tu t'adresses quand il y a plusieurs contributeurs, c'est plus clair.
Bonjour,
A1 : 1106-001c Mairie (Centre de la petite enfance).xls
B1 : G:\RST\DEVIS Xavier
(Supprime le nom du fichier en B1)
C1 :
à adapter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RECHERCHEV("H.T";INDIRECT(CONCATENER("'";B1;"\";"[";A1;"]";"HT'!$A$1:$F$10"));3)
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part $A$1:$F$10
@ 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).
C'est pas faux !
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
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
Alors que c'est la macro, j'ai essayer avec ca :
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)
ca ne marche pas encore mais je ne perd pas espoir!
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
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
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é!
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.)
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 :
Si vous voyer quelque chose cela m'aiderai
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
Dans A1 j'ai : G:\SCCG\DEVIS Xavier\
Dans A2 j'ai : 1110-007s Magiline travaux.xls
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!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager