Effacer Textbox avec exception

Résolu/Fermé
Invite097654 - 17 avril 2009 à 10:53
 Invite097654 - 17 avril 2009 à 13:41
Bonjour,
j'ai Excel 2003, j'aurai besoin de votre aide concernant une boucle pour effacer les textboxes de mon Uform

J'ai placé ce code dans un module standard :
Public Sub EffaceTextBox(ByRef UForm As UserForm)
Dim Ctrl As Control
'Boucle pour tout les contrôle de UForm
For Each Ctrl In UForm.Controls
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Value = vbNullString

Next
Set Ctrl = Nothing

End Sub


Puis un bouton :
private sub effacertxt()
call EffaceTextBox
end sub


Le problème c'est que j'ai un textbox (textbox16)dans ce Uform, et je ne veux pas qu'il soit réinitialisé. J'ai essayé de mettre la propriété Locked à True mais il est quand même effacé.
Quelqu'un peut me dir quel commande mettre dans mon module pour faire en sorte que Textbox16 ne soit pas reinitialisé?

Merci!
A voir également:

9 réponses

87fred Messages postés 36 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 22 octobre 2009 1
17 avril 2009 à 11:00
Bonjour,
essaye ça, ça devrai marcher:

For Y = 1 To 15
private sub effacertxt()
call EffaceTextBox & Y
Next Y
For Y = 17 To ...
private sub effacertxt()
call EffaceTextBox & Y
Next Y
0
Invite097654
17 avril 2009 à 11:11
Réctification, j'ai Excel 2000.

87fred je ne comprends pas ton code :)
Est-ce que tu peux expliquer stp ?
Merci
0
87fred Messages postés 36 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 22 octobre 2009 1
17 avril 2009 à 11:21
la variable Y prend en compte dans un premier temps toutes tes textbox de 1 a 15, (textbox1,textbox2,...,textbox15)
puis dans un deuxième temps tes textbox de 17 a la derniere
(textbox17,textbox18,...)
tu devrais pouvoir effacer toutes tes textbox sauf la textbox16
0
Invite097654
17 avril 2009 à 11:32
Comment VBA sait que "Y" correspond à un textbox ?
Il me passe en rouge cette instruction : call EffaceTextBox & Y
Apparement le Y le gêne !

Ou je place ton code ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
87fred Messages postés 36 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 22 octobre 2009 1
17 avril 2009 à 11:40
J'utilise excel2003, c'est peut-être pour ça que ça ne fonctionne pas
0
Invite097654
17 avril 2009 à 11:44
Je vais attendre d'autres réponses alors, merci quand même !
Sinon est ce que tu c quelle instruction correspond à "décocher" pour un checkbox
j'ai une fonction :
private sub checkbox1_click()
Sheets("Feuil1").Range("A1").Value = "Case 1 cochée"
end sub



Mais j'aurai besoin d'une fonction
private sub checkbox1_unchecked?()
Sheets("Feuil1").Range("A1").clear
end sub </gras>

Tu sais comment faire?

Merci !
0
87fred Messages postés 36 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 22 octobre 2009 1
17 avril 2009 à 11:51
sub userform_initialize
chekbox1=false
end sub

ce code te permettra de décocher un chekbox lorsque que tu activera ton userform, sinon écrit simple:
chekbox1=false
dans la partie de programme ou tu souhaite décocher un chekbox
0
Invite097654
17 avril 2009 à 12:03
J'ai essayé de faire ca mais ca fonctionne pas :
Private Sub CheckBox1_Click()
Sheets("Feuil1").Range("A1").Value = "Case 1 cochée"
If chekbox1 = False Then Sheets("Feuil1").Range("A1").Clear
End Sub

Une idée?
0
Invite097654
17 avril 2009 à 13:41
Pour mes checkboxs c'est résolu, erreur de syntaxe.

Personne d'autres pour ma boucle sur le texbox ?
0