Boucle TextBox dans feuille Excel

Kurth -  
 Kurth -
Bonjour à tous,

mon problème est de réussir à faire une boucle en VBA sur plusieurs TextBox (au Nb de 4) dans une feuille Excel.
mes TextBox ne sont pas dans une UserForm mais dans une feuille du classeur et quand je lance le code ci dessous, j'ai une erreur 438

Code
Sub Macro1()
Dim i As Integer
For i = 1 To 4
ActiveSheet.TextBox(i).Value = ""
Next i
End Sub

Merci d'avance pour votre aide
A voir également:

5 réponses

zebulon2503 Messages postés 1319 Statut Membre 110
 
Salut

L'erreur vient de la ligne :
ActiveSheet.TextBox(i).Value=""


Tes TextBox par défaut s'appelle TextBox1, TexBox2...
Tu peux pas les appeler en passant i en paramètre.

Analyse le nom des textbox, et compare le dernier caractère avec la valeur de i (auparavant, convertis le au format numeric).
0
Kurth
 
Je comprend la proposition mais je ne vois pas comment faire mon traitement.
Quel serait alors le code pour faire ma boucle permettant de mettre "" en valeur dans mes textbox?
0
zebulon2503 Messages postés 1319 Statut Membre 110
 
Voilà plus simple :
Sub Macro1()
  Dim i As Integer
  For i = 1 To 4
    Select Case i
      Case 1
        ActiveSheet.TextBox1.Value = ""
      Case 2
        ActiveSheet.TextBox2.Value = ""
      Case 3
        ActiveSheet.TextBox3.Value = ""
      Case 4
        ActiveSheet.TextBox4.Value = ""
    End Select
  Next i
End Sub


Suivant la valeur de i, les TexBox 1 à 4 ne contiendront rien.
0
Kurth
 
mon problème est réellement de gérer une boucle avec l'index des TextBox comme écrit dans mon code initial.
ça doit être faisable puisque je trouve beaucoup de réponses qui fonctionnent pour une TextBox dans une UserForm mais pas quand elle est dans une feuille
0

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

Posez votre question
Kurth
 
Si ça peut aider quelqu'un, j'ai trouvé ceci qui fonctionne :

Private Sub CommandButton1_Click()
Dim Obj As OLEObject
Dim i as Integer

For Each Obj In Sheets("Feuil1").OLEObjects
If TypeOf Obj.Object Is MSForms.TextBox Then
i = Val(Right(Obj.Name, 1))
If i = indexAcif then
......
else:
......
End If
End If
Next Obj
End Sub
0