Positionnement TEXTBOX dans feuille Excel

GRZ00 -  
thev Messages postés 2076 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Etant novice en matière de développement VBA, je vous sollicite pour un peu d'aide.

J'ai une feuille excel (un devis) dans laquelle j'ai besoin d'insérer proprement une zone de texte.
Un bouton "Description" m'ouvre une userform avec une listbox dans laquelle je choisi le texte que je souhaite insérer. Jusque là tout va bien.
Mais une fois mon texte choisit, je voudrais l'insérer dans la feuille à l'endroit précis où j'étais avant de cliquer sur le bouton "Description". Je pensais donc à une Textbox se positionnant aux coordonnées x, y exactes de ma cellule active, de largeur fixe, mais de hauteur variable (en fonction du texte choisit).

Dans la mesure ou la zone de texte peut-être à placer n'importe où dans le devis, je ne peux pas insérer une textbox de manière fixe que je rendrai visible quand j'en ai besoin. Je ne sais pas trop comment m'y prendre.

Merci par avance pour votre aide.
A voir également:

1 réponse

thev Messages postés 2076 Date d'inscription   Statut Membre Dernière intervention   719
 
voici une solution :

1) Insérer ce code dans ta macro associée au bouton "Description" qui te permettra de sélectionner la cellule du texte à remplir après avoir cliqué sur le bouton  



Public celluleàremplir As Range

Sub description()

' initialisation message  ------------------------------------------------
    Set Message = Range("A1")   ' message en cellule A1
    Message.Font.Bold = True
' -----------------------------------------------------------------------------------
' sélection cellule texte à remplir --------------------------------------------------
    Message.Select
    Message.Value = "SÉLECTIONNER LA CELLULE TEXTE A REMPLIR - VOUS AVEZ 30 SECONDES"
    temps_début = Timer
    sel_init = Selection.Address
    Do While Selection.Address = sel_init
        If Timer > temps_début + 30 Then
            MsgBox "temps de sélection écoulé  - arrêt traitement "
            Exit Sub
        End If
        DoEvents
    Loop
    Set celluleàremplir = Selection
' --------------------------------------------------------------------
    
'--------- appel du userform avec listbox
    UserForm1.Show                               'en supposant que le nom de ton Userform est Userform1
'-----------------------------------------

End Sub

2) insérer le code suivant dans le Userform par exemple à l'évènement de fermeture :

Private Sub UserForm_Terminate()
    
    celluleàremplir.Value = ListBox1.Value  'en supposant que le nom de ta Listbox est Listbox1

End Sub
0