Menu

Avis : Transpo formule de cellule en code pour userform [Résolu]

Landry85 94 Messages postés mardi 5 novembre 2013Date d'inscription 16 octobre 2017 Dernière intervention - 10 sept. 2017 à 14:40 - Dernière réponse :  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

Afficher la suite 

Votre réponse

18 réponses

eriiic 21609 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 23 mai 2018 Dernière intervention - 10 sept. 2017 à 14:54
0
Utile
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
Landry85 94 Messages postés mardi 5 novembre 2013Date d'inscription 16 octobre 2017 Dernière intervention > Landry85 94 Messages postés mardi 5 novembre 2013Date d'inscription 16 octobre 2017 Dernière intervention - 17 sept. 2017 à 02:00
Bonsoir Willy,

Je te relance juste pour une précision, je ne trouve pas dans ton code LA ligne qui dirait "si pas de résultats dans la recherche, alors tout les labels = "" (rien)"
Je crois qu'il ne manque que ça :-)

Pour les identifiants, n° de compte et mdp, cela ne fonctionnait pas car pour chaque "marque" de chaque "BDD", il ya des valeurs differentes pour chaque n° de magasins...
Du coup j'ai fais un mix de ton code et de mes formules excel pour arriver au résultat voulu.

Bon WE

Landry
willy > Landry85 94 Messages postés mardi 5 novembre 2013Date d'inscription 16 octobre 2017 Dernière intervention - 17 sept. 2017 à 02:45
 
Bonsoir Landry,

Tu dois compléter la sub RecherchedansBDD_Change() : juste après la ligne
With Worksheets("BDD" & chn).Cells(lig, 1) efface tous les labels que tu ne
veux pas avec des instructions comme celle-ci : Label3.Caption = "" ; ainsi,
ça sera vide avant de faire les affectations nécessaires.

C'est très bien d'avoir fait le 2ème point, mais n'oublie pas que c'est bien plus
facile pour toi qui a le vrai fichier, avec toutes les données réelles ; de plus,
c'est bien sûr toi-même qui connaît le mieux ce que tu veux vraiment.  ;)

Bon WE à toi aussi.
 
eriiic 21609 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 23 mai 2018 Dernière intervention - 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 : http://www.cjoint.com/c/GIleOUjzJwy
eric
Landry85 94 Messages postés mardi 5 novembre 2013Date d'inscription 16 octobre 2017 Dernière intervention > eriiic 21609 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 23 mai 2018 Dernière intervention - 11 sept. 2017 à 10:48
Bonjour Eriiic,

Merci pour ta réponse et ton fichier test qui m'a permis de comprendre que ce n'est pas cette solution qui convient à mon projet. Il n'y a pas réellement de formule dans la cellule mais sa valeur change par le biais d'une ComboBox, du coup ça ne fonctionne pas.

Pour ma tambouille d'apprenti sorcier :-D :-D , rien de très foufou dans ce fichier test, si ce n'est :

Private Sub thisworkbook_Open()
    Me.ComboBox1.Select
    Me.ComboBox1.Activate

End Sub


Mais tu as raison d'être prudent. D'ailleurs puisque tu en parles, je pensais que le workbook_open ne concernait que les classeurs ouverts? n'est ce pas le cas?

Merci encore

Landry
eriiic 21609 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 23 mai 2018 Dernière intervention - 11 sept. 2017 à 11:09
classeurs ouverts? n'est ce pas le cas?
Si, mais à quoi servirait un fichier de travail dont on se contenterait de regarder le nom sans l'ouvrir ?
workbook_open() contient les macros lancées à l'ouverture.
Mettre en commentaires toutes les parties non utiles à la résolution quand tu déposes un fichier de travail.
Si c'est juste sélectionner une feuille ou des bricoles comme ça, ça va. Mais on n'a pas du tout envie d'avoir tout un tas de modifications de notre environnement parfois pénibles à remettre en place.
Je te l'avais dit, moi un fichier dont on m'impose le plein écran (au hasard et entres autres ;-)) c'est direct poubelle et je boycotte le demandeur ad vitam eternam.

mais sa valeur change par le biais d'une ComboBox
Alors pourquoi tu te poses des questions existentielles ? Fait-le ici dans la foulée.
D'où l'intérêt de poser la vraie question et non comment faire ce qu'on a imaginé qu'il fallait faire.

eric

PS : tu as raté la réponse de willy
Commenter la réponse de eriiic