Page 1 sur 1
[R] Problème conversion value en name
Posté : jeu. 13 févr. 2014 11:58
par emanemos
J'ai un petit problème :
Mon _IEFormElementGetvalue me retourne la valeur 9 or je voudrais le nom associé à cette valeur 9 soit Stab_def
(dans le source </option><option value="9">Stab_Def).
Quelle fonction utiliser pour avoir Stab_def au lieu de 9 ?
Code : Tout sélectionner
$oForm = _IEFormGetObjByName ($oIE, "mainForm")
$Value=_IEFormElementGetObjByName($oForm,"mtbeStabilityDefinitionUs_")
_ExcelWriteCell($oExcel,_IEFormElementGetvalue($Value), $j,3)
merci pour votre aide.
Re: [..] problème conversion value en name
Posté : jeu. 13 févr. 2014 14:50
par mikell
Essaye
Code : Tout sélectionner
$Value=_IEFormElementGetObjByName($oForm,"mtbeStabilityDefinitionUs_")
$txt = String($Value.innertext)
Re: [..] Problème conversion value en name
Posté : jeu. 13 févr. 2014 15:12
par emanemos
Merci,
mais cela me donne toutes les propositions possibles de 1 à 20, mais dans mon exemple je n'ai besoin que de la proposition pour 9.
Mon _IEFormElementGetvalue me retourne la valeur 9 or je voudrais le nom associé à cette valeur 9 soit Stab_def
(dans le source <option value="1">defaultStab .......</option><option value="9">Stab_Def)........
J'obtiens defaultStab....Stab_Def.....
Comment ne prendre la valeur que pour 9
Re: [..] problème conversion value en name
Posté : jeu. 13 févr. 2014 21:25
par jguinch
Un truc comme ça ?
► Afficher le texte_IEFormElementOptionGetTextFromValue
Code : Tout sélectionner
Local $oForm = _IEFormGetObjByName ($oIE, "mainForm")
Local $oElement = _IEFormElementGetObjByName($oForm, "mtbeStabilityDefinitionUs_")
Local $sText = _IEFormElementOptionGetTextFromValue($oElement, "9")
MsgBox(0, "Texte de l'option", $sText)
Func _IEFormElementOptionGetTextFromValue($oSelect, $sValue)
If NOT IsObj($oSelect) Then Return SetError(1, 0, 0)
Local $oItem, $oItems = $oSelect.options
For $oItem In $oItems
If $oItem.value = $sValue Then Return $oItem.text
Next
Return SetError(1, 0, 0)
EndFunc
Re: [..] problème conversion value en name
Posté : ven. 28 mars 2014 12:21
par emanemos
merci pour l'aide très utile ; c'est ok
Mais j'ai encore un petit problème :
_IEFormElementOptionGetTextFromValue, je veux mettre $Value entre " " : exemple si $value=9, je veux rechercher "9".
Je n'y arrive pas, alors que ce doit être très simple : j'obtiens n'importe quoi.
Code : Tout sélectionner
$oForm = _IEFormGetObjByName ($oIE, "mainForm")
Local $oElement = _IEFormElementGetObjByName($oForm, "tp_serviceQuality_mtbeStabilityDefinitionDs_mtbeStabilityDefinitionDs_")
$Value=_IEFormElementGetvalue($oElement)
msgbox(0,"",$Value)
$sText = _IEFormElementOptionGetTextFromValue($oElement,"/""& $Value & "/"")
_ExcelWriteCell($oExcel,$sText, $j,11)
Re: [..] problème conversion value en name
Posté : dim. 30 mars 2014 22:37
par jguinch
Pour mettre des "" autour d'un valeur, le plus simple est d'utiliser un mélange de simple et double quotes :
$nom = '"9"'
ou alors, doubler les " dans la chaine (ça fait office de caractère d'échappement):
$nom = """9"""
Re: [..] problème conversion value en name
Posté : lun. 31 mars 2014 09:59
par emanemos
mon problème est que je n'obtiens pas "9", mais "$Value"
Dans une boucle, $Value peut prendre différentes valeurs et je dois, après rechercher, cette valeur entrourée de guillemets "9" puis "10" puis "11"....
$Value=9
$sText = _IEFormElementOptionGetTextFromValue($oElement,"$Value")
Quelle est la syntaxe pour obtenir "9" quand $Value=9?
J'ai essayé plusieurs syntaxes ...
Merci pour votre aide.
Re: [..] Problème conversion value en name
Posté : lun. 31 mars 2014 13:46
par mikell
Pas sûr d'avoir bien compris le problème mais tu devrais utiliser un '==' dans la fonction (comparaison de strings)
Code : Tout sélectionner
For $oItem In $oItems
If $oItem.value == $sValue Then Return $oItem.text
Next
Re: [..] Problème conversion value en name
Posté : lun. 31 mars 2014 15:17
par emanemos
a priori, c'est maintenant parfait.
Merci pour votre aide.