Effacer Textbox avec exception

Résolu
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!
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. 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
    1. Réctification, j'ai Excel 2000.

      87fred je ne comprends pas ton code :)
      Est-ce que tu peux expliquer stp ?
      Merci
      1. 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
        1. 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
          1. J'utilise excel2003, c'est peut-être pour ça que ça ne fonctionne pas
            1. 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 !
              1. 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
                1. 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?
                  1. Pour mes checkboxs c'est résolu, erreur de syntaxe.

                    Personne d'autres pour ma boucle sur le texbox ?