Bonjour tout le monde,

J'aimerais savoir savoir si c'est possible de mettre à jour le contenu d'une zone de texte.

Je m'explique:
J'ai un userform où l'utilisateur choisit les données à insérer dans une zone de texte sur sa feuille A d'Excel.
Ces données sont choisies à partir de combobox "thématiques".

Il sélectionne d'abord un équipement dans une combobox, puis il sélectionne les paramètres correspondants à cet équipement
qu'il désire écrire dans une textbox.

A chaque fois qu'il ajoute un paramètre, celui-ci s'affiche sur une listbox, qui sert en quelque sorte d'aperçu de la future zone de texte à insérer sur sa feuille de calcul.


voici un bout de code:

'ça c'est l'action qui est exécutée quand j'appuie sur mon bouton InsertTxtBox pour insérer la zone de texte sur ma feuille
'puis il efface les données dans la listbox pour recommencer l'insertion d'une nouvelle zone de texte.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub InsertTxtBox_Click()

    Dim nb_elements, i   As Integer
    Dim s As String

    nb_elements = Me.ListBox.ListCount

'Ecriture des valeurs des paramètres sélectionnés dans les combobox    For i = 0 To nb_elements - 1
      If i = 0 Then
        s = ListBox.List(0)
        Else
        s = s & Chr(10) & ListBox.List(i)  'pour les écrire une ligne arpès l'autre      End If
    Next i
   
   'là j'insère ma textbox   Worksheets("PFD").Shapes.AddTextbox(msoTextOrientationHorizontal, 115.5, 257.25, _
        89.25, 57#).Select

   'j'y insère le texte de ma listbox    Selection.Text = s
    Selection.autosize = True
    With Selection.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        
    End With
    
    Selection.ShapeRange.Fill.Visible = msoFalse
    Selection.ShapeRange.Line.Visible = msoFalse
    
    'pour effacer le contenu de ma listbox    Call deleteListboxAll

End Sub
Comme ces données sont prises sur une autre feuille B du classeur, et donc sujettes à modification si on change des données de cette feuille B,
comment faire pour que quand on change certaines données de cette feuille B, les données écrites dans la zone de texte insérée dans la feuille A soient automatiquement changées si elles ont été modifiées dans la feuille B ?

Est-ce qu'il y aurait un moyen d'introduire une sorte de marqueur pour savoir quels paramètres j'ai insérés dans chaque zone de texte,
et par conséquent pouvoir mettre à jour leur valeur chaque fois qu'elle est modifiée dans la feuille B ?

Merci beaucoup d'avance

Si je n'ai pas été claire, n'hésitez pas à me demander plus de détails!

Pour le code, utiliser le bouton #Tu sélectionnes ton code, un clic sur le bouton et c'est bon
Ajouté par ousk'