revoie de données dans un text box

S

sam

Guest
salut à tous, espère que vous avez passé un bon we,
petit problème pour petite application :

j'ai une plage de cellules qui se remplie automatiquement grace à une macro, je voudrais que le contenu de ces cellules apparaisse dans différents textbox appartenant à un userform (le but est de pouvoir observer les données) comment faire pour que les données contenue dans les cellules apparaisse dans le text box.
 
@

@+Thierry

Guest
Bonjour Sam,

Je vois que tu es toujours en plein dans tes Userforms... C'est passionnant hein ?

Tout dépend de ce que tu veux retourner dans tes textbox...

Disons qu'en utilisant l'évènement "click d'un Commandbouton (ou un click dans une listbox etc) on peut retourner facilement une valeur comme ceci :

Private Sub CommandButton1_Click()
TextBox1 = Sheets(1).Range("a1").Value
End Sub

Mais j'imagine que ton but n'est pas de reporter la valeur de la cellule "A1" mais plutôt la valeur de la derniere ligne saisie (ou remplie automatiquement par macro) donc dans ce cas là je ferais comme ceci :

Option Explicit
Private Sub CommandButton1_Click()
Dim Ligne As Integer
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
TextBox1 = Sheets(1).Range("a" & Ligne).Value
End Sub

Mais en fait je bloquerais aussi la saisie dans cette textbox comme ceci :
Option Explicit
Private Sub CommandButton1_Click()
Dim Ligne As Integer
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
TextBox1 = Sheets(1).Range("a" & Ligne).Value
TextBox1.Enabled = False
End Sub

Ou encore je n'utiliserais pas de Textbox mais plus des labels comme ceci
Option Explicit
Private Sub CommandButton1_Click()
Dim Ligne As Integer
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
Label1 = Sheets(1).Range("a" & Ligne).Value
End Sub


En fait je ne spécifie pas de propriété pour TextBox ou Label car par défaut la propriété pour une TextBox est Value, et pour un Label c'est Caption

Donc pas la peine d'écrire :
TextBox1.value = Sheets(1).Range("a" & Ligne).Value
Label1.caption = Sheets(1).Range("a" & Ligne).Value

Dans le même d'ordre d'idée, sur la propriété par défaut on pourrait écrire (et qui marche dans cet exemple):
TextBox1 = Sheets(1).Range("a" & Ligne)
Label1 = Sheets(1).Range("a" & Ligne)
Mais Range, peut réserver des surprises, donc je préfére déclarer la propriété value...


Voilà Sam, un peu plus à fond dans les Userforms ...

Bon travail
@+Thierry
 

Discussions similaires