Textbox créée dans un frame ne répond pas

Résolu
Ein85 Messages postés 32 Statut Membre -  
Ein85 Messages postés 32 Statut Membre -
Bonjour à tous,

J'ai créé une macro qui ajoute un frame dans une feuille Excel et qui ensuite crée une textbox à l'intérieur de ce frame.

Le processus de création fonctionne très bien mais lorsque j'essaie de rentrer du texte dans la textbox, rien ne se passe.

Bizarrement, si je vais dans le mode création et en ressort, la textbox est soudainement accessible. Pourquoi ne l'est-elle pas dès le début?

Voici mon code:

Sub Bouton1_Click()

Dim Frm As Object
Dim TxtB As Control

'Crée un frame
Set Frm = Worksheets(1).OLEObjects.Add(ClassType:="Forms.Frame.1")

'Crée la textbox dans le frame
Set TxtB = Frm.Object.Controls.Add("Forms.TextBox.1")
With TxtB
.Left = 10
.Top = 10
.Width = 100
.Height = 20
End With

End Sub

Merci d'avance!

2 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    Bonjour,

    Je pense que la Frame n'est pas active et donc les contrôles non plus.

    Il faut essayer d'ajouter :

    Frm.Activate

    avant le End Sub

    A tester
    1
    1. Ein85 Messages postés 32 Statut Membre
       
      Bonjour,

      Ça fonctionne maintenant. Merci beaucoup!
      0
  2. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour,

    Essayez de rajouter dans le with txtb :
    .value = "-"

    Comme cela, un texte est déjà affiché à l'intérieur.
    Je ne sais pas si cela résoudra le problème mais peut-être que si ;-)

    Bonne journée
    0
    1. Ein85 Messages postés 32 Statut Membre
       
      Bonjour rEVOLV3r,
      Malheureusement, ça ne marche pas. Le tiret s'affiche correctement mais la textbox est toujours inactive.
      Une autre idée?
      0
    2. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
       
      et ajouter .enabled=true ?
      0
    3. Ein85 Messages postés 32 Statut Membre
       
      Ca ne marche pas non plus.
      0