OVH Cloud OVH Cloud

textbox.value="" avec code VBA raccourci...

4 réponses
Avatar
Excel...lent
Salut à tous,

Sur ma feuille j'ai 5 textbox. De Textbox1 à Textbox5

Pour l'instant je les remets à zéro comme ceci :

Sub zaza()
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
End Sub

Est-il possible de simplifier ce code avec une boucle For / Next
du genre

Sub zaza()
For n=1 to 5
TextBox(n).Value = ""
Next n
End Sub

Merci de votre aide.

Amicordialement.

Marc

4 réponses

Avatar
anonymousA
Bonjour,

la réponse est evidemment oui ( car le controles quels qu'ils soient
appartiennent à une collection qu'il est possible de parcourir puis de
distinguer de quelle nature sont les controles puis de faire des choses
avec) mais les questions sont : qu'entends tu par feuille; worksheeet,
userform ? et qu'entends tu par controles textbox: BO formulaires ou BO
controles, controles de Userform ?

Entendons-nous , ce n'est pas que je veux t'embrouiller, mais à question
précise, réponse précise.

A+

Salut à tous,

Sur ma feuille j'ai 5 textbox. De Textbox1 à Textbox5

Pour l'instant je les remets à zéro comme ceci :

Sub zaza()
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
End Sub

Est-il possible de simplifier ce code avec une boucle For / Next
du genre

Sub zaza()
For n=1 to 5
TextBox(n).Value = ""
Next n
End Sub

Merci de votre aide.

Amicordialement.

Marc





Avatar
Nicolas B.
Salut,

Comme l'a dit anonymousA, on est dans des feuilles ou des userforms ?

Allez, on va dire que ça peut être les deux ;-)


Dans le cas de la feuille :

Sub Menage()
Dim i As Integer
For i = 1 To 5
ActiveSheet.OLEObjects.Item("TextBox" & i).Object = ""
Next
End Sub


Et pour la userform :

Dim i As Integer
For i = 1 To 5
Controls("TextBox" & i).Text = ""
Next


A+
Nicolas B.

Salut à tous,

Sur ma feuille j'ai 5 textbox. De Textbox1 à Textbox5

Pour l'instant je les remets à zéro comme ceci :

Sub zaza()
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
End Sub

Est-il possible de simplifier ce code avec une boucle For / Next
du genre

Sub zaza()
For n=1 to 5
TextBox(n).Value = ""
Next n
End Sub

Merci de votre aide.

Amicordialement.

Marc





Avatar
anonymousA
Bonjour,

tu as syntaxiquement raison sur le code. Ceci dit, pour être puriste, il
n'en reste pas moins qu'il vaut sans doute mieux dans le 1er cas
parcourir la collection des shapes puis déterminer s'il s'agit d'un
OLEObject puis dans les OLEObjects s'il s'agit d'un textbox ( par la
propriété ProgID). Dans le 2eme cas, l'utilisation là encore de TypeOf
ou de Typemane est sans doute encore plus fiable.
Il n'empêche , je me répète, que ton code est valide et enonce même la
propriété par défaut des Textbox pour les textboxes de UF.

A+


Salut,

Comme l'a dit anonymousA, on est dans des feuilles ou des userforms ?

Allez, on va dire que ça peut être les deux ;-)


Dans le cas de la feuille :

Sub Menage()
Dim i As Integer
For i = 1 To 5
ActiveSheet.OLEObjects.Item("TextBox" & i).Object = ""
Next
End Sub


Et pour la userform :

Dim i As Integer
For i = 1 To 5
Controls("TextBox" & i).Text = ""
Next


A+
Nicolas B.

Salut à tous,

Sur ma feuille j'ai 5 textbox. De Textbox1 à Textbox5

Pour l'instant je les remets à zéro comme ceci :

Sub zaza()
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
End Sub

Est-il possible de simplifier ce code avec une boucle For / Next
du genre

Sub zaza()
For n=1 to 5
TextBox(n).Value = ""
Next n
End Sub

Merci de votre aide.

Amicordialement.

Marc







Avatar
Excel...lent
Salut à vous deux,

OK mea culpa, ma demande était en effet incomplète.....oups

Mes TextBox sont dans une feuille ( WorkSheets ) et non dans un usf.

La soluce de Nicolas fonctionne très bien, c'est exactement ce que je
recherchais.

Je ne doute pas une seule seconde que AnonymousA aurait proposé une soluce
tout aussi adapté si ce n'est la même.

Merci à tout les deux.

Amicordialement.

Marc