XL 2021 Bugs dans la propagation de cellules

  • Initiateur de la discussion Initiateur de la discussion MATLEA
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MATLEA

XLDnaute Occasionnel
Bonjour,

Dans le fichier joint je suis bloqué suite à l'apparition de bugs dans la propagation de la formule suivante qui est de type
=SIERREUR(RECHERCHEV(PETITE.VALEUR(SI(ESTTEXTE(CC$25:CC$56);CB$25:CB$56);LIGNE(CD1));CB:CC;2;FAUX);"") visant à randomiser la liste des valeurs.
Je recherche quelqu'un qui pourrait me dire comment régler ce problème soit par correction des bugs soit par utilisation d'une formule alternative.

Merci d'avance et bonne journée.
 

Pièces jointes

Dans essai2.xlsm les noms Pointeurs et Tireurs n'existent pas.
D'où j'en conclu que la ChangerGraine n'a pas été invoquée pour les créer.
Par ailleurs la version de celle ci dans ce classeur n'a pas bénéficié des dernières modifications garantissant des graines différentes lors de son utilisation multiple au cours de la même seconde.
Dans celle du essai1.xlsm non plus les changements de mon poste #25 n'y ont pas été apportés.
 
Dernière édition:
Bonsoir,
On y est presque; je vous joins 2 fichiers pratiquement identiques: dans essai1 la formule avec en 3ème position de la fonction hasard les termes Pointeurs et Tireurs colonnes AI et AN (exemple cellule AN4 =Hasard(LIGNE()-3;$AM$4:$AM$67;Pointeurs) cela fonctionne. dans Essai2 pas le résultat attendu et je ne vois pas pourquoi.
Merci

Dans essai2.xlsm les noms Pointeurs et Tireurs n'existent pas.
D'où j'en conclu que la ChangerGraine n'a pas été invoquée pour les créer.
Par ailleurs la version de celle ci dans ce classeur n'a pas bénéficié des dernières modifications garantissant des graines différentes lors de son utilisation multiple au cours de la même seconde.
Dans celle du essai1.xlsm non plus les changements de mon poste #25 n'y ont pas été apportés.
 
Je ne comprends pas pourquoi la ChangerGraine aurait été invoquée pour essai1 et pas pour essai2. J'ai recopié me semble-t-il dans module 1 le même code pour les 2 essais; dites moi svp comment l'invoquer dans essai2 (comme dans tous les autres fichiers que j'aurais à gérer). J'ai remodifié la ChangerGraine selon vos recommendations, est-ce bien OK?
Par ailleurs vous me disiez précédemment
affectez une macro que vous aurez écrite sous forme de procédure Sub.
Pour invoquer une autre Sub, il lui suffit d'invoquer son nom suivi des arguments obligatoires nécessaires, séparés par des virgules.

Dois-je aller dans module et insertion module? Quel code dois-je entrer?
Merci
 
Je ne comprends pas pourquoi la ChangerGraine aurait été invoquée pour essai1 et pas pour essai2. J'ai recopié me semble-t-il dans module 1 le même code pour les 2 essais; dites moi svp comment l'invoquer dans essai2 (comme dans tous les autres fichiers que j'aurais à gérer). J'ai par ailleurs modifié la ChangerGraine avec votre dernier texte. Est-ce bien correct dans les 2 fichiers?

Vous me disiez aussi précédemment d'affecter une macro que vous aurez écrite sous forme de procédure Sub.
Pour invoquer une autre Sub, il lui suffit d'invoquer son nom suivi des arguments obligatoires nécessaires, séparés par des virgules.

Faut_il aller dans "modules" puis "insertion module" et comment écrire le code avec les bons arguments?

Merci
 

Pièces jointes

Je n'avais pas tout trouvé en tout cas dans essai2. Je ne me souviens pas d'avoir vu un module1 ni votre procédure ChangerLesGraines. En tout cas si elle y était elle n'avais pas dû être exécutée. Oui, ce serait bien qu'elle soit affectée à un objet dessiné (clic droit dessus, commande Affecter une macro). Elle serait à exécuter chaque fois que vous voudriez que soit changé l'ordre aléatoire des noms.
 
Je ne comprends pas pourquoi la ChangerGraine aurait été invoquée pour essai1 et pas pour essai2. J'ai recopié me semble-t-il dans module 1 le même code pour les 2 essais; dites moi svp comment l'invoquer dans essai2 (comme dans tous les autres fichiers que j'aurais à gérer). J'ai par ailleurs modifié la ChangerGraine avec votre dernier texte. Est-ce bien correct dans les 2 fichiers?

Vous me disiez aussi précédemment d'affecter une macro que vous aurez écrite sous forme de procédure Sub.
Pour invoquer une autre Sub, il lui suffit d'invoquer son nom suivi des arguments obligatoires nécessaires, séparés par des virgules.

Faut_il aller dans "modules" puis "insertion module" et comment écrire le code avec les bons arguments?

Merci

Je n'avais pas tout trouvé en tout cas dans essai2. Je ne me souviens pas d'avoir vu un module1 ni votre procédure ChangerLesGraines. En tout cas si elle y était elle n'avais pas dû être exécutée. Oui, ce serait bien qu'elle soit affectée à un objet dessiné (clic droit dessus, commande Affecter une macro). Elle serait à exécuter chaque fois que vous voudriez que soit changé l'ordre aléatoire des noms.
Dans le second fichier essai2 que je vous ai envoyé il y a bien un module 1 avec les bons éléments. Pourtant ca ne marche pas. Que Faut-il faire pour invoquer la ChangerGraine.
Et je ne sais pas comment écrire la macro, faut-il aller dans module, insertion de module ou bien dans affichage, enregistrer une macro et dans l'un et l'autre cas quel code faut-il écrire?
Merci
 
Dans votre dernier essai2.xlsm j'ai bien trouvé le Module1 avec la macro ChangerLesGraines.
Mais elle n'a apparemment jamais été exécutée, de sorte que les noms n'existent pas.
Après exécution ils existent et les listes de pointeurs et de tireurs apparaissent. Encore que je suis avant tout obligé de revalider la formule Hasard parce qu'elle est indument validée en matriciel (elle apparait encadrée d’accolades dans la barre de formule).
Après autre exécution leur ordre change bien.
 
Dans le second fichier essai2 que je vous ai envoyé il y a bien un module 1 avec les bons éléments. Pourtant ca ne marche pas. Que Faut-il faire pour invoquer la ChangerGraine.
Et je ne sais pas comment écrire la macro, faut-il aller dans module, insertion de module ou bien dans affichage, enregistrer une macro et dans l'un et l'autre cas quel code faut-il écrire?
Merci

Dans votre dernier essai2.xlsm j'ai bien trouvé le Module1 avec la macro ChangerLesGraines.
Mais elle n'a apparemment jamais été exécutée, de sorte que les noms n'existent pas.
Après exécution ils existent et les listes de pointeurs et de tireurs apparaissent. Encore que je suis avant tout obligé de revalider la formule Hasard parce qu'elle est indument validée en matriciel (elle apparait encadrée d’accolades dans la barre de formule).
Après autre exécution leur ordre change bien.
Bonjour,

Parfait pour les tirages avec ChangerlesGraines; merci encore
Il ne reste plus que la macro à définir.
Mais je ne sais pas comment écrire la macro, faut-il aller dans module, insertion de module ou bien dans affichage, enregistrer une macro et dans l'un et l'autre cas quel code faut-il écrire?
Merci
 
Les roues de loterie de mon classeur de démo ListeAléat.xlsm sont peut être un peu trop sophistiquées pour vos besoins.
Elles conviennent pour des classeurs à plusieurs feuilles, celle active à l'ouverture du classeur n'en comportant pas, et bénéficient d'un objet à évènement pour prise en charge dans le module de l'objet WorkSheet représentant la feuille, avec un système d'animation montrant d'abord une image de roue en train de tourner entourée d'une aura mauve. Elles ne sont pertinentes que pour des exécutions potentiellement longues dont l'issue est structurellement incertaine. Dans votre cas c'est plus simple. Vous pourriez sélectionner par un clic droit le groupe dessiné GrpRoueLot, puis en maintenant la touche Ctrl enfoncée, resélectionner dedans la sous-image ImgRoueFixe, la copier puis la coller à coté. Clic droit sur cette image, commande Affecter une macro et sélectionner ChangerLesGraines.
 
Dernière édition:
Vous m aviez parlé d une macro avec une roue pour appeler la macro Changer les graines au besoin.
Merci

Les roues de loterie de mon classeur de démo ListeAléat.xlsm sont peut être un peu trop sophistiquées pour vos besoins.
Elles conviennent pour des classeurs à plusieurs feuilles, celle active à l'ouverture du classeur n'en comportant pas, et bénéficient d'un objet à évènement pour prise en charge dans le module de l'objet WorkSheet représentant la feuille, avec un système d'animation montrant d'abord une image de roue en train de tourner entourée d'une aura mauve. Elles ne sont pertinentes que pour des exécutions potentiellement longues dont l'issue est structurellement incertaine. Dans votre cas c'est plus simple. Vous pourriez sélectionner par un clic droit le groupe dessiné GrpRoueLot, puis en maintenant la touche Ctrl enfoncée, resélectionner dedans la sous-image ImgRoueFixe, la copier puis la coller à coté. Clic droit sur cette image, commande Affecter une macro et sélectionner ChangerLesGraines.
Bonsoir,
Où puis-je trouver GrpRoueLot et pourquoi l'appelez vous groupe dessiné? Dans ma liste de modules j'ai XRoueLoterie mais je ne pense pas que ce soit le bon candidat.Je ne sais pas où chercher.Merci.
 
C'est l'objet dessiné qui apparait en haut à gauche de la feuille "48 doublettes exemple". Ce n'est pas une image mais un groupe de 2 images superposées. Mais vous pouvez aisément isoler l'image ImgRoueFixe de ce groupe et par les manœuvres que je vous ai indiquées: la copier et la coller à coté pour affecter simplement à la copie votre macro ChangerLesGraines.
Sinon, après tout, en l'état cette programmation dans le module WshT2vs3 (pourquoi ce nom ?) de l'objet Worksheet représentant votre feuille "48 doublettes exemple" fonctionne, à condition que la feuille ait été activée depuis la dernière réinitialisation du projet VBA :
VB:
Option Explicit
Private WithEvents RoueLot As RoueLoterie
Private Sub Worksheet_Activate()
   Set RoueLot = RoueLoterie(Me, "GrpRoueLot")
   End Sub
Private Sub RoueLot_Click()
   ChangerLesGraines
   RoueLot.Arrêter
   End Sub
 
Dernière édition:
Bonsoir,
Où puis-je trouver GrpRoueLot et pourquoi l'appelez vous groupe dessiné? Dans ma liste de modules j'ai XRoueLoterie mais je ne pense pas que ce soit le bon candidat.Je ne sais pas où chercher.Merci.

C'est l'objet dessiné qui apparait en haut à gauche de la feuille "48 doublettes exemple". Ce n'est pas une image mais un groupe de 2 images superposées. Mais vous pouvez aisément isoler l'image ImgRoueFixe de ce groupe et par les manœuvres que je vous ai indiquées: la copier et la coller à coté pour affecter simplement à la copie votre macro ChangerLesGraines.
Sinon, après tout, en l'état cette programmation dans le module WshT2vs3 (pourquoi ce nom ?) de l'objet Worksheet représentant votre feuille "48 doublettes exemple" fonctionne, à condition que la feuille ait été activée depuis la dernière réinitialisation du projet VBA :
VB:
Option Explicit
Private WithEvents RoueLot As RoueLoterie
Private Sub Worksheet_Activate()
   Set RoueLot = RoueLoterie(Me, "GrpRoueLot")
   End Sub
Private Sub RoueLot_Click()
   ChangerLesGraines
   RoueLot.Arrêter
   End Sub
Désolé mais je ne trouve pas cet objet dessiné en haut à gauche de la feuille (voir copie d'écran jointe).
Pour l'autre option faut-il tout déléter dans le module WshT2vs3 et coller
VB:
Option Explicit
Private WithEvents RoueLot As RoueLoterie
Private Sub Worksheet_Activate()
   Set RoueLot = RoueLoterie(Me, "GrpRoueLot")
   End Sub
Private Sub RoueLot_Click()
   ChangerLesGraines
   RoueLot.Arrêter
   End Sub

J'ai noté aussi que les fonctions =Hasard Tireurs ou Pointeurs (exemple =Hasard(LIGNE()-24;$BT$25:$BT$48;Pointeurs) donnaient parfois les listes avec le même ordre; voyez par exemple dans la feuille "48 doublettes exemple" du fichier joint les colonnes CN et CU entre les lignes 24 et 32.
 

Pièces jointes

Il couvre sensiblement les cellules B1:C2. On ne le voit donc pas si ce n'est affiché qu'à partir de la colonne F.
La Sub ChangerGraine de votre dernier classeur joint n'a pas reçu les modif garantissant des graines différentes lorsqu'elle est exécutée plusieurs fois dans la même seconde. En plus sur la 2ème feuille la graine commune spécifiée est encore 1,23456789.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour