initialisation avec FOR de textboxs

  • Initiateur de la discussion Initiateur de la discussion dupiniec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

dupiniec

Guest
bonjour

j'ai un code qui donne ca :

S1_T.Value = ""
S2_T.Value = ""
S3_T.Value = ""
S4_T.Value = ""
S5_T.Value = ""
...

ou les objets Si_T sont des textboxs (jen ai 53) et quatre autres type de testboxs (en 53 aussi)

est il possible de passer par une boucle for :

for i=1 to 53
"s" & i &"_T".value =""
next i

bon alors bien sur ce que je vient de marquer ne fonctionne pas, ni d'ailleurs :

s=""s" & i &"_T"
s.value=""


quelqu'un a t il une solution svp ?

par avance merci
 
Salut dupiniec

A suivre mais regarde se bout de macro si cela pourrait t'aider

Option Explicit
Sub lire_et_vider()
Dim Nbre_page As Byte
Dim i As Byte
Dim Nbre_shape As Byte
Dim j As Byte
Nbre_page = Worksheets.Count
For i = 1 To Nbre_page
Nbre_shape = Sheets(i).Shapes.Count
For j = 1 To Nbre_shape
If Right(Sheets(i).Shapes(j).Name, 2) = "_T" Then
Sheets(i).OLEObjects(Sheets(i).Shapes(j).Name).Object.Value = ""
End If
Next j
Next i
End Sub

Sinon un fichier Zipper avec tes boutons nous aiderait plus

Mytå
 
pour le code je ne suis pas trop sur, ou il faudrait que je vide la totalité des données (confidentielles) qui sont dedant.

par contre merci pour la réponse il faut que je la tente ce matin.

A mon avis c'est juste un exemple mais pourquoi utilises tu les feuilles et des shapes, car les textboxs sont dans une userform

mais bon j'essaye de passer le code direcetement peut etre (et meme surement) que j'ai du mal m'expliquer


mais encore une fois merci
 
en fait ce qui serait trop top serait de pouvoir ecrire ca autrement :

S1_T.value

en :

textbox("S1_T").value

ce qui me permettrait de faire varier le nom de la textbox par l'intermédiare d'une variablede type string.

mais comme ca, brut de décoffrage, ca ne marche pas bien sur !!!! 🙂
 
Re Dupiniec

Ok regarde alors du cote des controls de ton Userform

La macro donnerait ceci :

Sub Vider_Textbox_Userform()
Dim Nbre As Byte
Dim i As Byte
Dim j As Byte
Nbre = UserForm1.Controls.Count
For i = 0 To Nbre - 1
For j = 1 To Nbre
If UserForm1.Controls(i).Name = "S" & j & "_T" Then
UserForm1.Controls(i) = ""
GoTo saut
End If
Next j
saut:
Next i
End Sub

Mytå
 
Salut,

voici un petit truc qui pourrait t'aider.

Il faut que toutes tes textboxs aient le meme nom, par exemple "Text1"

Tu peux le faire simplememt en faisant des copier/coller de la premiere Textbox dans ton UserForm.
Click "oui" au message de confirmation.

puis
For i=0 to 52
if Text1(i)="" then
....
end if
next i

i est l'index de la textbox dans la propriete de celle-ci (de 0 a 52 pour 53 Textboxs).

J'ai deja fait ca pour des Checkbox avec VB6, il n'y a pas de raison pour que ca ne marche avec des Textboxs avec VBA.

J'espere avoir repondu a ton souhait
 
merci a tous pour les reponses.

en fait j'ai trouvé un truc qui marche du feu de dieu c'est le Controls :


Controls("Texbox1").value=""
du coup Textbox1 peut etre obtenu avec la concatenation de textbox et i

et ca marche trop top

Merci a tous
 
Bonjour ce Fil,

Pas mal ton truc de Controls("Texbox1"), Dupiniec.

Sinon il existe aussi d'autres méthodes dont voici une démo complète que j'ai faite pour ce Forum, il y a quelques temps :

Lien supprimé (26k)


Et si un jour vous aviez la même chose à faire pour de ActiveX sur Feuilles voici encore une autre démo :

Lien supprimé (25k)


Bonne Journée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour