Effacer contenu textbox actif+positionner bouton

cathodique

XLDnaute Barbatruc
Bonjour:),

Je voudrais faire un formulaire de correction. L’idée est d’effacer le contenu de la textbox qui a le focus via un bouton.

Est-il possible que ce bouton se mette à droite et au même niveau que la textbox active (ayant le focus).

J’espère avoir bien exposé le problème.

En vous remerciant par avance.
 

Pièces jointes

  • Effacer textbox actif.xlsm
    17.1 KB · Affichages: 39

Roland_M

XLDnaute Barbatruc
re

Salut à toi pierrejean !

c'est exactement ce que j'allais faire car effectivement je suis resté sur le "placé" et j'en ai oublié l'effacement !

EDIT: je vais quand même le mettre !
 

Pièces jointes

  • Effacer textbox actif_Rol2.xlsm
    19.3 KB · Affichages: 46
Dernière édition:

cathodique

XLDnaute Barbatruc
Roland_M:), Pierrejean:), Lone-wolf:), bonjour

C'est impeccable, ça fonctionne comme je voulais.

@Roland_M : En fait, pour le moment je ne sais pas quel sera le nombre de lignes à traiter.
Une fonction c'est déjà dur pour moi. Pour arriver au module de classe, ce n'est pas de ma "classe":D;).
Pas encore le niveau;), pour ça.

Merci à vous, Très gentil de votre part.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Une variante

Code:
Dim Txt(1 To 12) As New ClasseSaisie
Private Sub UserForm_Initialize()
  For b = 1 To 12: Set Txt(b).GrSaisie = Me("textbox" & b): Next b
End Sub

Private Sub B_efface_Click()
  temp = Me.B_efface.Tag
  Me(temp) = ""
  Me(temp).SetFocus
End Sub

Module de classe

Public WithEvents GrSaisie As MSForms.TextBox
Private Sub GrSaisie_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  temp = GrSaisie.Name
  UserForm1.B_efface.Top = UserForm1(temp).Top
  UserForm1.B_efface.Tag = temp
End Sub

JB
 

Pièces jointes

  • FormPositionBouton.xls
    58.5 KB · Affichages: 36

cathodique

XLDnaute Barbatruc
Houlala!:cool: la classe, je suis vraiment très content de vos retours.

Vraiment, là vous me gâtez. Merci infiniment.
Serai-je capable de tout assimilé? Très gentil de votre part.

Merci à vous tous. J’apprécie beaucoup.
Comme je suis un lève tôt, je les réserve pour demain matin.

Pour ce soir, et avant d'aller au lit, j'ai un petit souci pour lequel je me résous à ouvrir une discussion.

Je reviendrai demain aux nouvelles.

Bonne soirée;)
 

cathodique

XLDnaute Barbatruc
Bonsoir,

Une variante

Code:
Dim Txt(1 To 12) As New ClasseSaisie
Private Sub UserForm_Initialize()
  For b = 1 To 12: Set Txt(b).GrSaisie = Me("textbox" & b): Next b
End Sub

Private Sub B_efface_Click()
  temp = Me.B_efface.Tag
  Me(temp) = ""
  Me(temp).SetFocus
End Sub

Module de classe

Public WithEvents GrSaisie As MSForms.TextBox
Private Sub GrSaisie_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  temp = GrSaisie.Name
  UserForm1.B_efface.Top = UserForm1(temp).Top
  UserForm1.B_efface.Tag = temp
End Sub

JB
Bonjour Boisgontier:),

ça ne pouvait être que parfait vu ton haut niveau.

Merci beaucoup.

Bonne journée:)
 

Si...

XLDnaute Barbatruc
Bon_jour

Content de trouver d'autres utilisateurs de la variable Tag.

Avec le fichier de Laetitia :D, il serait prudent de rajouter CB_Vider.Tag = "TextBox1" dans la macro UserForm_Initialize (pour éviter une erreur à l'effacement du premier).

Pour le fun, avec ma manie de simplifier les problèmes, j'avais aussi un exemple sans bouton : effacer le texte par double clic.
 

Pièces jointes

  • TextBox en Classe.xlsm
    20.2 KB · Affichages: 63

ChTi160

XLDnaute Barbatruc
Bonjour cathodique
Le Fil , le Forum
Pour illustrer l'utilisation de la Propriété "Tag" si chère à Si... et que j'utilise aussi souvent que possible Lol
voilà ce que j'ai modifié dans les procédures de Si...
pour permettre l'erreur de sélection et revenir en arrière Lol
VB:
Public WithEvents Tx As MSForms.TextBox
Private Sub Tx_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Tx = IIf(Tx = "", Tx.Tag, "")
End Sub
Dim Tx(8) As New Tx, i As Byte, x
VB:
Private Sub UserForm_Initialize()
For i = 1 To 8
  x = Feuil1.Cells(i, 1)
   Set Tx(i).Tx = Me("TextBox" & i)
   With Me("TextBox" & i)
      .Value = x
      .Tag = x
   End With
Next i
End Sub
Merci a vous
Bonne fin de Journée
Amicalement
jean marie
 

Discussions similaires

Statistiques des forums

Discussions
314 116
Messages
2 106 011
Membres
109 483
dernier inscrit
jbscal