Je voudrais placer le nom d'un textbox dans une variable. J'ai fais
Dim i As Byte
Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index
Case 1
nom = txtNomMenu(0).Name
Case 2
nom = txtNomAccompagnement(0).Name
Case 3
nom = txtNomDessert(0).Name
End Select
For i = 1 To 14
nom(i).BorderStyle = vbFixedSingle
Next i
Les textbox sont crée dynamiquement est sont afficher avant cette procédure.
Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de
la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ?
Merci Raymond Fournier
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
On Jul 5, 2:22 pm, Raymond Fournier wrote:
Je voudrais placer le nom d'un textbox dans une variable. J'ai fais
Dim i As Byte Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index Case 1 nom = txtNomMenu(0).Name Case 2 nom = txtNomAccompagnement(0).Name Case 3 nom = txtNomDessert(0).Name End Select
For i = 1 To 14 nom(i).BorderStyle = vbFixedSingle Next i
Les textbox sont crée dynamiquement est sont afficher avant cette proc édure. Je reçois le message d'erreur "Nombre d'argument incorrect ou affectati on de la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ? Merci Raymond Fournier
Hello,
Le plus gros problème est que tu emploies une variables contenant le nom du contrôle et non le contrôle lui même. Tu peux y palier en utilisant la collection Controls de la sorte: Me.Controls(nom, i).BorderStyle = vbFixedSingle
Une autre possibilité est d'éviter directement l'usage du nom, au profit d'une variable contenant la collection de contrôles voulue: Dim Ctls As Object [...]
Case 1: Set Ctls = txtNomMenu Case 2: Set Ctls = [...]
[...] Ctls(i).BorderStyle = vbFixedSingle
Il doit être possible d'utiliser mieux que Object pour le type, mais je n'ai pas réussi à trouver le type précis dont dérivent ces collections.
François
On Jul 5, 2:22 pm, Raymond Fournier
<RaymondFourn...@discussions.microsoft.com> wrote:
Je voudrais placer le nom d'un textbox dans une variable. J'ai fais
Dim i As Byte
Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index
Case 1
nom = txtNomMenu(0).Name
Case 2
nom = txtNomAccompagnement(0).Name
Case 3
nom = txtNomDessert(0).Name
End Select
For i = 1 To 14
nom(i).BorderStyle = vbFixedSingle
Next i
Les textbox sont crée dynamiquement est sont afficher avant cette proc édure.
Je reçois le message d'erreur "Nombre d'argument incorrect ou affectati on de
la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ?
Merci Raymond Fournier
Hello,
Le plus gros problème est que tu emploies une variables contenant le
nom du contrôle et non le contrôle lui même.
Tu peux y palier en utilisant la collection Controls de la sorte:
Me.Controls(nom, i).BorderStyle = vbFixedSingle
Une autre possibilité est d'éviter directement l'usage du nom, au
profit d'une variable contenant la collection de contrôles voulue:
Dim Ctls As Object
[...]
Case 1:
Set Ctls = txtNomMenu
Case 2:
Set Ctls = [...]
[...]
Ctls(i).BorderStyle = vbFixedSingle
Il doit être possible d'utiliser mieux que Object pour le type, mais
je n'ai pas réussi à trouver le type précis dont dérivent ces
collections.
Je voudrais placer le nom d'un textbox dans une variable. J'ai fais
Dim i As Byte Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index Case 1 nom = txtNomMenu(0).Name Case 2 nom = txtNomAccompagnement(0).Name Case 3 nom = txtNomDessert(0).Name End Select
For i = 1 To 14 nom(i).BorderStyle = vbFixedSingle Next i
Les textbox sont crée dynamiquement est sont afficher avant cette proc édure. Je reçois le message d'erreur "Nombre d'argument incorrect ou affectati on de la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ? Merci Raymond Fournier
Hello,
Le plus gros problème est que tu emploies une variables contenant le nom du contrôle et non le contrôle lui même. Tu peux y palier en utilisant la collection Controls de la sorte: Me.Controls(nom, i).BorderStyle = vbFixedSingle
Une autre possibilité est d'éviter directement l'usage du nom, au profit d'une variable contenant la collection de contrôles voulue: Dim Ctls As Object [...]
Case 1: Set Ctls = txtNomMenu Case 2: Set Ctls = [...]
[...] Ctls(i).BorderStyle = vbFixedSingle
Il doit être possible d'utiliser mieux que Object pour le type, mais je n'ai pas réussi à trouver le type précis dont dérivent ces collections.
François
Vincent Guichard
Raymond Fournier a écrit :
Je voudrais placer le nom d'un textbox dans une variable.
Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
J'ai fais
Dim i As Byte Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index Case 1 nom = txtNomMenu(0).Name Case 2 nom = txtNomAccompagnement(0).Name Case 3 nom = txtNomDessert(0).Name End Select
For i = 1 To 14 nom(i).BorderStyle = vbFixedSingle Next i
Les textbox sont crée dynamiquement est sont afficher avant cette procédure. Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ? Merci Raymond Fournier
Plusieurs possibilités: 1- Tu veux mémoriser le nom d'un contrôle Dim Nom as String Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le réutiliser par la suite pour accéder à ses propriétés Dim txtControle as TextBox Set txtControle = txtNomMenu(0) txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés en se basant sur son nom Dim Nom as String Nom = txtNomMenu(0).Name Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non pas un objet seul, donc cela complique un peu les choses. Par contre, comme tu connais le nom (dans le select), je comprends pas bien pourquoi tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux: Dim i as Integer 'Aucune raison d'être en Byte ici Dim Nom as String Select Case tbsMenu.SelectedItem.Index Case 1 Nom = "txtNomMenu" Case 2 Nom = "txtNomAccompagnement" Case 3 Nom = "txtNomDessert" End Select For i = 1 to 14 Controls(Nom).Item(i).BorderStyle = vbFixedSingle Next i
Vincent Guichard
Raymond Fournier a écrit :
Je voudrais placer le nom d'un textbox dans une variable.
Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu
donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
J'ai fais
Dim i As Byte
Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index
Case 1
nom = txtNomMenu(0).Name
Case 2
nom = txtNomAccompagnement(0).Name
Case 3
nom = txtNomDessert(0).Name
End Select
For i = 1 To 14
nom(i).BorderStyle = vbFixedSingle
Next i
Les textbox sont crée dynamiquement est sont afficher avant cette procédure.
Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de
la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ?
Merci Raymond Fournier
Plusieurs possibilités:
1- Tu veux mémoriser le nom d'un contrôle
Dim Nom as String
Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le
réutiliser par la suite pour accéder à ses propriétés
Dim txtControle as TextBox
Set txtControle = txtNomMenu(0)
txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés
en se basant sur son nom
Dim Nom as String
Nom = txtNomMenu(0).Name
Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non
pas un objet seul, donc cela complique un peu les choses. Par contre,
comme tu connais le nom (dans le select), je comprends pas bien pourquoi
tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux:
Dim i as Integer 'Aucune raison d'être en Byte ici
Dim Nom as String
Select Case tbsMenu.SelectedItem.Index
Case 1
Nom = "txtNomMenu"
Case 2
Nom = "txtNomAccompagnement"
Case 3
Nom = "txtNomDessert"
End Select
For i = 1 to 14
Controls(Nom).Item(i).BorderStyle = vbFixedSingle
Next i
Je voudrais placer le nom d'un textbox dans une variable.
Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
J'ai fais
Dim i As Byte Dim nom As TextBox
Select Case tbsMenu.SelectedItem.Index Case 1 nom = txtNomMenu(0).Name Case 2 nom = txtNomAccompagnement(0).Name Case 3 nom = txtNomDessert(0).Name End Select
For i = 1 To 14 nom(i).BorderStyle = vbFixedSingle Next i
Les textbox sont crée dynamiquement est sont afficher avant cette procédure. Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de la propriété incorrecte."
Si quelqu'un a une idée sur ce que je ne fais pas correct ? Merci Raymond Fournier
Plusieurs possibilités: 1- Tu veux mémoriser le nom d'un contrôle Dim Nom as String Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le réutiliser par la suite pour accéder à ses propriétés Dim txtControle as TextBox Set txtControle = txtNomMenu(0) txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés en se basant sur son nom Dim Nom as String Nom = txtNomMenu(0).Name Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non pas un objet seul, donc cela complique un peu les choses. Par contre, comme tu connais le nom (dans le select), je comprends pas bien pourquoi tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux: Dim i as Integer 'Aucune raison d'être en Byte ici Dim Nom as String Select Case tbsMenu.SelectedItem.Index Case 1 Nom = "txtNomMenu" Case 2 Nom = "txtNomAccompagnement" Case 3 Nom = "txtNomDessert" End Select For i = 1 to 14 Controls(Nom).Item(i).BorderStyle = vbFixedSingle Next i
Vincent Guichard
Raymond Fournier
"Vincent Guichard" wrote:
Raymond Fournier a écrit : > Je voudrais placer le nom d'un textbox dans une variable. Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
> J'ai fais > > Dim i As Byte > Dim nom As TextBox > > Select Case tbsMenu.SelectedItem.Index > Case 1 > nom = txtNomMenu(0).Name > Case 2 > nom = txtNomAccompagnement(0).Name > Case 3 > nom = txtNomDessert(0).Name > End Select > > For i = 1 To 14 > nom(i).BorderStyle = vbFixedSingle > Next i > > Les textbox sont crée dynamiquement est sont afficher avant cette procédure. > Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de > la propriété incorrecte." > > Si quelqu'un a une idée sur ce que je ne fais pas correct ? > Merci Raymond Fournier >
Plusieurs possibilités: 1- Tu veux mémoriser le nom d'un contrôle Dim Nom as String Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le réutiliser par la suite pour accéder à ses propriétés Dim txtControle as TextBox Set txtControle = txtNomMenu(0) txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés en se basant sur son nom Dim Nom as String Nom = txtNomMenu(0).Name Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non pas un objet seul, donc cela complique un peu les choses. Par contre, comme tu connais le nom (dans le select), je comprends pas bien pourquoi tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux: Dim i as Integer 'Aucune raison d'être en Byte ici Dim Nom as String Select Case tbsMenu.SelectedItem.Index Case 1 Nom = "txtNomMenu" Case 2 Nom = "txtNomAccompagnement" Case 3 Nom = "txtNomDessert" End Select For i = 1 to 14 Controls(Nom).Item(i).BorderStyle = vbFixedSingle Next i
Vincent Guichard
Merci a tout ceux qui mon éclairer. sa fonction numéro 1. Raymond Fournier
"Vincent Guichard" wrote:
Raymond Fournier a écrit :
> Je voudrais placer le nom d'un textbox dans une variable.
Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu
donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
> J'ai fais
>
> Dim i As Byte
> Dim nom As TextBox
>
> Select Case tbsMenu.SelectedItem.Index
> Case 1
> nom = txtNomMenu(0).Name
> Case 2
> nom = txtNomAccompagnement(0).Name
> Case 3
> nom = txtNomDessert(0).Name
> End Select
>
> For i = 1 To 14
> nom(i).BorderStyle = vbFixedSingle
> Next i
>
> Les textbox sont crée dynamiquement est sont afficher avant cette procédure.
> Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de
> la propriété incorrecte."
>
> Si quelqu'un a une idée sur ce que je ne fais pas correct ?
> Merci Raymond Fournier
>
Plusieurs possibilités:
1- Tu veux mémoriser le nom d'un contrôle
Dim Nom as String
Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le
réutiliser par la suite pour accéder à ses propriétés
Dim txtControle as TextBox
Set txtControle = txtNomMenu(0)
txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés
en se basant sur son nom
Dim Nom as String
Nom = txtNomMenu(0).Name
Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non
pas un objet seul, donc cela complique un peu les choses. Par contre,
comme tu connais le nom (dans le select), je comprends pas bien pourquoi
tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux:
Dim i as Integer 'Aucune raison d'être en Byte ici
Dim Nom as String
Select Case tbsMenu.SelectedItem.Index
Case 1
Nom = "txtNomMenu"
Case 2
Nom = "txtNomAccompagnement"
Case 3
Nom = "txtNomDessert"
End Select
For i = 1 to 14
Controls(Nom).Item(i).BorderStyle = vbFixedSingle
Next i
Vincent Guichard
Merci a tout ceux qui mon éclairer. sa fonction numéro 1.
Raymond Fournier
Raymond Fournier a écrit : > Je voudrais placer le nom d'un textbox dans une variable. Ok. Ce n'est pas ce que tu fais (ou semble faire) dans le code que tu donne en exemple ci-dessous. Peux-tu expliciter tes besoins?
> J'ai fais > > Dim i As Byte > Dim nom As TextBox > > Select Case tbsMenu.SelectedItem.Index > Case 1 > nom = txtNomMenu(0).Name > Case 2 > nom = txtNomAccompagnement(0).Name > Case 3 > nom = txtNomDessert(0).Name > End Select > > For i = 1 To 14 > nom(i).BorderStyle = vbFixedSingle > Next i > > Les textbox sont crée dynamiquement est sont afficher avant cette procédure. > Je reçois le message d'erreur "Nombre d'argument incorrect ou affectation de > la propriété incorrecte." > > Si quelqu'un a une idée sur ce que je ne fais pas correct ? > Merci Raymond Fournier >
Plusieurs possibilités: 1- Tu veux mémoriser le nom d'un contrôle Dim Nom as String Nom = txtNomMenu(0).Name
2- Tu veux mémoriser une référence sur un contrôle pour pouvoir le réutiliser par la suite pour accéder à ses propriétés Dim txtControle as TextBox Set txtControle = txtNomMenu(0) txtControle.BorderStyle = vbFixedSingle
3- Tu veux mémoriser le nom d'un contrôle, et accéder à ses propriétés en se basant sur son nom Dim Nom as String Nom = txtNomMenu(0).Name Controls(Nom).BorderStyle = vbFixedSingle
Dans ton cas, le problème est que tu as une collection d'objets, et non pas un objet seul, donc cela complique un peu les choses. Par contre, comme tu connais le nom (dans le select), je comprends pas bien pourquoi tu ne fais pas ton affectation à ce moment là. Enfin bref...
Donc voici un code qui devrais faire ce que tu veux: Dim i as Integer 'Aucune raison d'être en Byte ici Dim Nom as String Select Case tbsMenu.SelectedItem.Index Case 1 Nom = "txtNomMenu" Case 2 Nom = "txtNomAccompagnement" Case 3 Nom = "txtNomDessert" End Select For i = 1 to 14 Controls(Nom).Item(i).BorderStyle = vbFixedSingle Next i
Vincent Guichard
Merci a tout ceux qui mon éclairer. sa fonction numéro 1. Raymond Fournier