XL 2013 modifier code pour textbox nommés

grisan29

XLDnaute Accro
bonsoir a tout le forum

dans ce post bien mené par CBernardT
quand les textbox sont nommés ce bout de code ne fonctionne pas
Code:
' Effacement des textbox
For k = 1 To 7
Me.Controls("Textbox" & k) = ""
Next k
et pareil pour leur remplissage

Code:
' Affichage des données du nom
For k = 1 To 7
Me.Controls("Textbox" & k) = .Cells(Index, k + 1)
Next k

car dans le classeur qu'a fait CBernardT il y a des textbox non nommé et en les nommant ce code ne fonctionne pas et bug a me.controls

Pascal
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : modifier code pour textbox nommés

Bonsoir grisan29,

il y a des textbox non nommé et en les nommant ce code ne fonctionne pas ...

Les TextBox sont toujours nommées; c'est la structure de leur nom qui permet ou non de pouvoir les "lister' dans une boucle indicée.

Si le nom ne permet pas cette boucle indicée (Style TB1, TB2...) on peut boucler sur les controls d'une USF et filtrer sur leur type.

La limite étant : s'il y a 20 textbox et qu'on veut agir sur seulement 10, il faut trouver un moyen de sélectionner les bonnes textbox.

Code:
For Each ctrl In Me.Controls
     If TypeName(ctrl) = "TextBox" Then
         ...
          ctrl=""
         ...
     End If
Next

A+
 

grisan29

XLDnaute Accro
Re : modifier code pour textbox nommés

bonjour Paf et le forum

merci de ta réponse donc si je procède a ta façon ca devrai fonctionner si je fait ceci

Code:
For Each ctrl In Me.Controls
     If TypeName(ctrl) = "TextBox" Then
         ...
          ctrl="TBnom" ' au lieu TextBox1
          ctrl="TBPrénom" ' au lieu TextBox2
         ...
     End If
Next

sauf que j'ai un bug a ctrl qui n'est pas déclarer

Pascal
 

laetitia90

XLDnaute Barbatruc
Re : modifier code pour textbox nommés

bonjour grisan , paf :)

eh ben !!! il faut la déclarer???
2 methodes parmi d'autres .....
Code:
  Dim j As Control
Private Sub CommandButton1_Click()
  For Each j In Controls
  If TypeOf j Is MSForms.TextBox Then j = ""
  Next
 End Sub
Private Sub CommandButton2_Click()
 For Each j In Controls
 If TypeName(j) = "TextBox" Then j = ""
 Next j
End Sub

utiliser Tag si on veut faire des exceptions des fois plus simple a voir
 

grisan29

XLDnaute Accro
Re : modifier code pour textbox nommés

bonjour Laetitia

merci de ta réponse mais maintenant en reprenant le classeur de CBernardT et en renommant les textbox "1" 2" "3" par
TBnom
TBnom2
TBprénom
Code:
Dim j As Control
  For Each j In Controls
  If TypeOf j Is MSForms.TextBox Then j = ""
  Next
les textbox concernés ne sont pas remplis par le choix dans la combobox
pas plus qu'avec
Code:
Dim ctrl As Control
     If TypeName(ctrl) = "TextBox" Then
        ' ...
          ctrl = "TBnom" ' au lieu TextBox1
          ctrl = "TBnom2" ' au lieu TextBox2
          ctrl = "TBprénom" ' au lieu TextBox3
         '...
     End If

Pascal
 

Paf

XLDnaute Barbatruc
Re : modifier code pour textbox nommés

Re et bonjour laetitia90,


Je ne saisie pas bien le but du code suivant :

ctrl="TBnom" ' au lieu TextBox1
ctrl="TBPrénom" ' au lieu TextBox2

au départ (si j'ai bien compris) il s'agissait d'adapter un code, qui 'vidait' des textbox "nommées", à des textbox au nom 'libre'.

Le code proposé fonctionne .... presque puisqu'il faut écrire : ctrl.Value = "" au lieu de ctrl=""

Ce code 'vide' toutes les textbox quel que soit leur nom , pas besoin de repréciser le nom.

Si l'on ne veut pas 'vider' l'ensemble des textbox, on peut 'filtrer' sur leur nom, par ex. :

Code:
For Each ctrl In Me.Controls
    If TypeName(ctrl) = "TextBox" Then
        If ctrl.Name Like "TB*" Then ctrl.Value = ""
    End If
Next


ou, comme le précise laetitia90, sur leur propriété Tag .

A+
 

Paf

XLDnaute Barbatruc
Re : modifier code pour textbox nommés

Re,

pas rafraîchi, loupé le post# 5

le mieux, a priori, c'est d'utiliser la propriété Tag, mais le plus mieux c'est de joindre des précision sur ce que vous voulez faire et un classeur avec l'USF contenant vos Textbox 'nommées' . Pas facile de se référer à un classeur d'une autre discussion ne possédant pas les objets, objets du soucis.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 614
Messages
2 090 242
Membres
104 464
dernier inscrit
alzerco