[excel] recherchev et liste...
Fermé
keiser19
Messages postés
5
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
3 avril 2008
-
1 avril 2008 à 16:48
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 3 avril 2008 à 22:34
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 3 avril 2008 à 22:34
A voir également:
- [excel] recherchev et liste...
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Supprimer liste déroulante excel ✓ - Forum Excel
- Déplacer une colonne excel - Guide
8 réponses
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
549
2 avril 2008 à 11:03
2 avril 2008 à 11:03
Dans le menu Données, tu choisis Données externes - Créer une requête, ta source de connées c'est XLFiles, et après tu tatonnes...
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
549
1 avril 2008 à 18:00
1 avril 2008 à 18:00
Ca me paraît plus du ressort de MSQuery que de la RECHERCHEV, mais je ne trouve pas comment rendre le critère variable.
Fichtre!!! Il doit y avoir une solution, quand même!!!
Au cas où tu ne connaîtrais pas MSQuery:
A partir du classeur où tu veux voir apparaître tes données extraites:
Menu Données
Données externes
Créer une requête - Source de données Excel Files*
Tu choisis ton fichier, les champs qui t'intéressent, tu mets un critère si tu veux... Mais c'est là que je bloque. Tu peux mettre "A" pour le secteur, mais je ne sais pas rendre ce "A" variable.
Peut-être qu'on peut modifier ça dans le SQL mais je ne connais pas la syntaxe. Il va bien y avoir un spécialiste qui va passer derrière moi... J'espère!
J'espère ne pas t'avoir mené dans une impasse...
Fichtre!!! Il doit y avoir une solution, quand même!!!
Au cas où tu ne connaîtrais pas MSQuery:
A partir du classeur où tu veux voir apparaître tes données extraites:
Menu Données
Données externes
Créer une requête - Source de données Excel Files*
Tu choisis ton fichier, les champs qui t'intéressent, tu mets un critère si tu veux... Mais c'est là que je bloque. Tu peux mettre "A" pour le secteur, mais je ne sais pas rendre ce "A" variable.
Peut-être qu'on peut modifier ça dans le SQL mais je ne connais pas la syntaxe. Il va bien y avoir un spécialiste qui va passer derrière moi... J'espère!
J'espère ne pas t'avoir mené dans une impasse...
keiser19
Messages postés
5
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
3 avril 2008
2 avril 2008 à 10:09
2 avril 2008 à 10:09
Bon comme j'ai l'impression que je n'ai pas été très clair, je mets une image de mon fichier:
[URL=https://imageshack.com/][IMG]http://img106.imageshack.us/img106/121/imagefichexm9.th.png[/IMG][/URL]
Comment ça marche ?
La personne choisi la civilité (menu déroulant) puis rentre le nom de la personne en case C5 et le prénom en case D5
Une petite formule recherchev va chercher le nom dans une liste dans un autre classeur excel(j'ai d'ailleurs un souci si deux personnes ont le même nom.. je pensais créer une clé avec la concaténation nom+prenom, mais dans ce cas comment s'écrit la formule ? =recherchev(C5&D5; etc ) est-ce que cette valeur cherchée correspondra bien à la clé que je créerai ?), pour en sortir le secteur où travail cette personne dans la case B7.
Bon continuons, pour arriver à mon problème ou je bloque et que j'évoquais dans mon post précèdent:
dans la colonne A, je veux obtenir la liste complète de tous les produits suivant le secteur obtenu en B7.(Sachant que dans un autre classeur j'ai référenté tous les produits par secteurs) Or si je fais une recherchev du type =SI(ESTVIDE(B7);"";RECHERCHEV(B7;'P:\Specifiques\Produits_Dangereux\[Liste Produits Chimiques.xls]BDD Produits chimiques'!C5:Z820;2;FAUX)), (Les secteurs se trouvant dans la colonne C et les produits dans la colonne D) je n'aurai que le premier produit du secteur qui sortira et non pas la liste complète...
Toute aide sera la bienvenue merci bcp d'avance,
signé: un chargé d'HSE qui commence à désespérer
PS: merci Latelygeek, mais je ne connais pas du tout msquery, et de plus je ne pourrai l'utiliser (si c'est une logiciel) pour cause de demande de validation qui prendra 1 mois..or je dois aboutir avant...
Merci en tout cas pour l'intérêt que tu portes à mon sujet
[URL=https://imageshack.com/][IMG]http://img106.imageshack.us/img106/121/imagefichexm9.th.png[/IMG][/URL]
Comment ça marche ?
La personne choisi la civilité (menu déroulant) puis rentre le nom de la personne en case C5 et le prénom en case D5
Une petite formule recherchev va chercher le nom dans une liste dans un autre classeur excel(j'ai d'ailleurs un souci si deux personnes ont le même nom.. je pensais créer une clé avec la concaténation nom+prenom, mais dans ce cas comment s'écrit la formule ? =recherchev(C5&D5; etc ) est-ce que cette valeur cherchée correspondra bien à la clé que je créerai ?), pour en sortir le secteur où travail cette personne dans la case B7.
Bon continuons, pour arriver à mon problème ou je bloque et que j'évoquais dans mon post précèdent:
dans la colonne A, je veux obtenir la liste complète de tous les produits suivant le secteur obtenu en B7.(Sachant que dans un autre classeur j'ai référenté tous les produits par secteurs) Or si je fais une recherchev du type =SI(ESTVIDE(B7);"";RECHERCHEV(B7;'P:\Specifiques\Produits_Dangereux\[Liste Produits Chimiques.xls]BDD Produits chimiques'!C5:Z820;2;FAUX)), (Les secteurs se trouvant dans la colonne C et les produits dans la colonne D) je n'aurai que le premier produit du secteur qui sortira et non pas la liste complète...
Toute aide sera la bienvenue merci bcp d'avance,
signé: un chargé d'HSE qui commence à désespérer
PS: merci Latelygeek, mais je ne connais pas du tout msquery, et de plus je ne pourrai l'utiliser (si c'est une logiciel) pour cause de demande de validation qui prendra 1 mois..or je dois aboutir avant...
Merci en tout cas pour l'intérêt que tu portes à mon sujet
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
549
2 avril 2008 à 10:11
2 avril 2008 à 10:11
On a bien compris ton problème, mais RECHERCHEV ne te renverra qu'UNE valeur. Tu peux laisser tomber cette piste. Tu as essayé MSQuery????
keiser19
Messages postés
5
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
3 avril 2008
2 avril 2008 à 10:26
2 avril 2008 à 10:26
Je ne connais pas du tout, je suis en train de lire les infos que je trouve à ce sujet sur le net
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
keiser19
Messages postés
5
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
3 avril 2008
3 avril 2008 à 09:35
3 avril 2008 à 09:35
Je ne suis plus très loin... je suis passé par les macros :
'
' test
' Macro enregistrée le 02/04/2008
'
Selection.AutoFilter Field:=22, Criteria1:="<>1", Operator:=xlAnd
ActiveWindow.SmallScroll ToRight:=1
Windows("fiche d'exposition.xls").Activate
Sheets("Fiche d'exposition").Select
Range("B7").Select
Windows("Liste Produits Chimiques.xls").Activate
Selection.AutoFilter Field:=2, Criteria1:="Microbiologie"
Range("C4:C1000").Select
Selection.Copy
Windows("fiche d'exposition.xls").Activate
Range("A11").Select
J'ai créer cette macro en effectuant un test pour le secteur "Microbiologie"
Cette macro sélectionne bien tous les produits d'un secteur et les colle la ou il faut (en A11).
Mon soucis actuel est de rendre le critère de recherche aléatoire, cad suivant le secteur
préchoisi dans le dossier fiche d'exposition.xls, onglet "fiche d'exposition" en D7.
Possible d'intégrer un boucle ? du style si c'est égal a microbiologie alors faire ça:
Selection.AutoFilter Field:=2, Criteria1:="Microbiologie"
si c'est égal à chimie alors faire ça: Selection.AutoFilter Field:=2, Criteria1:="Chimie"
Et ça je ne sais pas du tout faire.... help ?
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
549
3 avril 2008 à 10:01
3 avril 2008 à 10:01
Tu déclares une variable:
Dim ChoixSecteur as String
Tu lui donnes la valeur de ta cellule B7:
ChoixSecteur = Range("B7").Value
Et tu utilises ChoixSecteur comme critère:
Selection.AutoFilter Field:=2, Criteria1:=ChoixSecteur
Dim ChoixSecteur as String
Tu lui donnes la valeur de ta cellule B7:
ChoixSecteur = Range("B7").Value
Et tu utilises ChoixSecteur comme critère:
Selection.AutoFilter Field:=2, Criteria1:=ChoixSecteur
keiser19
Messages postés
5
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
3 avril 2008
3 avril 2008 à 11:23
3 avril 2008 à 11:23
J'avais réussi avec plusieures boucles IF, mais j'adopte ta méthode, beaucoup beaucoup plus courte, merci Lately ^^
j'obtiens malheureusement une erreur dans les deux cas exactement au même endroit Tout à la fin, à la ligne "activesheet.paste":
Sub macro7()
'
'test
'avec definition de variable
'
'
Windows("liste Produits Chimiques.xls").Activate
Sheets("BDD Produits Chimiques").Select
Selection.AutoFilter field:=22, Criteria1:="<>1"
Windows("fiche d'exposition.xls").Activate
Sheets("fiche d'exposition").Select
Range("D7").Select
Dim ChoixSecteur As String
ChoixSecteur = Range("D7").Value
Windows("liste Produits Chimiques.xls").Activate
Sheets("BDD Produits Chimiques").Select
Selection.AutoFilter field:=2, Criteria1:="=ChoixSecteur"
Range("C4:C1000").Select
Selection.Copy
Windows("fiche d'exposition BLEDINA.xls").Activate
Sheets("fiche d'exposition").Select
Range("A11").Select
ActiveSheet.Paste
End Sub
UNe idée du pourquoi ?
EDIT:
Bon j'ai compris pourquoi ça bug. Le tableau de destination est trop petit par rapport à la liste à copier dedans.
Il faudrait en fait que la macro rajoute 5000 lignes au tableau de destination, puis supprime toute celle dont la valeur est "vide". Ce serait parfait ça..
Une idée ? ^^
j'obtiens malheureusement une erreur dans les deux cas exactement au même endroit Tout à la fin, à la ligne "activesheet.paste":
Sub macro7()
'
'test
'avec definition de variable
'
'
Windows("liste Produits Chimiques.xls").Activate
Sheets("BDD Produits Chimiques").Select
Selection.AutoFilter field:=22, Criteria1:="<>1"
Windows("fiche d'exposition.xls").Activate
Sheets("fiche d'exposition").Select
Range("D7").Select
Dim ChoixSecteur As String
ChoixSecteur = Range("D7").Value
Windows("liste Produits Chimiques.xls").Activate
Sheets("BDD Produits Chimiques").Select
Selection.AutoFilter field:=2, Criteria1:="=ChoixSecteur"
Range("C4:C1000").Select
Selection.Copy
Windows("fiche d'exposition BLEDINA.xls").Activate
Sheets("fiche d'exposition").Select
Range("A11").Select
ActiveSheet.Paste
End Sub
UNe idée du pourquoi ?
EDIT:
Bon j'ai compris pourquoi ça bug. Le tableau de destination est trop petit par rapport à la liste à copier dedans.
Il faudrait en fait que la macro rajoute 5000 lignes au tableau de destination, puis supprime toute celle dont la valeur est "vide". Ce serait parfait ça..
Une idée ? ^^
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
549
3 avril 2008 à 22:34
3 avril 2008 à 22:34
Essaye Selection.Paste, peut-être que ça serait mieux...