procédure (en création) qui bloque et me désespère !
3 réponses
Antoine76
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus
"bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne
dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est
encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout
cas si j'en juge par la macro, fort simple d'apparence, qui refuse
obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une
société, en L1 le nom du DRH de cette même société, pour autant qu'on le
connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules
doit, via une macro, alimenter une cellule A14, qui sous analyse de la
cellule L1, va générer en A14 une formule de politesse qui sera "Cher
Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère
Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur)
Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule
K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de
manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1
vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si
le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été
abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à
la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du
correspondant des RH selon les mêmes critères...
ce qui donne pour la macro,
Sub politesse_drh()
' change la formule de politesse pour les DRH "VIP"
If Range("L1").Value= "" Then
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("K1").Value
If Left("K1", 8) = "Monsieur" Then
Range("A14").Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
Else
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("L1").Value
If Left("L1", 8) = "MONSIEUR" Then
Range("C14").Select
Selection.Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
End If
End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1
à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et
m'affiche Monsieur ZOZO en C7 !
Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela
serait responsable du problème), rien n'y fait ! la formule du recours à une
variable pour le nom du DRH n'a rien changé, avec :
Dim nom_drh As String
nom_drh = Range("L1").Value
If nom_drh = "" Then
...
Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la
"borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des
actions ; c'est quel labo déjà ?)
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur" mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le contenu de la cellule K1. Pour cela, il te faut utiliser l'expression range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur", ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de : if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été mélangés.
@+ FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus "bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout cas si j'en juge par la macro, fort simple d'apparence, qui refuse obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une société, en L1 le nom du DRH de cette même société, pour autant qu'on le connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules doit, via une macro, alimenter une cellule A14, qui sous analyse de la cellule L1, va générer en A14 une formule de politesse qui sera "Cher Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur) Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1 vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du correspondant des RH selon les mêmes critères... ce qui donne pour la macro,
Sub politesse_drh() ' change la formule de politesse pour les DRH "VIP" If Range("L1").Value= "" Then ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("K1").Value If Left("K1", 8) = "Monsieur" Then Range("A14").Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If Else ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("L1").Value If Left("L1", 8) = "MONSIEUR" Then Range("C14").Select Selection.Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If End If End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1 à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et m'affiche Monsieur ZOZO en C7 ! Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela serait responsable du problème), rien n'y fait ! la formule du recours à une variable pour le nom du DRH n'a rien changé, avec : Dim nom_drh As String nom_drh = Range("L1").Value If nom_drh = "" Then ... Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la "borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des actions ; c'est quel labo déjà ?)
Antoine
Bonjour,
If Left("K1", 8) = "Monsieur" Then
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur"
mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le
contenu de la cellule K1. Pour cela, il te faut utiliser l'expression
range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le
if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur",
ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de :
if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été mélangés.
@+
FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus
"bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne
dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est
encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout
cas si j'en juge par la macro, fort simple d'apparence, qui refuse
obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une
société, en L1 le nom du DRH de cette même société, pour autant qu'on le
connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules
doit, via une macro, alimenter une cellule A14, qui sous analyse de la
cellule L1, va générer en A14 une formule de politesse qui sera "Cher
Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère
Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur)
Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule
K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de
manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1
vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si
le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été
abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à
la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du
correspondant des RH selon les mêmes critères...
ce qui donne pour la macro,
Sub politesse_drh()
' change la formule de politesse pour les DRH "VIP"
If Range("L1").Value= "" Then
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("K1").Value
If Left("K1", 8) = "Monsieur" Then
Range("A14").Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
Else
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("L1").Value
If Left("L1", 8) = "MONSIEUR" Then
Range("C14").Select
Selection.Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
End If
End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1
à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et
m'affiche Monsieur ZOZO en C7 !
Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela
serait responsable du problème), rien n'y fait ! la formule du recours à une
variable pour le nom du DRH n'a rien changé, avec :
Dim nom_drh As String
nom_drh = Range("L1").Value
If nom_drh = "" Then
...
Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la
"borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des
actions ; c'est quel labo déjà ?)
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur" mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le contenu de la cellule K1. Pour cela, il te faut utiliser l'expression range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur", ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de : if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été mélangés.
@+ FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus "bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout cas si j'en juge par la macro, fort simple d'apparence, qui refuse obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une société, en L1 le nom du DRH de cette même société, pour autant qu'on le connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules doit, via une macro, alimenter une cellule A14, qui sous analyse de la cellule L1, va générer en A14 une formule de politesse qui sera "Cher Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur) Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1 vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du correspondant des RH selon les mêmes critères... ce qui donne pour la macro,
Sub politesse_drh() ' change la formule de politesse pour les DRH "VIP" If Range("L1").Value= "" Then ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("K1").Value If Left("K1", 8) = "Monsieur" Then Range("A14").Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If Else ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("L1").Value If Left("L1", 8) = "MONSIEUR" Then Range("C14").Select Selection.Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If End If End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1 à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et m'affiche Monsieur ZOZO en C7 ! Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela serait responsable du problème), rien n'y fait ! la formule du recours à une variable pour le nom du DRH n'a rien changé, avec : Dim nom_drh As String nom_drh = Range("L1").Value If nom_drh = "" Then ... Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la "borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des actions ; c'est quel labo déjà ?)
Antoine
Antoine76
Merci FxM, (et aussi à JB).
Effectivement FxM, cela aurait dû me crever les yeux ; mais sans doute avais-je les yeux trop injectés de sang, et soit cela ne pouvait pas les crever (cornée trop dure !), soit qu'étant turgescent, la quantité de l'humeur aqueuse à perdre (!) (liquide du devant de l'oeil) était de toute façon trop généreusement pourvue!
Tout est ainsi clair ! (surtout pour mes yeux qui viennent de retrouver toute leur virginité - mais si, mais si !)
avec mes remerciements pour la sauvegarde de la SS (qui n'aura pas à rembourser ma prochaine dose de prozac), et aussi pour le petit pas de recentrage que je viens de faire après ce premier jour...
Antoine
"FxM" a écrit dans le message de news:
Bonjour,
If Left("K1", 8) = "Monsieur" Then
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur" mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le contenu de la cellule K1. Pour cela, il te faut utiliser l'expression range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur", ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de : if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été mélangés.
@+ FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus
"bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne
dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout
cas si j'en juge par la macro, fort simple d'apparence, qui refuse obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une
société, en L1 le nom du DRH de cette même société, pour autant qu'on le connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules
doit, via une macro, alimenter une cellule A14, qui sous analyse de la cellule L1, va générer en A14 une formule de politesse qui sera "Cher Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère
Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur)
Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule
K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1
vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si
le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été
abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à
la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du correspondant des RH selon les mêmes critères... ce qui donne pour la macro,
Sub politesse_drh() ' change la formule de politesse pour les DRH "VIP" If Range("L1").Value= "" Then ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("K1").Value If Left("K1", 8) = "Monsieur" Then Range("A14").Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If Else ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("L1").Value If Left("L1", 8) = "MONSIEUR" Then Range("C14").Select Selection.Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If End If End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1
à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et m'affiche Monsieur ZOZO en C7 ! Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela
serait responsable du problème), rien n'y fait ! la formule du recours à une
variable pour le nom du DRH n'a rien changé, avec : Dim nom_drh As String nom_drh = Range("L1").Value If nom_drh = "" Then ... Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la
"borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des actions ; c'est quel labo déjà ?)
Antoine
Merci FxM, (et aussi à JB).
Effectivement FxM, cela aurait dû me crever les yeux ; mais sans doute
avais-je les yeux trop injectés de sang, et soit cela ne pouvait pas les
crever (cornée trop dure !), soit qu'étant turgescent, la quantité de
l'humeur aqueuse à perdre (!) (liquide du devant de l'oeil) était de toute
façon trop généreusement pourvue!
Tout est ainsi clair ! (surtout pour mes yeux qui viennent de retrouver
toute leur virginité - mais si, mais si !)
avec mes remerciements pour la sauvegarde de la SS (qui n'aura pas à
rembourser ma prochaine dose de prozac), et aussi pour le petit pas de
recentrage que je viens de faire après ce premier jour...
Antoine
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
eVXLwL3DGHA.2088@TK2MSFTNGP09.phx.gbl...
Bonjour,
If Left("K1", 8) = "Monsieur" Then
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur"
mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le
contenu de la cellule K1. Pour cela, il te faut utiliser l'expression
range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le
if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur",
ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de :
if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été
mélangés.
@+
FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant
plus
"bénéficiaire" du savoir collectif que "contributeur" à ce même savoir.
(Ne
dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est
encore trop tôt pour que je franchisse la "borderline" du savoir ! En
tout
cas si j'en juge par la macro, fort simple d'apparence, qui refuse
obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH
d'une
société, en L1 le nom du DRH de cette même société, pour autant qu'on le
connaisse (dont la cellule est parfois vide). Le contenu de ces 2
cellules
doit, via une macro, alimenter une cellule A14, qui sous analyse de la
cellule L1, va générer en A14 une formule de politesse qui sera "Cher
Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon
"Chère
Madame" (si L1 non vide et si le 1er mot de L1 est différent de
Monsieur)
Si par contre la cellule L1 est vide, l'analyse se fait alors sur la
cellule
K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de
manière similaire en A14 une formule de politesse qui sera "Monsieur"
(si L1
vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et
si
le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a
été
abordé, la cellule C7 qui contient le nom du correspondant (faisant
suite à
la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du
correspondant des RH selon les mêmes critères...
ce qui donne pour la macro,
Sub politesse_drh()
' change la formule de politesse pour les DRH "VIP"
If Range("L1").Value= "" Then
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("K1").Value
If Left("K1", 8) = "Monsieur" Then
Range("A14").Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
Else
' affiche la bonne formule de politesse de début de texte
Range("C7").Select
Selection.Value = Range("L1").Value
If Left("L1", 8) = "MONSIEUR" Then
Range("C14").Select
Selection.Value = "Cher Monsieur,"
Else
Range("A14").Value = "Chère Madame,"
End If
End If
End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer
L1
à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et
m'affiche Monsieur ZOZO en C7 !
Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où
cela
serait responsable du problème), rien n'y fait ! la formule du recours à
une
variable pour le nom du DRH n'a rien changé, avec :
Dim nom_drh As String
nom_drh = Range("L1").Value
If nom_drh = "" Then
...
Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de
la
"borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des
actions ; c'est quel labo déjà ?)
Effectivement FxM, cela aurait dû me crever les yeux ; mais sans doute avais-je les yeux trop injectés de sang, et soit cela ne pouvait pas les crever (cornée trop dure !), soit qu'étant turgescent, la quantité de l'humeur aqueuse à perdre (!) (liquide du devant de l'oeil) était de toute façon trop généreusement pourvue!
Tout est ainsi clair ! (surtout pour mes yeux qui viennent de retrouver toute leur virginité - mais si, mais si !)
avec mes remerciements pour la sauvegarde de la SS (qui n'aura pas à rembourser ma prochaine dose de prozac), et aussi pour le petit pas de recentrage que je viens de faire après ce premier jour...
Antoine
"FxM" a écrit dans le message de news:
Bonjour,
If Left("K1", 8) = "Monsieur" Then
Les 8 caractères les plus à gauche de "K1" n'ont jamais été "Monsieur" mais "K1". Tel que tu l'écris, "K1" n'est que le texte "K1" et pas le contenu de la cellule K1. Pour cela, il te faut utiliser l'expression range("K1")
left(...,8) considère les 8 caractères les plus à gauche de ... et le if(..) vérifie que ce soit "Monsieur" et implicitement PAS "monsieur", ni "MONSIEUR", ni " Monsieu", ni même "M. " ou "Mr "
Vois du coté de : if ucase(left(range("K1"),8)) = "MONSIEUR" then
et vérifies également les A14/C14/selection qui semblent avoir été mélangés.
@+ FxM
Antoine76 wrote:
Bonjour à tous,
recevez tous les meilleurs d'un adepte 2005 du forum, pour l'instant plus
"bénéficiaire" du savoir collectif que "contributeur" à ce même savoir. (Ne
dit-on point que la roue tourne ?)
Mais l'année ne fait que débuter en jour de l'an, et il semble qu'il est encore trop tôt pour que je franchisse la "borderline" du savoir ! En tout
cas si j'en juge par la macro, fort simple d'apparence, qui refuse obstinément de me donner le résultat escompté...
Dans un classeur, j'ai en K1 le nom de la personne responsable des RH d'une
société, en L1 le nom du DRH de cette même société, pour autant qu'on le connaisse (dont la cellule est parfois vide). Le contenu de ces 2 cellules
doit, via une macro, alimenter une cellule A14, qui sous analyse de la cellule L1, va générer en A14 une formule de politesse qui sera "Cher Monsieur" (si L1 non vide et si le 1er mot de L1 est Monsieur), sinon "Chère
Madame" (si L1 non vide et si le 1er mot de L1 est différent de Monsieur)
Si par contre la cellule L1 est vide, l'analyse se fait alors sur la cellule
K1 (qui correspond à l'intitulé du correspondant des RH) et crédite de manière similaire en A14 une formule de politesse qui sera "Monsieur" (si L1
vide et si le 1er mot de K1 est Monsieur), sinon "Madame" (si L1 vide et si
le 1er mot de K1 est différent de Monsieur). Dans la ligné de ce qui a été
abordé, la cellule C7 qui contient le nom du correspondant (faisant suite à
la cellule qui disait "A l'attention de ") attribue le nom du DRH ou du correspondant des RH selon les mêmes critères... ce qui donne pour la macro,
Sub politesse_drh() ' change la formule de politesse pour les DRH "VIP" If Range("L1").Value= "" Then ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("K1").Value If Left("K1", 8) = "Monsieur" Then Range("A14").Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If Else ' affiche la bonne formule de politesse de début de texte Range("C7").Select Selection.Value = Range("L1").Value If Left("L1", 8) = "MONSIEUR" Then Range("C14").Select Selection.Value = "Cher Monsieur," Else Range("A14").Value = "Chère Madame," End If End If End Sub
Si j'ai Madame ZAZA en K1, et Monsieur ZOZO en L1, il est censé préférer L1
à K1. Point donc ! en effet, il m'affiche "Chère Madame" en C14, et m'affiche Monsieur ZOZO en C7 ! Si j'introduit une variable pour recevoir le nom du DRH (pour le cas où cela
serait responsable du problème), rien n'y fait ! la formule du recours à une
variable pour le nom du DRH n'a rien changé, avec : Dim nom_drh As String nom_drh = Range("L1").Value If nom_drh = "" Then ... Je crois que je suis pas encore prêt à jeter l'ancre de l'autre côté de la
"borderline"; ou alors 2006 commence pas favorablement, pour moi !
Un avis, ou mieux une aide ? ...
(sinon, le recours au Prozac ; il faudrait peut-être que j'achète des actions ; c'est quel labo déjà ?)