voil=E0 mon probl=E8me du jour (fichier d'exemple disponible si besoin):
J'ai une colonne avec une liste de produits et leurs d=E9signations et
je souhaite dans la colonne d'=E0 cot=E9 affecter =E0 chaque produit une
cat=E9gorie (elec, visserie, tolerie...) Pour cela avec Donn=E9e,
validation liste, j'ai cr=E9=E9 dans chaque case de la colonne d'=E0 cot=E9
un liste d=E9roulante avec les diff=E9rentes cat=E9gories possibles.
Maintenant pour gagner une peu de temps (la liste de produit =E9tant
longue) je souhaite qu'en fonction de mots clefs que je d=E9finirai, si
ce mot est pr=E9sent dans la d=E9signation du produit alors la cat=E9gorie
associ=E9e =E0 ce mot est directement s=E9lectionn=E9e dans la liste
d=E9roulante. (tout en me laissant la possibilit=E9 de modifier
manuellement ce choix ensuite en s=E9lectionnant une autre cat=E9gorie
dans la liste d=E9roulante)
Si aucun mot clef n'est reconnu dans la d=E9signation du composant alors
la case reste vide avec la liste de choix d=E9roulante.
je souhaiterai que ceci se fasse automatiquement pour tous les produits
de la liste, il n'y aurait ensuite qu'=E0 v=E9rifier et modifier
manuellement pour les cas particuliers.
Exemple :
En A14 le mot clef "ecrou" apparait dans la d=E9signation, alors en B14
la cat=E9gorie associ=E9e "Visserie" est automatiquement s=E9lectionn=E9e
dans la liste d=E9roulante. Mais je veux quand m=EAme garder la
possibilit=E9 de modifier ce choix en s=E9lectionnant une autre
cat=E9gorie pour cet ecrou via la liste d=E9roulante si je consid=E8re
qu'il fait plutot partie d'un ensemble elec
En A10 il n'y a pas de mot clef reconnu, la case reste vide avec la
liste d=E9roulante.
Bon j'ai mis la fonction dans un module standard et elle est maintenant reconnue mais par contre ca lance le débuggeur en indiquant erreur de compil "EndIf sans bloc If".
voila tel que c'est dans le module :
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function "
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première ligne mais pour les autres ça affichait 0 même s'il y avait un mot clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes manip. J'ai recopié de "function à End function" dans la feuille préchoix automatique dans général ensuite j'ai recopié "Êtégorie(A2;$E$2:$F$9)" dans les cases où sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation: : Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function
Êtégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si c'est possible. Je cherche comment avec la fonction equiv index ou recherche, trouver si un des mots d'une liste est présent dans une phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles so nt les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai() For Each c In Range([A2], [A65000].End(xlUp)) For Each m In [motsclés] If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then c.Offset(0, 1) = m.Offset(0, 1) Exit For End If Next m Next c End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier très bien foutu et qui m'a bien aidé pour comprendre et établir des tas de listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne sai s pas mais je n'arrive pas à trouver dans ce fichier le moyen de fair e ce que je veux c'est à dire faire présélectionner à Excel un e valeur dans la liste en fonction du mot clef reconnu dans la désignati on.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponible si besoin):
J'ai une colonne avec une liste de produits et leurs désign ations et je souhaite dans la colonne d'à coté affecter à chaque produit une catégorie (elec, visserie, tolerie...) Pour cela avec Donn ée, validation liste, j'ai créé dans chaque case de la colonn e d'à coté un liste déroulante avec les différentes catégories pos sibles. Maintenant pour gagner une peu de temps (la liste de produit étant longue) je souhaite qu'en fonction de mots clefs que je déf inirai, si ce mot est présent dans la désignation du produit alors l a catégorie associée à ce mot est directement sélectionnée dans l a liste déroulante. (tout en me laissant la possibilité de modifi er manuellement ce choix ensuite en sélectionnant une autre ca tégorie dans la liste déroulante) Si aucun mot clef n'est reconnu dans la désignation du comp osant alors la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous le s produits de la liste, il n'y aurait ensuite qu'à vérifier et modif ier manuellement pour les cas particuliers.
Exemple : En A14 le mot clef "ecrou" apparait dans la désignation, al ors en B14 la catégorie associée "Visserie" est automatiquement sé lectionnée dans la liste déroulante. Mais je veux quand même garder la possibilité de modifier ce choix en sélectionnant une aut re catégorie pour cet ecrou via la liste déroulante si je co nsidère qu'il fait plutot partie d'un ensemble elec En A10 il n'y a pas de mot clef reconnu, la case reste vide a vec la liste déroulante.
Merci de votre aide
@+
Bon j'ai mis la fonction dans un module standard et elle est maintenant
reconnue mais par contre ca lance le débuggeur en indiquant erreur de
compil "EndIf sans bloc If".
voila tel que c'est dans le module :
"
Function Catégorie(Désignation, TmotsClésCatégorie As Range)
Application.Volatile
For Each m In Application.Index(TmotsClésCatégorie, , 1)
If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> ""
Then Catégorie = m.Offset(0, 1)
Exit Function
End If
Next m
Catégorie = ""
End Function
"
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première
ligne mais pour les autres ça affichait 0 même s'il y avait un mot
clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que
j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes
manip.
J'ai recopié de "function à End function" dans la feuille préchoix
automatique dans général
ensuite j'ai recopié "=catégorie(A2;$E$2:$F$9)" dans les cases où
sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation:
:
Function Catégorie(Désignation, TmotsClésCatégorie As Range)
Application.Volatile
For Each m In Application.Index(TmotsClésCatégorie, , 1)
If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> ""
Then
Catégorie = m.Offset(0, 1)
Exit Function
End If
Next m
Catégorie = ""
End Function
=catégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si
c'est possible. Je cherche comment avec la fonction equiv index ou
recherche, trouver si un des mots d'une liste est présent dans une
phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles so nt
les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai()
For Each c In Range([A2], [A65000].End(xlUp))
For Each m In [motsclés]
If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then
c.Offset(0, 1) = m.Offset(0, 1)
Exit For
End If
Next m
Next c
End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier très bien
foutu et qui m'a bien aidé pour comprendre et établir des tas de
listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne sai s pas
mais je n'arrive pas à trouver dans ce fichier le moyen de fair e ce
que je veux c'est à dire faire présélectionner à Excel un e valeur
dans la liste en fonction du mot clef reconnu dans la désignati on.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponible si besoin):
J'ai une colonne avec une liste de produits et leurs désign ations et
je souhaite dans la colonne d'à coté affecter à chaque produit une
catégorie (elec, visserie, tolerie...) Pour cela avec Donn ée,
validation liste, j'ai créé dans chaque case de la colonn e d'à coté
un liste déroulante avec les différentes catégories pos sibles.
Maintenant pour gagner une peu de temps (la liste de produit étant
longue) je souhaite qu'en fonction de mots clefs que je déf inirai, si
ce mot est présent dans la désignation du produit alors l a catégorie
associée à ce mot est directement sélectionnée dans l a liste
déroulante. (tout en me laissant la possibilité de modifi er
manuellement ce choix ensuite en sélectionnant une autre ca tégorie
dans la liste déroulante)
Si aucun mot clef n'est reconnu dans la désignation du comp osant alors
la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous le s produits
de la liste, il n'y aurait ensuite qu'à vérifier et modif ier
manuellement pour les cas particuliers.
Exemple :
En A14 le mot clef "ecrou" apparait dans la désignation, al ors en B14
la catégorie associée "Visserie" est automatiquement sé lectionnée
dans la liste déroulante. Mais je veux quand même garder la
possibilité de modifier ce choix en sélectionnant une aut re
catégorie pour cet ecrou via la liste déroulante si je co nsidère
qu'il fait plutot partie d'un ensemble elec
En A10 il n'y a pas de mot clef reconnu, la case reste vide a vec la
liste déroulante.
Bon j'ai mis la fonction dans un module standard et elle est maintenant reconnue mais par contre ca lance le débuggeur en indiquant erreur de compil "EndIf sans bloc If".
voila tel que c'est dans le module :
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function "
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première ligne mais pour les autres ça affichait 0 même s'il y avait un mot clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes manip. J'ai recopié de "function à End function" dans la feuille préchoix automatique dans général ensuite j'ai recopié "Êtégorie(A2;$E$2:$F$9)" dans les cases où sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation: : Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function
Êtégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si c'est possible. Je cherche comment avec la fonction equiv index ou recherche, trouver si un des mots d'une liste est présent dans une phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles so nt les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai() For Each c In Range([A2], [A65000].End(xlUp)) For Each m In [motsclés] If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then c.Offset(0, 1) = m.Offset(0, 1) Exit For End If Next m Next c End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier très bien foutu et qui m'a bien aidé pour comprendre et établir des tas de listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne sai s pas mais je n'arrive pas à trouver dans ce fichier le moyen de fair e ce que je veux c'est à dire faire présélectionner à Excel un e valeur dans la liste en fonction du mot clef reconnu dans la désignati on.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponible si besoin):
J'ai une colonne avec une liste de produits et leurs désign ations et je souhaite dans la colonne d'à coté affecter à chaque produit une catégorie (elec, visserie, tolerie...) Pour cela avec Donn ée, validation liste, j'ai créé dans chaque case de la colonn e d'à coté un liste déroulante avec les différentes catégories pos sibles. Maintenant pour gagner une peu de temps (la liste de produit étant longue) je souhaite qu'en fonction de mots clefs que je déf inirai, si ce mot est présent dans la désignation du produit alors l a catégorie associée à ce mot est directement sélectionnée dans l a liste déroulante. (tout en me laissant la possibilité de modifi er manuellement ce choix ensuite en sélectionnant une autre ca tégorie dans la liste déroulante) Si aucun mot clef n'est reconnu dans la désignation du comp osant alors la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous le s produits de la liste, il n'y aurait ensuite qu'à vérifier et modif ier manuellement pour les cas particuliers.
Exemple : En A14 le mot clef "ecrou" apparait dans la désignation, al ors en B14 la catégorie associée "Visserie" est automatiquement sé lectionnée dans la liste déroulante. Mais je veux quand même garder la possibilité de modifier ce choix en sélectionnant une aut re catégorie pour cet ecrou via la liste déroulante si je co nsidère qu'il fait plutot partie d'un ensemble elec En A10 il n'y a pas de mot clef reconnu, la case reste vide a vec la liste déroulante.
Merci de votre aide
@+
jb38
Maintenant ça fonctionne, c'était un problème de retour à la ligne que j'avais mal placé au niveau du Then.
Merci à ceux qui ont lu le sujet et surtout merci JB !
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1)
If (InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "") Then Catégorie = m.Offset(0, 1) Exit Function End If
Next m Catégorie = "???" End Function
Bon j'ai mis la fonction dans un module standard et elle est maintenant reconnue mais par contre ca lance le débuggeur en indiquant erreur de compil "EndIf sans bloc If".
voila tel que c'est dans le module :
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function "
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première ligne mais pour les autres ça affichait 0 même s'il y avait un mot clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes manip. J'ai recopié de "function à End function" dans la feuille préchoix automatique dans général ensuite j'ai recopié "Êtégorie(A2;$E$2:$F$9)" dans les cases o ù sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation: : Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function
Êtégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si c'est possible. Je cherche comment avec la fonction equiv index ou recherche, trouver si un des mots d'une liste est présent dans une phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles sont les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai() For Each c In Range([A2], [A65000].End(xlUp)) For Each m In [motsclés] If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then c.Offset(0, 1) = m.Offset(0, 1) Exit For End If Next m Next c End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier tr ès bien foutu et qui m'a bien aidé pour comprendre et établir des t as de listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne s ais pas mais je n'arrive pas à trouver dans ce fichier le moyen de fa ire ce que je veux c'est à dire faire présélectionner à Excel une valeur dans la liste en fonction du mot clef reconnu dans la désigna tion.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponibl e si besoin):
J'ai une colonne avec une liste de produits et leurs dési gnations et je souhaite dans la colonne d'à coté affecter à chaqu e produit une catégorie (elec, visserie, tolerie...) Pour cela avec Don née, validation liste, j'ai créé dans chaque case de la colo nne d'à coté un liste déroulante avec les différentes catégories p ossibles. Maintenant pour gagner une peu de temps (la liste de produi t étant longue) je souhaite qu'en fonction de mots clefs que je d éfinirai, si ce mot est présent dans la désignation du produit alors la catégorie associée à ce mot est directement sélectionnée dans la liste déroulante. (tout en me laissant la possibilité de modi fier manuellement ce choix ensuite en sélectionnant une autre catégorie dans la liste déroulante) Si aucun mot clef n'est reconnu dans la désignation du co mposant alors la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous les produits de la liste, il n'y aurait ensuite qu'à vérifier et mod ifier manuellement pour les cas particuliers.
Exemple : En A14 le mot clef "ecrou" apparait dans la désignation, alors en B14 la catégorie associée "Visserie" est automatiquement s électionnée dans la liste déroulante. Mais je veux quand même garde r la possibilité de modifier ce choix en sélectionnant une a utre catégorie pour cet ecrou via la liste déroulante si je considère qu'il fait plutot partie d'un ensemble elec En A10 il n'y a pas de mot clef reconnu, la case reste vide avec la liste déroulante.
Merci de votre aide
@+
Maintenant ça fonctionne, c'était un problème de retour à la ligne
que j'avais mal placé au niveau du Then.
Merci à ceux qui ont lu le sujet et surtout merci JB !
"
Function Catégorie(Désignation, TmotsClésCatégorie As Range)
Application.Volatile
For Each m In Application.Index(TmotsClésCatégorie, , 1)
If (InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "")
Then
Catégorie = m.Offset(0, 1)
Exit Function
End If
Next m
Catégorie = "???"
End Function
Bon j'ai mis la fonction dans un module standard et elle est maintenant
reconnue mais par contre ca lance le débuggeur en indiquant erreur de
compil "EndIf sans bloc If".
voila tel que c'est dans le module :
"
Function Catégorie(Désignation, TmotsClésCatégorie As Range)
Application.Volatile
For Each m In Application.Index(TmotsClésCatégorie, , 1)
If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> ""
Then Catégorie = m.Offset(0, 1)
Exit Function
End If
Next m
Catégorie = ""
End Function
"
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première
ligne mais pour les autres ça affichait 0 même s'il y avait un mot
clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que
j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes
manip.
J'ai recopié de "function à End function" dans la feuille préchoix
automatique dans général
ensuite j'ai recopié "=catégorie(A2;$E$2:$F$9)" dans les cases o ù
sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation:
:
Function Catégorie(Désignation, TmotsClésCatégorie As Range)
Application.Volatile
For Each m In Application.Index(TmotsClésCatégorie, , 1)
If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> ""
Then
Catégorie = m.Offset(0, 1)
Exit Function
End If
Next m
Catégorie = ""
End Function
=catégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si
c'est possible. Je cherche comment avec la fonction equiv index ou
recherche, trouver si un des mots d'une liste est présent dans une
phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles sont
les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai()
For Each c In Range([A2], [A65000].End(xlUp))
For Each m In [motsclés]
If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then
c.Offset(0, 1) = m.Offset(0, 1)
Exit For
End If
Next m
Next c
End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier tr ès bien
foutu et qui m'a bien aidé pour comprendre et établir des t as de
listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne s ais pas
mais je n'arrive pas à trouver dans ce fichier le moyen de fa ire ce
que je veux c'est à dire faire présélectionner à Excel une valeur
dans la liste en fonction du mot clef reconnu dans la désigna tion.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponibl e si besoin):
J'ai une colonne avec une liste de produits et leurs dési gnations et
je souhaite dans la colonne d'à coté affecter à chaqu e produit une
catégorie (elec, visserie, tolerie...) Pour cela avec Don née,
validation liste, j'ai créé dans chaque case de la colo nne d'à coté
un liste déroulante avec les différentes catégories p ossibles.
Maintenant pour gagner une peu de temps (la liste de produi t étant
longue) je souhaite qu'en fonction de mots clefs que je d éfinirai, si
ce mot est présent dans la désignation du produit alors la catégorie
associée à ce mot est directement sélectionnée dans la liste
déroulante. (tout en me laissant la possibilité de modi fier
manuellement ce choix ensuite en sélectionnant une autre catégorie
dans la liste déroulante)
Si aucun mot clef n'est reconnu dans la désignation du co mposant alors
la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous les produits
de la liste, il n'y aurait ensuite qu'à vérifier et mod ifier
manuellement pour les cas particuliers.
Exemple :
En A14 le mot clef "ecrou" apparait dans la désignation, alors en B14
la catégorie associée "Visserie" est automatiquement s électionnée
dans la liste déroulante. Mais je veux quand même garde r la
possibilité de modifier ce choix en sélectionnant une a utre
catégorie pour cet ecrou via la liste déroulante si je considère
qu'il fait plutot partie d'un ensemble elec
En A10 il n'y a pas de mot clef reconnu, la case reste vide avec la
liste déroulante.
Maintenant ça fonctionne, c'était un problème de retour à la ligne que j'avais mal placé au niveau du Then.
Merci à ceux qui ont lu le sujet et surtout merci JB !
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1)
If (InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "") Then Catégorie = m.Offset(0, 1) Exit Function End If
Next m Catégorie = "???" End Function
Bon j'ai mis la fonction dans un module standard et elle est maintenant reconnue mais par contre ca lance le débuggeur en indiquant erreur de compil "EndIf sans bloc If".
voila tel que c'est dans le module :
" Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function "
J'ai essayé en enlevant le End if, ca a fonctionné pour ma première ligne mais pour les autres ça affichait 0 même s'il y avait un mot clef dans la désignation.
Je ne comprends pas tout Merci de votre aide
@+
Ca ne fonctionne pas chez moi mais c'est la première fois que j'utilise les fonctions et je ne suis pas sure d'avoir fait les bonnes manip. J'ai recopié de "function à End function" dans la feuille préchoix automatique dans général ensuite j'ai recopié "Êtégorie(A2;$E$2:$F$9)" dans les cases o ù sont les listes déroulantes.
Mais là ça affiche l'erreur #NOM
Ai je oublié de valider une étape?
merci
@+
Fonction renvoyant la catégorie d'une désignation: : Function Catégorie(Désignation, TmotsClésCatégorie As Range) Application.Volatile For Each m In Application.Index(TmotsClésCatégorie, , 1) If InStr(UCase(Désignation), UCase(m.Value)) > 0 And m.Value <> "" Then Catégorie = m.Offset(0, 1) Exit Function End If Next m Catégorie = "" End Function
Êtégorie(A2;$E$2:$F$9)
JB
Bon he bien voila ca fonctionne bien avec une macro. Merci.
De mon coté j'essai d'y arriver sans macro mais je ne sais pas si c'est possible. Je cherche comment avec la fonction equiv index ou recherche, trouver si un des mots d'une liste est présent dans une phrase. Il faut que je cherche ce qu'il y a sur le web sur ce sujet.
je vous dirai si je trouve. Si il y en a qui ont des idées elles sont les bienvenues
@+
MotsClés champ nommé (D5:D18)
Sub essai() For Each c In Range([A2], [A65000].End(xlUp)) For Each m In [motsclés] If InStr(UCase(c.Value), UCase(m.Value)) > 0 Then c.Offset(0, 1) = m.Offset(0, 1) Exit For End If Next m Next c End Sub
JB
Merci pour les exemples. Je ne connais déjà ce fichier tr ès bien foutu et qui m'a bien aidé pour comprendre et établir des t as de listes en cascade.
Par contre, je ne dois pas avoir le niveau suffisant ou je ne s ais pas mais je n'arrive pas à trouver dans ce fichier le moyen de fa ire ce que je veux c'est à dire faire présélectionner à Excel une valeur dans la liste en fonction du mot clef reconnu dans la désigna tion.
Pourriez vous me guider un peu plus avec un exemple
voilà mon problème du jour (fichier d'exemple disponibl e si besoin):
J'ai une colonne avec une liste de produits et leurs dési gnations et je souhaite dans la colonne d'à coté affecter à chaqu e produit une catégorie (elec, visserie, tolerie...) Pour cela avec Don née, validation liste, j'ai créé dans chaque case de la colo nne d'à coté un liste déroulante avec les différentes catégories p ossibles. Maintenant pour gagner une peu de temps (la liste de produi t étant longue) je souhaite qu'en fonction de mots clefs que je d éfinirai, si ce mot est présent dans la désignation du produit alors la catégorie associée à ce mot est directement sélectionnée dans la liste déroulante. (tout en me laissant la possibilité de modi fier manuellement ce choix ensuite en sélectionnant une autre catégorie dans la liste déroulante) Si aucun mot clef n'est reconnu dans la désignation du co mposant alors la case reste vide avec la liste de choix déroulante.
je souhaiterai que ceci se fasse automatiquement pour tous les produits de la liste, il n'y aurait ensuite qu'à vérifier et mod ifier manuellement pour les cas particuliers.
Exemple : En A14 le mot clef "ecrou" apparait dans la désignation, alors en B14 la catégorie associée "Visserie" est automatiquement s électionnée dans la liste déroulante. Mais je veux quand même garde r la possibilité de modifier ce choix en sélectionnant une a utre catégorie pour cet ecrou via la liste déroulante si je considère qu'il fait plutot partie d'un ensemble elec En A10 il n'y a pas de mot clef reconnu, la case reste vide avec la liste déroulante.