|
Bas de page | |
---|---|
Auteur | Sujet : [VBA Excel] Fonction rebelle (maj de cellule) |
Publicité | Posté le 06-05-2005 à 20:37:44 |
AlainTech Pas trouvé? Cherche encore! | Attention dans tes Dim.
Message édité par AlainTech le 06-05-2005 à 21:23:33 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Merci pour ta réponse Alain, mais le pb c'est qu'il ne s'agit pas d'une cellule positionnée en ligne 1 ; autrement dit je ne suis pas censé savoir de quelle ligne il s'agit, cette fonction peut être exécutée par différentes cellule. |
AlainTech Pas trouvé? Cherche encore! | Je l'avais bien compris...
Message édité par AlainTech le 06-05-2005 à 21:29:36 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Merci encore Alain... Nos messages respectifs se sont croisés. Pour ce qui est de la déclaration des variables dim, je vais en tenir compte, mais le pb reste entier. |
oaglas | Rebelote, je vais essayé de suite. |
oaglas | Non, effectivement le pb demeure. Le résultat est toujours #VALEUR |
AlainTech Pas trouvé? Cherche encore! | Mets un msgbox(datedeb) juste avant ta ligne à problème. --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Je l'ai déjà fait et le contenu est celui attendu, c'est à dire la date la plus en aval des lignes flaguées à VRAI. |
Publicité | Posté le 06-05-2005 à 21:48:59 |
AlainTech Pas trouvé? Cherche encore! | Juste un truc.
Message édité par AlainTech le 06-05-2005 à 21:55:14 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | =IFEXIST(72,80,90) saisi dans ma cellule par exemple affiche dans cette même cellule après exécution : #VALEUR |
AlainTech Pas trouvé? Cherche encore! | Oula, je comprends mieux ce que tu fais.
Message édité par AlainTech le 06-05-2005 à 22:11:12 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
AlainTech Pas trouvé? Cherche encore! | Je dois me casser, maintenant.
--------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | La fonction renvoie une valeur qui se trouve être une concaténation de n° de ligne (que je gère moi) séparés par des points virgules, la présence dans chaque n° de ligne étant conditionnée par un test sur une cellule de la ligne désignée (Flagée VRAI ou FAUX), in fine le résultat du calcul (cette liste) est affichée comme il se doit dans la cellule comme le ferait n'importe qu'elle autre fonction d'excel. Mais pour le reste, il me faut modifier dans la foulée une autre cellule qui découle en partie de ce traitement en tout cas, qui en est tributaire, de toutes les lignes inspectées l'une doit fournir une date, la date plus en aval de toutes ligne, pour ça je n'ai pas de problème à la déterminer, mais ensuite, il s'agit de coller cette date dans une cellule qui elle se trouve sur la même ligne que la cellule qui "exécute" la fonction en question et c'est là que le gourbi se prend les pieds dans le tapis. |
AlainTech Pas trouvé? Cherche encore! | J'étais à peine parti que je me rendais compte de ma connerie...
--------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Merci Alain mais, j'ai décidé de contourner le pb autrement, par contre, j'ai un autre petit soucis avec un filtre automatique qui me laisse un peu perplexe ; j'ai enregistré une macro pour récupérer le code relatif à l'application d'un filtre automatique qui fonctionne très bien manuellement, mais lorsque j'exécute le code généré, j'ai la désagréable suprise de constater qu'en dehors des titres de colonnes (la ligne 1), aucune ligne n'est retenue, et ce, alors le critère de filtre (visible sur clic sur la flèche située sur la colonne) est bien le bon (VRAI dans le cas présent). Tu n'aurais pas une idée sur le sujet des fois ? Ci-après le bout de code :
|
AlainTech Pas trouvé? Cherche encore! | C'est tout con et typiquement Microsoft.
--------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | C'est terrible quand même de se prendre les pieds dans le tapis pour si peu. Merci à toi Alain, tu ne sais pas à quel point c'est providentiel... sauf qu'entre temps je me suis trouvé confronté à 1 nouveau casse-tête sur lequel je m'arrache les cheveux depuis 3 bonnes heures . J'ai en partie recyclé ma fonction de concaténation, sauf que je l'ai adapté grossièrement pour qu'elle me renvoit cette fois-ci des références de cellules, ce qu'elle fait à peu très (...); REF() donc renvoit une suite d'adresse de type B25;B28;B29;B30... mais lorsque je tente d'exploiter le résultat avec une fonction standard alors là ça capote net. En gros ça donne quelque chose du genre :
|
AlainTech Pas trouvé? Cherche encore! | Euh, pourquoi utilises-tu REF()?
Message édité par AlainTech le 10-05-2005 à 09:21:15 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Non, en fait l'exemple n'est pas parlant, mais bon, laisse tomber, j'ai trouvé le moyen de faire ce que je voulais, mais dis-moi (sans vouloir abuser de ton temps) sais-tu comment je peux intercepter une modification sur une plage de cellules ? Non parce que j'ai créé un certain nombre de fonctions qui dépendent de la valeur de cellules connexes et les éventuelles modifications de celles-ci ne sont pas suivies d'une actualisation des cellules contenant les fonctions s'y rapportant. |
AlainTech Pas trouvé? Cherche encore! | Pour intercepter les changements:
Message édité par AlainTech le 10-05-2005 à 13:25:10 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Merci mais ça ne change rien ; en fait, j'ai 2 feuilles dans mon classeur, sur la 1ère, il y a des cases à cocher de type formulaire associées à des cellules qui répercutent leur état VRAI ou FAUX si cochées ou non. Dans la 2nde feuille, il y a d'autres cellules qui pointent sur ces cellules (de la 1ère feuille) et en fait les fonctions perso devraient pouvoir être recalculées à chaque modification de la valeur d'une de ces cellules. Et en plaçant le code que tu m'as filé dans l'espace Worksheet, ou general, que ce soit lorsque je clique sur une case à cocher de la 1ère feuille ou encore lorsque je modifie la valeur VRAI <-> FAUX dans la 2nde, rien ne se passe... |
AlainTech Pas trouvé? Cherche encore! | Le code que je te donne n'est que "l'enveloppe".
|
oaglas | Ok Alain, je vais mettre en application, merci encore. Une petite question subsidiaire tout de même : tu ne saurais pas comment je pourrais copier via VBA un userform attaché à mon classeur courant dans un autre classeur ? |
AlainTech Pas trouvé? Cherche encore! | Oups, copier un formulaire par VBA.
--------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Oui ça vaut la peine (enfin je pense) ; en fait j'ai un classeur paramétrable qui propose une liste d'options (cases à cocher sur un la 1ère feuille), celles-ci se rapportent à un arbre de tâches (sur la 2nde feuille) ; en clair l'utilisateur sélectionne ou non des macros tâches et à la validation, l'arbre s'y rapportant est créé dans nouveau classeur à partir de l'arbre générique ; chaque nouveau classeur ainsi constitué correspond un nouveau projet qui va vivre sa vie indépendamment du classeur dont il est issu ; cela veut dire qu'il est ensuite susceptible d'être modifié, quant à la charge impartie à chaque tâche notamment, sachant que la charge de certaines tâches détermine celle d'autres tâches (prorata), c'est pourquoi j'ai besoin d'importer certaines formules qui doivent rester actives dans le classeur généré (et gérer les références en fonction !...), le gourbi inclût une fonctionnalité d'aide au chiffrage (la userform en question), elle doit figurer dans le document généré. Je me rends bien compte que cela peut paraître nébuleux, mais je ne vois pas comment procéder autrement, je ne peux pas enregistrer mon classeur initial sous un autre nom parce que les lignes exclues de la sélection demeurent (même masquées) et cela compromettrait ensuite l'importation du gourbi dans Ms Project (heu oui, il y a aussi Project, mais j'en fait mon affaire). Voilà je crois que cela peut te donner une idée assez précise du problème posé. Qu'en penses-tu ? Message édité par oaglas le 12-05-2005 à 11:11:39 |
AlainTech Pas trouvé? Cherche encore! | Et créer un classeur "template", préformaté mais sans données... Ca ne peut pas convenir? --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Heu un classeur template sans données ? Et mes lignes où est-ce que je vais les chercher à ce moment là ? Sachant que les formules sont attachées aux lignes... Comment tu vois le truc exactement ? |
AlainTech Pas trouvé? Cherche encore! | Comme je ne connais pas le contenu de ton classeur, je peux difficilement répondre.
Message édité par AlainTech le 12-05-2005 à 14:18:01 --------------- Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs! |
oaglas | Le Template fonctionne, je l'appelle depuis ma macro, puis insère les lignes qui vont bien et termine par un enregistrer sous, mais cela oblige à gérer 2 classeurs pour en générer un autre, car je ne peux en l'état enregistrer le 1er classeur ; je ne vais pas rentrer dans les menus détails mais disons qu'en l'état le classeur d'origine ne peut pas être exporté vers Ms Project. Si toutefois tu avais une idée sur la manière dont je peux via VBA copier ce userform dans un autre classeur en même temps que le reste, je suis preneur. En tout cas merci pour tout.
|
Publicité | Posté le |
Sujets relatifs | |
---|---|
[php] chronometrer une fonction | HELP !! Traduire une Macro de WORD à EXCEL |
Requete en LIKE sous VBA | Lire une feuille excel .xls depuis VB.NET |
Fonction php qui tourne apres coupure net | Access - VBA - Propriétés d'un MSGraph.Chart.8 |
Recuperer la hauteur d'une cellule??? | 2 Questions : fonction Chr() et variable static |
Fonction de connexion à SQL SERVER | Comment sortir d'une fonction avant sa fin "normale" ... [Resolu] |
Plus de sujets relatifs à : [VBA Excel] Fonction rebelle (maj de cellule) |