J'ai une liste de A1à A50, nommée liste, qui contient des noms
Je souhaite avoir une proc qui choisit un nom dans la liste, à chaque clic
sur un bouton.
Si ce n'est pas trop complexe, car sinon, j'utiliserai INDEX/EQUIV avec un
numéro, masqué en amont de la liste.
Merci beaucoup
Flo riant
Euh... Qu'est ce que la méthode Evaluate ? Flo riant
"AV" a écrit dans le message de news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
PS : Boff.... la fonction Rnd en Vba ! AV
docm
Bonsoir Florian.
Sous toutes réserves. La méthode Evaluate convertit une chaîne de caractères en un objet ou une valeur. Exemples: r = Evaluate("2*3") trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []: r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1). Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle soit en anglais US. r = Evaluate("ALEA()") produira une erreur, mais r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule() Set reference = Cells(1, 1) FormuleEquivalenteEnAnglais = LireFormule(reference, 2) Debug.Print FormuleEquivalenteEnAnglais MsgBox FormuleEquivalenteEnAnglais End Sub
Function LireFormule(reference, param) ' Modeste, mpfe
Select Case param Case 1 ' --------formule en langue locale If reference.HasArray Then LireFormule = "{" & reference.FormulaLocal & "}" Else LireFormule = " " & reference.FormulaLocal End If Case 2 ' --------formule en langue US If reference.HasArray Then LireFormule = "{" & reference.Formula & "}" Else LireFormule = " " & reference.Formula End If Case 3 '-formule en langue locale notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1Local & "}" Else LireFormule = " " & reference.FormulaR1C1Local End If Case 4 ' --formule en langue US notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1 & "}" Else LireFormule = " " & reference.FormulaR1C1 End If Case Else End Select End Function
"Florian" wrote in message news:#
Euh... Qu'est ce que la méthode Evaluate ? Flo riant
"AV" a écrit dans le message de news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
PS : Boff.... la fonction Rnd en Vba ! AV
Bonsoir Florian.
Sous toutes réserves.
La méthode Evaluate convertit une chaîne de caractères
en un objet ou une valeur.
Exemples:
r = Evaluate("2*3")
trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []:
r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1).
Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle soit
en anglais US.
r = Evaluate("ALEA()") produira une erreur, mais
r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu
peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule()
Set reference = Cells(1, 1)
FormuleEquivalenteEnAnglais = LireFormule(reference, 2)
Debug.Print FormuleEquivalenteEnAnglais
MsgBox FormuleEquivalenteEnAnglais
End Sub
Function LireFormule(reference, param)
' Modeste, mpfe
Select Case param
Case 1 ' --------formule en langue locale
If reference.HasArray Then
LireFormule = "{" & reference.FormulaLocal & "}"
Else
LireFormule = " " & reference.FormulaLocal
End If
Case 2 ' --------formule en langue US
If reference.HasArray Then
LireFormule = "{" & reference.Formula & "}"
Else
LireFormule = " " & reference.Formula
End If
Case 3 '-formule en langue locale notation ligne-colonne
If reference.HasArray Then
LireFormule = "{" & reference.FormulaR1C1Local & "}"
Else
LireFormule = " " & reference.FormulaR1C1Local
End If
Case 4 ' --formule en langue US notation ligne-colonne
If reference.HasArray Then
LireFormule = "{" & reference.FormulaR1C1 & "}"
Else
LireFormule = " " & reference.FormulaR1C1
End If
Case Else
End Select
End Function
"Florian" <florian@toto.fr> wrote in message
news:#HRMsUPbEHA.3664@TK2MSFTNGP12.phx.gbl...
Euh...
Qu'est ce que la méthode Evaluate ?
Flo riant
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uURQtqObEHA.2512@TK2MSFTNGP10.phx.gbl...
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ?
La méthode Evaluate c'est pas du vba ?
;-)
Sous toutes réserves. La méthode Evaluate convertit une chaîne de caractères en un objet ou une valeur. Exemples: r = Evaluate("2*3") trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []: r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1). Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle soit en anglais US. r = Evaluate("ALEA()") produira une erreur, mais r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule() Set reference = Cells(1, 1) FormuleEquivalenteEnAnglais = LireFormule(reference, 2) Debug.Print FormuleEquivalenteEnAnglais MsgBox FormuleEquivalenteEnAnglais End Sub
Function LireFormule(reference, param) ' Modeste, mpfe
Select Case param Case 1 ' --------formule en langue locale If reference.HasArray Then LireFormule = "{" & reference.FormulaLocal & "}" Else LireFormule = " " & reference.FormulaLocal End If Case 2 ' --------formule en langue US If reference.HasArray Then LireFormule = "{" & reference.Formula & "}" Else LireFormule = " " & reference.Formula End If Case 3 '-formule en langue locale notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1Local & "}" Else LireFormule = " " & reference.FormulaR1C1Local End If Case 4 ' --formule en langue US notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1 & "}" Else LireFormule = " " & reference.FormulaR1C1 End If Case Else End Select End Function
"Florian" wrote in message news:#
Euh... Qu'est ce que la méthode Evaluate ? Flo riant
"AV" a écrit dans le message de news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
PS : Boff.... la fonction Rnd en Vba ! AV
Florian
Merci beaucoup pour toutes ses explications. Bonne soirée Flo riant
"docm" a écrit dans le message de news:
Bonsoir Florian.
Sous toutes réserves. La méthode Evaluate convertit une chaîne de caractères en un objet ou une valeur. Exemples: r = Evaluate("2*3") trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []: r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1). Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle soit
en anglais US. r = Evaluate("ALEA()") produira une erreur, mais r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule() Set reference = Cells(1, 1) FormuleEquivalenteEnAnglais = LireFormule(reference, 2) Debug.Print FormuleEquivalenteEnAnglais MsgBox FormuleEquivalenteEnAnglais End Sub
Function LireFormule(reference, param) ' Modeste, mpfe
Select Case param Case 1 ' --------formule en langue locale If reference.HasArray Then LireFormule = "{" & reference.FormulaLocal & "}" Else LireFormule = " " & reference.FormulaLocal End If Case 2 ' --------formule en langue US If reference.HasArray Then LireFormule = "{" & reference.Formula & "}" Else LireFormule = " " & reference.Formula End If Case 3 '-formule en langue locale notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1Local & "}" Else LireFormule = " " & reference.FormulaR1C1Local End If Case 4 ' --formule en langue US notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1 & "}" Else LireFormule = " " & reference.FormulaR1C1 End If Case Else End Select End Function
"Florian" wrote in message news:#
Euh... Qu'est ce que la méthode Evaluate ? Flo riant
"AV" a écrit dans le message de news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
PS : Boff.... la fonction Rnd en Vba ! AV
Merci beaucoup pour toutes ses explications.
Bonne soirée
Flo riant
"docm" <docmarti@spamcolba.net> a écrit dans le message de
news:eSivhYQbEHA.4092@TK2MSFTNGP11.phx.gbl...
Bonsoir Florian.
Sous toutes réserves.
La méthode Evaluate convertit une chaîne de caractères
en un objet ou une valeur.
Exemples:
r = Evaluate("2*3")
trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []:
r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1).
Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle
soit
en anglais US.
r = Evaluate("ALEA()") produira une erreur, mais
r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu
peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule()
Set reference = Cells(1, 1)
FormuleEquivalenteEnAnglais = LireFormule(reference, 2)
Debug.Print FormuleEquivalenteEnAnglais
MsgBox FormuleEquivalenteEnAnglais
End Sub
Function LireFormule(reference, param)
' Modeste, mpfe
Select Case param
Case 1 ' --------formule en langue locale
If reference.HasArray Then
LireFormule = "{" & reference.FormulaLocal & "}"
Else
LireFormule = " " & reference.FormulaLocal
End If
Case 2 ' --------formule en langue US
If reference.HasArray Then
LireFormule = "{" & reference.Formula & "}"
Else
LireFormule = " " & reference.Formula
End If
Case 3 '-formule en langue locale notation ligne-colonne
If reference.HasArray Then
LireFormule = "{" & reference.FormulaR1C1Local & "}"
Else
LireFormule = " " & reference.FormulaR1C1Local
End If
Case 4 ' --formule en langue US notation ligne-colonne
If reference.HasArray Then
LireFormule = "{" & reference.FormulaR1C1 & "}"
Else
LireFormule = " " & reference.FormulaR1C1
End If
Case Else
End Select
End Function
"Florian" <florian@toto.fr> wrote in message
news:#HRMsUPbEHA.3664@TK2MSFTNGP12.phx.gbl...
Euh...
Qu'est ce que la méthode Evaluate ?
Flo riant
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uURQtqObEHA.2512@TK2MSFTNGP10.phx.gbl...
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ?
La méthode Evaluate c'est pas du vba ?
;-)
Merci beaucoup pour toutes ses explications. Bonne soirée Flo riant
"docm" a écrit dans le message de news:
Bonsoir Florian.
Sous toutes réserves. La méthode Evaluate convertit une chaîne de caractères en un objet ou une valeur. Exemples: r = Evaluate("2*3") trigVariable = Evaluate("SIN(45)")
On peut remplacer le mot Evaluate par des crochets droits []: r = [2*3] est l'équivalent de r = Evaluate("2*3")
Dans l'exemple suivant, Evaluate ou [] retourne l'objet Range(A1). Set premièrecelluledansfeuille = Workbooks("1").Sheets(4).[A1]
Evaluate peut interpréter une formule à la condition toutefois qu'elle soit
en anglais US. r = Evaluate("ALEA()") produira une erreur, mais r = Evaluate("rand()") donnera la valeur attendue.
Pour obtenir l'équivalent en anglais d'une formule se trouvant en A1, tu peux utiliser la procédure suivante:
Sub EquivalentAnglaisDuneFormule() Set reference = Cells(1, 1) FormuleEquivalenteEnAnglais = LireFormule(reference, 2) Debug.Print FormuleEquivalenteEnAnglais MsgBox FormuleEquivalenteEnAnglais End Sub
Function LireFormule(reference, param) ' Modeste, mpfe
Select Case param Case 1 ' --------formule en langue locale If reference.HasArray Then LireFormule = "{" & reference.FormulaLocal & "}" Else LireFormule = " " & reference.FormulaLocal End If Case 2 ' --------formule en langue US If reference.HasArray Then LireFormule = "{" & reference.Formula & "}" Else LireFormule = " " & reference.Formula End If Case 3 '-formule en langue locale notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1Local & "}" Else LireFormule = " " & reference.FormulaR1C1Local End If Case 4 ' --formule en langue US notation ligne-colonne If reference.HasArray Then LireFormule = "{" & reference.FormulaR1C1 & "}" Else LireFormule = " " & reference.FormulaR1C1 End If Case Else End Select End Function
"Florian" wrote in message news:#
Euh... Qu'est ce que la méthode Evaluate ? Flo riant
"AV" a écrit dans le message de news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
PS : Boff.... la fonction Rnd en Vba ! AV
docm
"AV" wrote in message news:
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ? La méthode Evaluate c'est pas du vba ? ;-)
"Evaluate", oui, c'est une fonction VBA, mais "index(A1:A50,int(rand()*(51-1)+1))", non. ;-)
PS : Boff.... la fonction Rnd en Vba ! Pourquoi ce Boff... envers ce valeureux Rnd?
"AV" <alain.vallon@wanadoo.fr> wrote in message
news:uURQtqObEHA.2512@TK2MSFTNGP10.phx.gbl...
En pur Visual Basic, cela donnerait (à adapter):
Ben pourquoi ?
La méthode Evaluate c'est pas du vba ?
;-)
"Evaluate", oui, c'est une fonction VBA, mais
"index(A1:A50,int(rand()*(51-1)+1))", non.
;-)
PS : Boff.... la fonction Rnd en Vba !
Pourquoi ce Boff... envers ce valeureux Rnd?