Positionnement TEXTBOX dans feuille Excel

GRZ00 -  
thev Messages postés 2006 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.
Configuration: Windows XP Internet Explorer 7.0

1 réponse

  1. thev Messages postés 2006 Date d'inscription   Statut Membre Dernière intervention   721
     
    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