Signaler

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

Posez votre question Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 Dernière intervention - Dernière réponse le 17 sept. 2017 à 02:45 par willy
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

Utile
+0
plus moins
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 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 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
Répondre
willy- 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.
 
Répondre
eriiic 21047Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 22 septembre 2017 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
Répondre
Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 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
Répondre
eriiic 21047Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 22 septembre 2017 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
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !