Boucle TextBox dans feuille Excel
Kurth
-
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
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:
- Boucle TextBox dans feuille Excel
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Si ou excel - Guide
5 réponses
Salut
L'erreur vient de la ligne :
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).
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).
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?
Quel serait alors le code pour faire ma boucle permettant de mettre "" en valeur dans mes textbox?
Voilà plus simple :
Suivant la valeur de i, les TexBox 1 à 4 ne contiendront rien.
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.
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
ç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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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