Avis : Transpo formule de cellule en code pour userform

Résolu/Fermé
Landry85 Messages postés 94 Date d'inscription mardi 5 novembre 2013 Statut Membre Dernière intervention 16 octobre 2017 - 10 sept. 2017 à 14:40
 willy - 17 sept. 2017 à 02:45
Bonjour à tous,

J'ai fais tout un projet (énormément grâce à ce forum et donc à vous tous :-) ) sur une feuille excel, avec de nombreuse formules.
J'ai finalement décidé de passer par un userform pour l'utilisation, et j'aurai besoin de vos lumières...

Est ce que je peux adapter une formule comme celle-ci à un label dans mon userform?

=SI(ESTERREUR(H1&RECHERCHEV(N1;INDIRECT("Signatures"&C1&"!A2:Z900");6;FAUX)&RECHERCHEV(N1;INDIRECT("Signatures"&C1&"!A2:Z900");7;FAUX));"";(H1&RECHERCHEV(N1;INDIRECT("Signatures"&C1&"!A2:Z900");6;FAUX)&RECHERCHEV(N1;INDIRECT("Signatures"&C1&"!A2:Z900");7;FAUX)))


Si oui comment? :-)

Pensez vous qu'il y ai une utilité à faire cette transposition? rapidité d'affichage?

Ou est ce que je me contente d'indiqué dans le code de l'userform, que la valeur du label.caption est égale à la valeur de ma cellule? Qu'en pensez vous?

J'ai d’ailleurs à ce sujet utilisé le code :

Private Sub Label2_Click()
UserForm2.Label2.Caption = Sheets("KiKiFé").Range("H1").Value
End Sub


Ce qui pose souci, c'est que lorsque la valeur de H1 change, il faut cliquer sur le label2 pour que cette valeur change. Comment automatiser l'affaire? :-)

Merci pour vos avis et vos réponses.

Landry

1 réponse

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
10 sept. 2017 à 14:54
Bonjour,

Est ce que je peux adapter une formule comme celle-ci à un label dans mon userform?
Tu as evaluate().
La valider en enregistreur de macro pour avoir sa forme anglaise.
A mon avis ça ne vaut pas le coup si tu l'as déjà sur ta feuille.

Ce qui pose souci, c'est que lorsque la valeur de H1 change, il faut cliquer sur le label2 pour que cette valeur change. Comment automatiser l'affaire?
Utiliser l'événement Change (sur les cellules à l'origine de la modification de H1, c'est à dire elle-même si saisie directe, sinon dépend des antécédents de la formule).
eric
0
Landry85 Messages postés 94 Date d'inscription mardi 5 novembre 2013 Statut Membre Dernière intervention 16 octobre 2017 2
10 sept. 2017 à 21:03
Merci pour ton avis eriiic, je vais le suivre par contre je n'ai pas tout compris pour la suite, je reste novice... Est ce que la modification :

Private Sub Label2_Change()
UserForm2.Label2.Caption = Sheets("KiKiFé").Range("H1").Value
End Sub


est censée suffire car ça ne fonctionne pas chez moi?
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
Modifié le 10 sept. 2017 à 22:09
Non, l'événement Change de la feuille.

Va sur le module de la feuille.
Dans les listes en haut, à gauche tu choisis Worksheet, à droite (tous les événement de l'objet feuille) tu choisis Change pour obtenir :
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Il t'est passé Target en paramètre qui est le Range (cellule ou plage) ayant changé (par une saisie, pas une formule !)
Tu peux le tester pour agir en conséquence :
If Not Intersect(Target, [H1]) Is Nothing Then
' H1 a changé, modifier caption
' ...
End If

Si H1 est une formule, par exemple =B1&C1&E1 et que toutes sont des saisiesalors :
If Not Intersect(Target, Union([B1:C1], [E1])) Is Nothing Then
    ' H1 a changé, modifier caption
    ' ...
End If

eric
0
Landry85 Messages postés 94 Date d'inscription mardi 5 novembre 2013 Statut Membre Dernière intervention 16 octobre 2017 2 > eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024
10 sept. 2017 à 23:50
Je n'y arrive définitivement pas, 1h30 que je fouine pour trouver la solution par rapport à ton explication mais je ne trouve pas...
Je mets un fichier de principe, si tu peux m'aider parce que la je vais finir chauve...
J'ai essayé la copie de cellule, puis pour finir la fonction Evaluate() ( je ne vois pas comment valider une formule en enregistreur macro d'ailleur)

Enfin bon si tu as la patience de regarder. Merci :-)

https://mon-partage.fr/f/U1aAJ2dP/
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
Modifié le 11 sept. 2017 à 06:41
Bonjour,

je n'ouvre pas ton fichier, j'ai dans l'idée que tu as pu laisser des choses dans Workbook_Open() et comme au vu de ton précédent fil tu veux jouer les apprentis sorcier je n'ai pas trop confiance...
Un exemple : https://www.cjoint.com/c/GIleOUjzJwy
eric
0
willy > Landry85 Messages postés 94 Date d'inscription mardi 5 novembre 2013 Statut Membre Dernière intervention 16 octobre 2017
11 sept. 2017 à 08:28
 
Bonjour Landry85,

Ton fichier Excel modifié : https://mon-partage.fr/f/nyvpdOwU/

Tu pourras voir que ça marche sur la feuille Recherche ;
et aussi sur UserForm1 (totalement indépendant).

Si besoin, tu peux me demander une adaptation.
Merci de me donner ton avis.

Cordialement
 
0