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.
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,
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
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'
Partager