Contenu d'une cellule dans un TextBox

  • Initiateur de la discussion Wesh
  • Date de début
W

Wesh

Guest
Bonjour!

J'ai un UserForm (avec une TextBox) ouvert par une macro. Je voudrais que, lorsque je clique sur une cellule de la feuille active, le contenu de celle-ci aille directement dans la TextBox. Comment puis-je faire?
Merci pour votre aide.
 
W

Wesh

Guest
Merci Léa mais en fait c'est pas tout à fait ce que je cherche!

Je t'explique:
En fait je voudrais que le contenu de la textbox change avec la cellule sur laquelle je clique!
Si tu peux m'aider.... merci
 
L

lea

Guest
c'est ce que je te propose avec ce bout de code, si ce n'est que bien sur il faut sélectionner la cellule sur laquelle tu cliques
1) en cliquant sur la cellule je la sélectionne
2) je lis son contenu
3) je transfère ce contenu dans un TextBox
est ce bien ce que tu désires réaliser ?
Léa
 
W

Wesh

Guest
Non pas vraiment...mais merci quand même!
Voici plus précisément mon problème:
1- j'ai une textbox dans un userform ouvert
2- en dessous du userform il y a une feuille active
3- quand je clique sur la cellule A1 de cette feuille, je voudrais que le contenu aille dans la textbox
4-puis si je clique maintenant sur B7, le contenu de B7 aille dans la textbox remplcer le précédent contenu
5- ensuite, si je clique sur C12....

Bref, le contenu varie avec l'endroit où je clique!!!
Si tu as une idée....
 
M

Michel_M

Guest
bonsoir wesh et léa

si ta zone d'application dans feuil1(où je clique et c'est indiqué dans le textbox) est par exemple B2:E6 ou autre
essaies avec l'éditeur VBE (feuil1) cette macro événementielle:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("B2:E6")) Is Nothing Then: End
TextBox1 = Target
End Sub

A+
Michel
 
L

lea

Guest
Il me semble que c'est ce que je t'ai proposé
sélection de la cellule
cellule=ActiveSheet.RangeSelection.Adress
lire le contenu
contenu = ActiveSheet.Range(cellule)
transférer le contenu dans le textbox
Textbox.Value=contenu
à toi de voir si ton textbox est hors de la feuille active, à le sélectionner avant de de le remplir

Léa
 
O

omicron

Guest
Bonsoir Wesh et Lea,

Si j'ai bien compris le problème, l'exemple envoyé en pièce jointe devrait répondre au problème posé.

En résumé, quand on ouvre le classeur la fenêtre est affichée (Attention penser à l'ouvrir en non modal !). Codage de l'évènement WorkBook_Open.

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Ensuite on capte les changements de selection des cellules dans la feuille active et on transfère le contenu de la cellule sélectionnée dans la TextBox. Codage de l'évènement Worksheet_SelectionChange.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.TextBox1 = Target
End Sub

Bon courage pour la suite.

Cordialement.

Omicron.
 

Pièces jointes

  • SelectionShow.zip
    8 KB · Affichages: 56
W

Wesh

Guest
ça ne marche toujours pas!
En tapant ton code, j'obtiens le résultat suivant:
lorsque je clique en dehors de la zone B2:E6, le UserForm se ferme!
Mais toujours rien qui apparaît dans la textbox lorsque je clique dans la zone B2:E6...
 
M

Michel_M

Guest
re

combine ce que j'ai écris avec le post d'omicron (bonjour)

la différence est que je limite l'action à B2:E6 et que j'ai considéré que texbox etait une propriété de userform

donc d'après omicron:

Private Sub Workbook_Open()
UserForm1.Show
End Sub

si action sur toute la feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.TextBox1 = Target
End Sub

si action dans B2:E6 seulement

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("B2:E6")) Is Nothing Then: End
UserForm1.TextBox1 = Target
End Sub
 
@

@+Thierry

Guest
Bonsoir tout le monde, Omicron, Michel, Wesh, Léa (y a du monde)

J'avais commencé un truc puis mon PC a crashé bien bien alors du coup j'arrive après la bataille !! lol... bon enfin moi je m'y prends tout à fait autrement...

Voici une démo qui fera la même chose que celle d'Omicro mais sur tout le classeur... avec (comme d'hab) des trucs en plus (lol)...

Pour Michel Attention à ta méthode :
If Intersect(Target, Range("B2:E6")) Is Nothing Then: End

...qui est très peu conventionnelle en programmation, car End te dégage toutes les Variables publiques... Ce qui, selon l'application, peut être vraiment très dangereux.... Je conseille la méthode traditionnelle
If Intersect(Target, Range("B2:E6")) Is Nothing Then Exit Sub

ou (au choix)
If Not Intersect(Target, Range("B2:E6")) Is Nothing Then

Par ailleurs les deux poins ne sont pas nécessaires dans une ligne If... then Action (au contraire en fait il ne les faut pas !)

Bonne soirée
@+Thierry
 

Pièces jointes

  • USF_ActiveSheet_ActiveCell.zip
    14.4 KB · Affichages: 69

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal