Macro de sélection de données

Bonjour,

Grâce à l'aide de ce forum, j'ai créé une macro: dans la feuille "Etape 3" plusieurs choix de prénoms sont effectuer par différentes personnes. Lorsque l'on clique sur le bouton choix dans "routine" je voudrais qu'il s'affiche dans le tableau le ou les prénoms qui a été choisi par tout le monde, jusqu'ici tout fonctionne. Cependant lorsqu'une personne ne choisit pas de prénoms j'aimerais que son choix ne soit pas pris en compte, de sorte qu'un prénom soit quand même choisi si toutes les autres personnes se mettent d'accord: cette partie ne fonctionne pas. Pouvez-vous m'indiquer l'erreur dans mon code (macro intitulé essai). Merci beaucoup.

Cordialement,

Cysa

13classeur1.xlsm (19.90 Ko)

Salut,

Tu aurais pu rester sur ton autre fil.

Je vais essayer de contrôler la manière dont tu as adapté mon code à ce troisième fichier différent Ou est-ce que le dernier fichier que je t'ai fourni ne répondait déjà pas à ton attente ?

Cordialement.

EDIT IMMEDIAT :

Très bizarrement certaines de tes cellules ne sont pas vides, mais je n'ai pas d'explication pourquoi Regarde le fichier ci-joint, j'y ai placé une formule au fond de chaque colonne (cellules jaunes).

Si tu sélectionnes toutes les cellules qui devraient être vides de toutes les colonnes "bizarres" et que tu en effaces le contenu, tu remarqueras que mon code - avec tes adaptations - fonctionne parfaitement.

A te relire.

Merci Yvouille de ta réponse. Cependant, les cellules ne peuvent pas être vident car les prénoms sont générés par des formules qui sont entrées dans toutes les cellules. Y aurait-il une modification du code possible de façon à ce qu'on ne prenne pas en test les cellules non vides mais les cellules où aucun prénom n'apparait.

Cordialement,

Cysa

Re,

Essaie le nouveau code ci-joint.

Amicalement.

Juste une question Yvouille, est-ce que ce nouveau code efface complétement les formules à l'intérieur des cellules? Si c'est le cas cela va me poser un problème puisque qu'en cas de différentes conditions au début du programme les prénoms doivent changer et les cases vides ne sont plus forcément vides. Lorsque j'attache ta macro à mon programme il y a encore un bug au niveau de la ligne . If Cellule = "" Then Cellule.ClearContents, j'essaie de rectifier ça par moi même. Encore un grand merci.

Cysa

J'étais parti du principe que les éventuelles formules inscrites dans ces colonnes n'étaient plus utiles et pouvaient être effacées. Mais si ces formules doivent rester en place, il faudra revoir le problème.

Je ne comprends alors pas pourquoi ces formules ne sont pas visibles ? Ensuite je ne comprends pas pourquoi - par exemple pour la première colonne - seules les 4 cellules du fond comportent des données. Si tu as déjà des réponses à ces deux questions, tant mieux.

Ensuite, pourrais-tu m'indiquer comment les formules dans ces cellules sont mises en place ? Par l'intermédiaire d'un code qui n'aurait pas été fourni ?

A te relire.

En fait, j'ai fait un copié collé de mon tableau et j'ai remis dans "routine" un tableau et le bouton "choix" avec le même emplacement que dans l'original. Dans l'original ce n'est pas des prénoms mais des marques de grues, que j'ai changé pour la compréhension de tous. Les formules se trouvent en fait sur toutes les cellules, je te renvoie un exemplaire avec des formules dans les cellules pour que tu comprennes bien (ce n'est pas les memes formules que dans l'original qui sont en fait beaucoup plus compliqué).

Merci beaucoup

9classeur1.xlsm (23.35 Ko)

Je ne comprends pas l'intérêt de passer par cette formule intermédiaire ESTNONTEXTE() sur la feuille "Etape 3". Ce serait aussi intéressant de connaitre les autres entrées que tu peux avoir sur ta "Feuil3" et voir si l'on ne veut pas aller chercher les informations nécessaires à compléter ta feuille "Routine" directement sur la "Feuil3".

A te relire.

La formule dans chaque cellule est en fait =SI(ESTERREUR(PETITE.VALEUR(SI('Etape 1'!$H$2:$H$15>=Routine!$B$15;'Etape 1'!$H$2:$H$15);MOD(LIGNE()-1;100)));"";INDEX('Etape 1'!$G$2:$G$15;EQUIV(PETITE.VALEUR(SI('Etape 1'!$H$2:$H$15>=Routine!$B$15;'Etape 1'!$H$2:$H$15);MOD(LIGNE()-1;100));'Etape 1'!$H$2:$H$15;0))). Je t'ai juste donné une autre formule plus simple pour te reproduire le modèle original. Le programme est en plusieurs étapes et il fonctionne avec des conditions rentrées au début. C'est pour cela qu'on est obligé d'utiliser les cellules ETAPE 3: d'`où le problème dans le code pour la dernière étape, on ne doit pas effacer les formules dans les cellules. Me suis-je mieux exprimer maintenant?

Salut,

Je pense avoir trouvé une solution simple en ajoutant une ligne de formules sur la feuille "Etape 3" (en brun dans le fichier ci-joint). Si cette ligne te gêne, on peut trouver une autre solution (cacher cette ligne, inscrire ces formules par l'intermédiaire du code et les effacer à la fin de la macro, chercher encore la bonne formule à inscrire directement dans la macro, etc., etc.).

La prochaine fois, si tu pouvais fournir tout de suite ton fichier réel .......

A te relire.

19cysa-v3.xlsm (23.12 Ko)

Un grand merci pour tout l'aide apportée mon petit programme fonctionne enfin correctement.

Cordialement

Cysa

Rechercher des sujets similaires à "macro selection donnees"