Actualisation du formulaire lors de changement de cellule active
Résolu
Julien
-
Julien -
Julien -
Bonjour,
Je me permet de vous posez une question qui va peut être vous paraitre simple mais je ne suis sur VBA que depuis quelques jours. Donc je vous remercie d'avance de votre compréhension...
Mon problème :
J'ai constitué un formulaire me permettant de rentrer des notes.
Lorsque j'ouvre mon formulaire en mode non-modal; j'aimerai que celui ci s'actualise à chaque fois que je sélectionne une nouvelle cellule dans mon classeur Excel.
En effet, certains "textbox" de ce formulaire sont renseignés en fonction de la cellule active. Lorsque je la change j'aimerai que ce formulaire s’actualise automatiquement.
Pensez vous que cela est possible? Si oui, pourriez vous me donner un coup de pouce?
Je pensais utiliser quelque chose du genre :
Pour l'instant j'ai trouvé ce système :
J'aimerai éviter de recliquer sur le formulaire pour actualiser a chaque fois...
Je vous remercie d'avance pour votre aide.
PS: Bien qu'ayant fait le tour de pas mal de forum, n'hésitez pas à me reconduire vers certaines pages qui pourraient m'aider.
Je me permet de vous posez une question qui va peut être vous paraitre simple mais je ne suis sur VBA que depuis quelques jours. Donc je vous remercie d'avance de votre compréhension...
Mon problème :
J'ai constitué un formulaire me permettant de rentrer des notes.
Lorsque j'ouvre mon formulaire en mode non-modal; j'aimerai que celui ci s'actualise à chaque fois que je sélectionne une nouvelle cellule dans mon classeur Excel.
En effet, certains "textbox" de ce formulaire sont renseignés en fonction de la cellule active. Lorsque je la change j'aimerai que ce formulaire s’actualise automatiquement.
Pensez vous que cela est possible? Si oui, pourriez vous me donner un coup de pouce?
Je pensais utiliser quelque chose du genre :
UserForm_KeyDown UserForm_KeyUp
Pour l'instant j'ai trouvé ce système :
Private Sub UserForm_Click() Call CommandButton5_Click 'On vide les textbox non renseignés Call UserForm_Initialize 'On re initialise le formulaire End Sub
J'aimerai éviter de recliquer sur le formulaire pour actualiser a chaque fois...
Je vous remercie d'avance pour votre aide.
PS: Bien qu'ayant fait le tour de pas mal de forum, n'hésitez pas à me reconduire vers certaines pages qui pourraient m'aider.
A voir également:
- Actualisation du formulaire lors de changement de cellule active
- Whatsapp formulaire opposition - Guide
- Changer de dns - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Excel cellule couleur si condition texte - Guide
3 réponses
Bonjour,
Il y a 2 facons de proceder avec l'UserForm en la survolant:
Avec la feuille, mettre ce code dans la feuille de données:
pour la 2 ème solution il ne faut pas qu'il y est beaucoup de TextBox!
Il y a 2 facons de proceder avec l'UserForm en la survolant:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) TextBox1 = Range("A2").Value End Sub
Avec la feuille, mettre ce code dans la feuille de données:
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A2")) Is Nothing Then UserForm1.TextBox1 = Range("A2").Value End If End Sub
pour la 2 ème solution il ne faut pas qu'il y est beaucoup de TextBox!
Bonjour,
Si l'userform est affichée en mode non modal (UserForm1.Show vbModeless), il est toujours possible de modifier le contenu d'une textbox par macro.
Par exemple dans le code associé à une feuille on peut mettre la macro suivante :
Ainsi chaque fois que la cellule sélectionnée dans cette feuille change la TextBox1 prends la valeur de cette nouvelle cellule.
Si l'userform est affichée en mode non modal (UserForm1.Show vbModeless), il est toujours possible de modifier le contenu d'une textbox par macro.
Par exemple dans le code associé à une feuille on peut mettre la macro suivante :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) UserForm1.TextBox1 = ActiveCell.Value End Sub
Ainsi chaque fois que la cellule sélectionnée dans cette feuille change la TextBox1 prends la valeur de cette nouvelle cellule.
Bonjour,
effectivement ce n'était pas très compliqué.
Il fallait comme vous l'avez dis inscrire un code sur notre feuille et non sur notre formulaire.
J'ai repris votre idée.
Nouveau code :
Comme vous le remarqué je fais appel à une fonction du formulaire. Cela me permet d’actualiser l'intégralité de mes textbox.
LE problème est donc résolu.
Encore merci pour votre aide précieuse!
A+
effectivement ce n'était pas très compliqué.
Il fallait comme vous l'avez dis inscrire un code sur notre feuille et non sur notre formulaire.
J'ai repris votre idée.
Nouveau code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlColorIndexNone ActiveCell.Interior.ColorIndex = 23 ActiveCell.Offset(0, 1).Interior.ColorIndex = 23 If ActiveCell.Value <> "" Then CallByName Notation, "CommandButton5_Click", VbMethod CallByName Notation, "UserForm_Initialize", VbMethod Else End If End sub
Comme vous le remarqué je fais appel à une fonction du formulaire. Cela me permet d’actualiser l'intégralité de mes textbox.
LE problème est donc résolu.
Encore merci pour votre aide précieuse!
A+