Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonctionnement hératique d'Excel??

12 réponses
Avatar
zOrg2net
Bonjour tout le monde,
Oui, la question est bien le fonctionnement hératique d'Excel. J'ai modifié
un classeur en lui ajoutant un shape, affiché à l'aide d'une macro, que j'ai
trouvé sur un classeur de JB. Voici le code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub
Hé ben ça marche pas! Je reprends le classeur de JB, ça marche !!! Damned me
dis-je!!!! Je retourne sur mon classeur, j'envoi un Application.EnableEvents
= True dans la fenêtre d'exécution. Rien, nada.
En désespoir de cause, je décide de copier les colonnes de mes feuilles dans
un nouveau classeur, j'importe mes modules, je recolle l'évènement sur
SelectionChange et là...mirrrrrraculos, ça fonctionne. Peut-être que
quelqu'un à une explication sur ce fonctionnement hératique d'Excel??

zOrg2net
7Ounet
Le café fait dormir, lorsqu'on en boit pas !

10 réponses

1 2
Avatar
MichDenis
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index=1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuille utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure appartiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True
Avatar
zOrg2net
OK, ça me paraît juste. Le shape appartient bien à la 1ère feuille.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mystère.

zOrg2net
7OuNet


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index=1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuille utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure appartiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True





Avatar
JB
On 7 fév, 16:05, zOrg2net wrote:
OK, ça me paraît juste. Leshapeappartient bien à la 1ère feuille.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mystè re.

zOrg2net
7OuNet




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index =1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuil le utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure apparti ennent
déjà à la dite feuille.
Shapes("monshape").Visible = True- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonsoir,

Post le fichier avec le pb.

Cordialement JB


Avatar
zOrg2net
Salut JB,

Aïe !! Dans une rage vengeresse et salvatrice, j'ai écrasé l'ancien fichier
qui osait me résister !
Désolé donc de ne pouvoir te poster le fameux classeur .
Merci quand même de m'avoir répondu.

zOrg2net
7OuNet


"JB" a écrit dans le message de news:

On 7 fév, 16:05, zOrg2net wrote:
OK, ça me paraît juste. Leshapeappartient bien à la 1ère feuille.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mystère.

zOrg2net
7OuNet




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index=1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuille
utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris
le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure appartiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True- Masquer le texte des messages
précédents -


- Afficher le texte des messages précédents -


Bonsoir,

Post le fichier avec le pb.

Cordialement JB


Avatar
Francois L
Bonjour tout le monde,
Oui, la question est bien le fonctionnement hératique d'Excel. (...)


Bonjour,

Euh... erratique non ?

--
François L

Avatar
jps
hé! ho! françois, on a tous droit à l'héreur, non?
si la ségo, dans un revers de robe en soie sauvage, a pu évoquer la
bravitude, le sarko, lui, à propos des droits de succession, a bien parlé
d'héritation....
jps

"Francois L" a écrit dans le message de news:

Bonjour tout le monde,
Oui, la question est bien le fonctionnement hératique d'Excel. (...)


Bonjour,

Euh... erratique non ?

--
François L



Avatar
zOrg2net
Ach !!! Chai retrouffé un clone de mon fichier, foir ci-dessous.
http://cjoint.com/?cii4aepFA8
Merzi de le tester.

zOrg2net
7OuNet
P.S. Pour Francois L, hératique vient de hératitude. Qui signifie attitude
hérétique. Donc ça n'est pas une herreur. Na! ;o))


On 7 fév, 16:05, zOrg2net wrote:
OK, ça me paraît juste. Leshapeappartient bien à la 1ère feuille.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mystère.

zOrg2net
7OuNet




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index=1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuille utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure appartiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonsoir,

Post le fichier avec le pb.

Cordialement JB






Avatar
JB
On 8 fév, 09:02, zOrg2net wrote:
Ach !!! Chai retrouffé un clone de mon fichier, foir ci-dessous.http:// cjoint.com/?cii4aepFA8
Merzi de le tester.

zOrg2net
7OuNet
P.S. Pour Francois L, hératique vient de hératitude. Qui signifie at titude
hérétique. Donc ça n'est pas une herreur. Na! ;o))




On 7 fév, 16:05, zOrg2net wrote:
OK, ça me paraît juste. Leshapeappartient bien à la 1ère feui lle.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mys tère.

zOrg2net
7OuNet




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle sig nifie
que ton "shape" appartient à la première feuille du classeur (i ndex=1)
si ta feuille n'est pas la première feuille du classeur -> probl ème

Si les "shape" auquels tu fais référence appartiennent à la f euille utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à mo ins de
le spécifier tous les objets mentionnés dans la procédure app artiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True- Masquer le texte des messa ges précédents -


- Afficher le texte des messages précédents -


Bonsoir,

Post le fichier avec le pb.

Cordialement JB- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Il y a 2 objets nommés monshape ??
J'en ai renommé un xxx http://cjoint.com/?cijA1csaFc

JB




Avatar
zOrg2net
Bonjour jb,

C'est OK, mais comment peut-on trouver des objets oubliés que l'on ne voit
pas ??
J'avais bien regardé dans les noms, mais je n'avait rien trouvé de bizzare.

En tout cas merci.

zOrg2net
7OuNet



On 8 fév, 09:02, zOrg2net wrote:
Ach !!! Chai retrouffé un clone de mon fichier, foir ci-dessous.http://cjoint.com/?cii4aepFA8
Merzi de le tester.

zOrg2net
7OuNet
P.S. Pour Francois L, hératique vient de hératitude. Qui signifie attitude
hérétique. Donc ça n'est pas une herreur. Na! ;o))




On 7 fév, 16:05, zOrg2net wrote:
OK, ça me paraît juste. Leshapeappartient bien à la 1ère feuille.
Mais cela n'explique pas pourquoi dans un classeur ça ne fonctionne pas et
inversement dans un nouveau classeur?
Bah!! Faut pas qu'on se me prenne la tête. Faudra vivre avec ce mystère.

zOrg2net
7OuNet




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets(1).Shapes("monshape").Visible = True
Else
Sheets(1).Shapes("monshape").Visible = False
End If
End Sub

L'utilisation de Sheets(1) peut être problématique car elle signifie
que ton "shape" appartient à la première feuille du classeur (index=1)
si ta feuille n'est pas la première feuille du classeur -> problème

Si les "shape" auquels tu fais référence appartiennent à la feuille utilise
plutôt ceci sans faire référence à la feuille. Le seul fait que tu écris le
code dans un module de classe qu'est ta feuille, signifie qu`à moins de
le spécifier tous les objets mentionnés dans la procédure appartiennent
déjà à la dite feuille.
Shapes("monshape").Visible = True- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonsoir,

Post le fichier avec le pb.

Cordialement JB- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Il y a 2 objets nommés monshape ??
J'en ai renommé un xxx http://cjoint.com/?cijA1csaFc

JB








Avatar
Francois L
hé! ho! françois, on a tous droit à l'héreur, non?
si la ségo, dans un revers de robe en soie sauvage, a pu évoquer la
bravitude, le sarko, lui, à propos des droits de succession, a bien parlé
d'héritation....
jps



Bonsoir jps,

On a tous droit à l'erreur, l'errance et même à l'hérésie dit la
constitution mais les pauvres hères qui cumulent les trois mesurent tout
de même que ce n'est pas facile.
:o)

--
François L

1 2