Code vba : recherche en H et V en même temps
Résolu/Fermé
A voir également:
- Code vba : recherche en H et V en même temps
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
8 réponses
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
649
11 févr. 2016 à 11:52
11 févr. 2016 à 11:52
Bonjour,
Pourquoi n'utilises-tu pas 2 feuilles dans un fichier plutôt que 2 fichiers d'une feuille?
Pourquoi n'utilises-tu pas 2 feuilles dans un fichier plutôt que 2 fichiers d'une feuille?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
11 févr. 2016 à 14:35
11 févr. 2016 à 14:35
Bonjour
Les 2 classeurs sont ils dans le m^mr dossier?
Si "non"
me donner le dossier par ex "C:\fff\bbbb\"
Les 2 classeurs sont ils dans le m^mr dossier?
Si "non"
me donner le dossier par ex "C:\fff\bbbb\"
Ré Michel_m,
Non, ce n'est pas dans le même fichier. Je te joins tous les deux fichiers ci-dessus:
Pour le fichier Patri d'entré : C:\Users\C07076\Documents\Patri.xlsx ou version CJOINT : http://www.cjoint.com/c/FBlkXCvjqYl
Et Fichier de sorti, "Principal": http://www.cjoint.com/c/FBlkWCrkQxl ou C:\Users\C07076\Documents\Principal.xlsx
Merci d'avancé et Bien Cdlt.
Non, ce n'est pas dans le même fichier. Je te joins tous les deux fichiers ci-dessus:
Pour le fichier Patri d'entré : C:\Users\C07076\Documents\Patri.xlsx ou version CJOINT : http://www.cjoint.com/c/FBlkXCvjqYl
Et Fichier de sorti, "Principal": http://www.cjoint.com/c/FBlkWCrkQxl ou C:\Users\C07076\Documents\Principal.xlsx
Merci d'avancé et Bien Cdlt.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
Tshims
11 févr. 2016 à 14:49
11 févr. 2016 à 14:49
Ok
encore 1 question
combien de lignes dans "principal" ?
encore 1 question
combien de lignes dans "principal" ?
Tshims
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
11 févr. 2016 à 15:03
11 févr. 2016 à 15:03
Dans mon fichier princinpal, il y a 24 lignes (dans mon fichier que je suis appelle à travailler quotidiennement j'en ai plus de 5000). Mais pour 'instant, on part d'abord avec 24 lignes.
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 11/02/2016 à 14:52
Modifié par ccm81 le 11/02/2016 à 14:52
Bonjour à tous les deux
Tu n'as pas forcément besoin d'une macro
Les deux fichiers étant ouverts dans la même session d'excel
En D3 du fichier Principal
=SI(ESTNA(INDEX([Patri.xls]Feuil1!$C$4:$G$14;EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3;EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2));"";INDEX([Patri.xls]Feuil1!$C$4:$G$14;EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3;EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2))
devrait aller (il te suffira de changer l'extension .xls (mon vieil excel 2003) par .xlsx
Cdlmnt
Tu n'as pas forcément besoin d'une macro
Les deux fichiers étant ouverts dans la même session d'excel
En D3 du fichier Principal
=SI(ESTNA(INDEX([Patri.xls]Feuil1!$C$4:$G$14;EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3;EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2));"";INDEX([Patri.xls]Feuil1!$C$4:$G$14;EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3;EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2))
devrait aller (il te suffira de changer l'extension .xls (mon vieil excel 2003) par .xlsx
Cdlmnt
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 11/02/2016 à 15:43
Modifié par michel_m le 11/02/2016 à 15:43
Bon, on m'a demandé du VBA, vla du VBA sans philosopher dans le salon de thé
Un seuk artickle(ville Oui et beaucoup d'article inconnus dans patri pour les quels j'ai écrit " article ou ville inconnu"
Michel
Option Explicit
'--------------------------
Sub informer()
Dim Chemin As String, Fich As String
Dim Derlig As Byte, Lig As Byte, Ville As String, Article As String
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path
Workbooks.Open (Chemin & "\patri.xlsx")
With ThisWorkbook.Sheets(1)
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
For Lig = 3 To Derlig
Ville = .Cells(Lig, "A")
Article = .Cells(Lig, "B")
.Cells(Lig, "D") = ChercherHV(Ville, Article)
Next
.Activate
End With
Workbooks("patri.xlsx").Close
End Sub
'------------
Function ChercherHV(Cite, Arti) As String
Dim Col As Byte, Lig As Byte
With ActiveWorkbook.Sheets(1)
On Error GoTo inconnu
Col = .Rows(2).Find(Cite, .Range("B2"), xlValues).Column
Lig = .Columns("B").Find(Arti, .Range("B3"), xlValues).Row
ChercherHV = .Cells(Lig, Col).Value
End With
Exit Function
inconnu:
ChercherHV = "Article ou Ville inconnu""
End Function
Un seuk artickle(ville Oui et beaucoup d'article inconnus dans patri pour les quels j'ai écrit " article ou ville inconnu"
Michel
Bonsoir Michel_m,
Désolé, je viens une fois encore te dérange car ton code ci-dessus ne fonctionne pas dans mon fichier original. Peux-tu le commenter stp? et je change pour simplier, je crée une feuille dans mon fichier de travailler "Principal" dans lequel je fais appeler dans toutes les données de Patri. Donc je travaille sur un mem fichier mais de feuilles différentes?
Merci d'avancé et Bon Weenkend.
Désolé, je viens une fois encore te dérange car ton code ci-dessus ne fonctionne pas dans mon fichier original. Peux-tu le commenter stp? et je change pour simplier, je crée une feuille dans mon fichier de travailler "Principal" dans lequel je fais appeler dans toutes les données de Patri. Donc je travaille sur un mem fichier mais de feuilles différentes?
Merci d'avancé et Bon Weenkend.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
15 févr. 2016 à 14:08
15 févr. 2016 à 14:08
1. INDEX([Patri.xls]Feuil1!$C$4:$G$14, ....
va rechercher une cellule dans le tableau C4:G14 (de Patri) dont
2. le n° de ligne est donné par
EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3
Or EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)- renvoie le n° de ligne dans la colonne B où se trouve $B3 (l'article du Principal) ; comme le tableau dans Patri commence à la ligne 4, il faut enlever 3 pour obtenir la bonne ligne dans le tableau de Patri
2. le numéro de colonne est donné par
EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2
même chose : le tableau dans Partri commence à la colonne 3 , donc il faut enlever 2
RQ. tu devrais jeter une oeil sur l'aide en ce qui concerne les fonctions INDEX et EQUIV
Salutations à michel en passant, qui ne devrait pas tarder à t'envoyer la rectification de la macro
Cdlmnt
va rechercher une cellule dans le tableau C4:G14 (de Patri) dont
2. le n° de ligne est donné par
EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)-3
Or EQUIV($B3;[Patri.xls]Feuil1!$B:$B;0)- renvoie le n° de ligne dans la colonne B où se trouve $B3 (l'article du Principal) ; comme le tableau dans Patri commence à la ligne 4, il faut enlever 3 pour obtenir la bonne ligne dans le tableau de Patri
2. le numéro de colonne est donné par
EQUIV($A3;[Patri.xls]Feuil1!$2:$2;0)-2
même chose : le tableau dans Partri commence à la colonne 3 , donc il faut enlever 2
RQ. tu devrais jeter une oeil sur l'aide en ce qui concerne les fonctions INDEX et EQUIV
Salutations à michel en passant, qui ne devrait pas tarder à t'envoyer la rectification de la macro
Cdlmnt
Ré CCM81;
Je regarde les fonctions INDEX et EQUIV même je change ESTNA à ESTERREUR pour ne pas obtenir #NA.
j'essaie d'adapter mais ça ne me renvoie rien :
Voici mes données actuelles :
Fichier Principal : Ville => A3 : A 2800 et Article => N3 : N2800
Fichier Patri : Ville => E2 : Z2 et Article => D3 : D200 et mes réponses ("ce que je souhaite récuperer) => E3 : Z200.
Comment calculer deviendra tes -3 et -2 car là ils sont au même niveau.
Je crois que tu vas me comprendre; Désole pour le dérange encore.
Cdlmnt.
Je regarde les fonctions INDEX et EQUIV même je change ESTNA à ESTERREUR pour ne pas obtenir #NA.
j'essaie d'adapter mais ça ne me renvoie rien :
Voici mes données actuelles :
Fichier Principal : Ville => A3 : A 2800 et Article => N3 : N2800
Fichier Patri : Ville => E2 : Z2 et Article => D3 : D200 et mes réponses ("ce que je souhaite récuperer) => E3 : Z200.
Comment calculer deviendra tes -3 et -2 car là ils sont au même niveau.
Je crois que tu vas me comprendre; Désole pour le dérange encore.
Cdlmnt.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
15 févr. 2016 à 14:49
15 févr. 2016 à 14:49
Bonjour, CCM, ca va ?
Bon, on va rester sur ta solution par formule qui parait + adaptée. ;o)
Bon, on va rester sur ta solution par formule qui parait + adaptée. ;o)
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
15 févr. 2016 à 19:05
15 févr. 2016 à 19:05
> michel. merci, tout va ... pour le moment du moins et j'espère qu'il en est de même pour toi
Je ne vais pas avoir beaucoup de temps ces jours ci (encore de la programmation, mais des activités de mes petits enfants, et c'est au moins aussi compliqué que vba !), donc si tu veux bien prendre le relai sur ce coup là..... En plus, tu pourras lui fournir la solution avec SIERREUR, plus concise, que mon toujours vieil excel 2003 ne connaît pas
> Tschims.
1. post #16.Donc je travaille sur un mem fichier mais de feuilles différentes?
post #20 Fichier Principal : Ville => A3 : A 2800 et Article => N3 : N2800
2. Fichier Patri : Ville => E2 : Z2 et Article => D3 : D200 et mes réponses ("ce que je souhaite récuperer) => E3 : Z200.
Il va falloir choisir !
3. Tu devrais envoyer un bour de ton (tes) vrai(s) fichier(s), ça faciliterait bien les choses
Cdlmnt
Je ne vais pas avoir beaucoup de temps ces jours ci (encore de la programmation, mais des activités de mes petits enfants, et c'est au moins aussi compliqué que vba !), donc si tu veux bien prendre le relai sur ce coup là..... En plus, tu pourras lui fournir la solution avec SIERREUR, plus concise, que mon toujours vieil excel 2003 ne connaît pas
> Tschims.
1. post #16.Donc je travaille sur un mem fichier mais de feuilles différentes?
post #20 Fichier Principal : Ville => A3 : A 2800 et Article => N3 : N2800
2. Fichier Patri : Ville => E2 : Z2 et Article => D3 : D200 et mes réponses ("ce que je souhaite récuperer) => E3 : Z200.
Il va falloir choisir !
3. Tu devrais envoyer un bour de ton (tes) vrai(s) fichier(s), ça faciliterait bien les choses
Cdlmnt
Bonjour CCM,
Voici mon bout de fichier : http://www.cjoint.com/c/FBqpJFvWTbj
Je souhaite remplir la colonne D de la feuille "Principal" à partir de données de la feuille Patri.
En cherchant la ville et les articles pour
le fichier Principal : Colonne A => Villes et colonne L => Articles
le fichier Patri : C2:G2 => Villes et B':B14 => Articles
MErci d'avancé et Cdlmnt.
Voici mon bout de fichier : http://www.cjoint.com/c/FBqpJFvWTbj
Je souhaite remplir la colonne D de la feuille "Principal" à partir de données de la feuille Patri.
En cherchant la ville et les articles pour
le fichier Principal : Colonne A => Villes et colonne L => Articles
le fichier Patri : C2:G2 => Villes et B':B14 => Articles
MErci d'avancé et Cdlmnt.
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
16 févr. 2016 à 20:50
16 févr. 2016 à 20:50
Il suffit de repmlacer la référence au fichier patri par la référence à la feuille Patri et de modifier la colonne article de la feuille Principal
Ce qui donne en D3
=SI(ESTNA(INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L3;Patri!B:B;0)-3;EQUIV(Principal!$A3;Patri!$2:$2;0)-2));"";INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L3;Patri!B:B;0)-3;EQUIV(Principal!$A3;Patri!$2:$2;0)-2))
avec sierreur, ça devrait ressemble à ça (sans garantie)
=SIERREUR(INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L12;Patri!B:B;0)-3;EQUIV(Principal!$A12;Patri!$2:$2;0)-2));"")
Cdlmnt
Ce qui donne en D3
=SI(ESTNA(INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L3;Patri!B:B;0)-3;EQUIV(Principal!$A3;Patri!$2:$2;0)-2));"";INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L3;Patri!B:B;0)-3;EQUIV(Principal!$A3;Patri!$2:$2;0)-2))
avec sierreur, ça devrait ressemble à ça (sans garantie)
=SIERREUR(INDEX(Patri!$C$4:$G$14;EQUIV(Principal!$L12;Patri!B:B;0)-3;EQUIV(Principal!$A12;Patri!$2:$2;0)-2));"")
Cdlmnt
Bonjour CCM,
Je reviens encore vers toi, je sais que j'en fais un peu trop mais j'aimerai finir avec ce fichier et bien le comprendre pour m'en sortir tout seul. J'ai compris pour quoi je n'obtiens pas mes réponses.
Voici mon fichier cJoint : http://www.cjoint.com/c/FBriKnCyYQl
Je modifie un peu la feuille Patri au niveau de colonnes et de lignes;
le fichier Principal : Colonne A => Villes et colonne L => Articles
le fichier Patri : E2:I2 => Villes et D:D17 => Articles
Dans ma feuille Patri, j'ai de doublons donc je souhaiterai récupere que les cellules ayant les "Oui" ou "Non" pas de cellules vides.
Exemple le cas de bonbon dans la ligne D3 et D4 de la feuille Patri. Je souhaiterai récuperer que les D3 car j'ai de cellules avec les "Oui" et "Non".
Merci d'avancé et désolé une fois pour le dérangement.
Cdlmnt.
Je reviens encore vers toi, je sais que j'en fais un peu trop mais j'aimerai finir avec ce fichier et bien le comprendre pour m'en sortir tout seul. J'ai compris pour quoi je n'obtiens pas mes réponses.
Voici mon fichier cJoint : http://www.cjoint.com/c/FBriKnCyYQl
Je modifie un peu la feuille Patri au niveau de colonnes et de lignes;
le fichier Principal : Colonne A => Villes et colonne L => Articles
le fichier Patri : E2:I2 => Villes et D:D17 => Articles
Dans ma feuille Patri, j'ai de doublons donc je souhaiterai récupere que les cellules ayant les "Oui" ou "Non" pas de cellules vides.
Exemple le cas de bonbon dans la ligne D3 et D4 de la feuille Patri. Je souhaiterai récuperer que les D3 car j'ai de cellules avec les "Oui" et "Non".
Merci d'avancé et désolé une fois pour le dérangement.
Cdlmnt.
11 févr. 2016 à 12:08
Parce que j'aurais toujours appelé à travailler avec un fichier en entrée et l'autre en sortie. Mais si tu as une solution avec 2 fichiers dans une même feuille. Je pourrai l'adapter à mon problème.
Bien Cdlt.
11 févr. 2016 à 13:09
11 févr. 2016 à 13:31
11 févr. 2016 à 13:34
Si tu utilise une macro, elle mettra plus de temps à switch de fichier donc une perte de temps que tu n'aura pas si tu travaille dans le même fichier.
11 févr. 2016 à 13:47
Dans le temps, j'aurai à faire tout le temps aux deux fichiers et les données changeront tout le temps. Le macro de faire appel à un fichier , je l'ai déjà.