CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
12 févr. 2012 à 17:37
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
18 févr. 2012 à 23:58
Bonjour,
Dans mon appli, un nouveau problème est soudainement apparu avec WorkSheet_Change, a priori sans raison apparente, dans le code ci-dessous qui jusque là tournait normalement.
Dans la feuille "Général":
Private Sub Worksheet_Change(ByVal Target As Range)
'Agent Reset
If Sheets("Data").Range("AS12").Value = 1 then Exit sub
If Not Intersect(Target, Range("E48")) Is Nothing Then
'ça bloque dès la ligne ci-dessous, qui n'est plus exécutée (et donc la valeur 1 n'est pas changée dans AS12 de la feuille Data)!!
Sheets("Data").Range("AS12").Value = 1 'Option: blocage
'% de Hauteur Totale par défaut
If Sheets("Général").Range("K48").Value "+" Then Sheets("Général").Range("R38").Value 10 'Ascendant (10%)
If Sheets("Général").Range("K48").Value "Q" Then Sheets("Général").Range("R38").Value 100 'Aucun (100%)
If Sheets("Général").Range("K48").Value "," Then Sheets("Général").Range("R38").Value 90 'Descendant (90%)
'Mélange/Interface
Sheets("Général").Range("K50").Value = "OUI"
Sheets("Data").Range("AS12").Value = 0 'Option: déblocage
End If
Sachant que:
(feuille Data)
=> AS12 permet de bloquer la Private Sub (en principe c'est inutile si la valeur est "changée" par un recalcul, ce qui -je crois- ne déclenche pas l'évènement),
(feuille Général)
> E48 reprend une liste dans la feuille Général (validation / liste Plage),
=> K48 contient une formule donnant les résulats: "+", ",", et "Q",
> R38 et K50 sont des listes (validation / liste Valeurs).
Bien entendu, tout est déprotégé, et les messages d'alerte des listes désactivés.
Bizarrement, la macro Private Sub W_Change dans Général quitte dès le premier .Value (valeur de AS12 inchangée).
Maintenant, si au lieu de faire un choix dans la liste dans E48, je TAPE une des valeurs de la liste (+ "entrée"), là, ça marche!
Par ailleurs, si je reprends très exactement ce script (uniquement) dans un nouveau classeur : Tout est OK, après un choix dans la liste en E48. Mais ça ne fonctionne plus si j'ouvre mon appli en même temps...
Qu'est-ce que je dois comprendre :
=> Que Worksheet_Change a des problèmes aléatoires avec les cellules avec liste ?
=> Que mon appli est désormais corrompue ?
Mais comment trouver où et y palier ?
Je rame complet...
L'appli pèse 3Mo et comporte un grand nombre de macro, formules, formats conditionnels... j'aimerais comprendre ce qui se passe avant de tenter de tout recommencer!
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 18 févr. 2012 à 19:23
en mettant la même valeur que celle qui s'y trouvait, hein ... (sinon pas test).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 20181 18 févr. 2012 à 19:43
Et même chose si je RETAPE LA MÊME VALEUR dans la cellule + Entrée...
Je redémarre au cas où (...sans y croire...): Pareil !
Itération décochée, ou à 1, ou à 100 : Idem!
j'inhibe tous les autre Worksheet_Change et SelectionChange dans totes les autres feuilles : Idem!
J'ai jamais eu ça!
Là, je sèche complet...
Certes, j'ai quand même ma solution "batarde" qui donne le "bon" résultat (voir le code plus haut), mais il faut absolument que je comprenne ce qui se passe.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 18 févr. 2012 à 20:23
Je crois (sans en être certain) que j'ai commencé à comprendre ce qui se passe, CerberusPau.
Et c'est lié à ta liste elle-même, selon moi. Elle semble être entièrement gérée par Excel, quoi que tu fasses.
Je vais cependant avoir besoin de ton classeur (pour l'avoir entre mes mains).
Ouvre ton MP : tu y trouveras une adresse email où me faire parvenir ce classeur.
Epure ton classeur de tout ce qui n'est pas le problème en soi, avant de me le faire parvenir.
A bientôt.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 20181 18 févr. 2012 à 21:33
Aie, aie, aie,
ça :
Sheets("Data").Range("AS9").Value = 0
ça va être difficile!
J'ai pleinement conscience de ce besoin, mais je risque justement de "virer" des trucs qui causent tout ou partie du problème, car comme je l'ai déjà dit: Pour ce qui est calcul "pur", je m'en sors (je crois) pas trop mal, ce qui est TRES loin d'être le cas pour le reste (ce que j'apelle "l'interfaçage utilisateur" ou la "mise en forme").
L'expérience m'a en effet appris, que plus l'interfaçage est "simple" d'utilisation (disons intuitif, c'est à la mode), certes, plus l'utilisateur ne rechigne pas pas, même si certains mettent toujours de la mauvaise volonté, mais plus aussi il est en fait imbriqué et complexe à écrire : Et là, si je sais ce que je veux "pour l'utilisateur", je suis loin (voire très!) de savoir le faire, j'entends l'écrire.
Je propose donc de te transmettre "le tout", SANS la mise à jour de ce que nous avons vu ensemble dans notre échange précédent (je suis actuellement en train de reconstruire toute mon appli sur cette base, et ça , ça n'est pas encore fini.
Le fichier que je peux t'envoyer tout de suite est donc celui (qui marche!) avec mes bidouilles (cellules relais), qui est d'ailleurs actuellement en service, et c'est sur celui-là que je recontre le problème évoqué ici avec W_Change (en attendant mieux, j'y palie avec ma "solution" indiqué plus haut).
Je ne pense pas qu'il y ait un lien quelconque avec le problème (résolu) dans mon autre post.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 18 févr. 2012 à 21:49
"Envouaille" donc
Il est dores et déjà probable que je vais y troquer uau moins un contrôle pour un autre.
"envouaille" envoie
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient