Actualisation du formulaire lors de changement de cellule active [Résolu/Fermé]

Signaler
-
 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 :
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.

3 réponses

Messages postés
7410
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 juin 2021
637
Bonjour,

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!


1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
613
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 :
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.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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 :
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+