Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai trouvé
sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution et
je crois que c'est parce que la commandBars(0) n'existe pas (je découvre à
taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur activate/desactivate
de thisworbook pour que si l'utilisateur a un autre fichier ouvert et qu'il
jongle entre les deux, il puisse utiliser son environnement même si mon
fichier est ouvert. Je me disais donc que des menus VBA vers les menus Excel,
il pouvait y avoir des interférences ( ce qui expliquerait que l'erreur n'est
pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai trouvé
sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution et
je crois que c'est parce que la commandBars(0) n'existe pas (je découvre à
taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur activate/desactivate
de thisworbook pour que si l'utilisateur a un autre fichier ouvert et qu'il
jongle entre les deux, il puisse utiliser son environnement même si mon
fichier est ouvert. Je me disais donc que des menus VBA vers les menus Excel,
il pouvait y avoir des interférences ( ce qui expliquerait que l'erreur n'est
pas systématique)
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai trouvé
sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution et
je crois que c'est parce que la commandBars(0) n'existe pas (je découvre à
taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur activate/desactivate
de thisworbook pour que si l'utilisateur a un autre fichier ouvert et qu'il
jongle entre les deux, il puisse utiliser son environnement même si mon
fichier est ouvert. Je me disais donc que des menus VBA vers les menus Excel,
il pouvait y avoir des interférences ( ce qui expliquerait que l'erreur n'est
pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté du
tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre le
1er élément du TabBO et les autres, autrement dit pourquoi ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate au
lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate et
systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais pas
comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate au
lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate et
systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais pas
comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
42e131fe$0$25042$8fcfb975@news.wanadoo.fr...
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate au
lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate et
systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais pas
comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les éléments
d'un tableau ( déclaré comme Array vraisemblablement quoique d'autres
possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est par
défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0 étant
l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0) est un
numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à effectuer
une boucle de Lbiound à Ubound. Ceci dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les evenements
Activate et Deactivate de Thisworkbook n'est pas de nature à priori à
poser problème sauf si le code qui est sous-jacent de ces evenements pose
problème lui-même.Pour se prononcer, il faudrait en avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur d'éxécution
et je crois que c'est parce que la commandBars(0) n'existe pas (je
découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais des
modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un autre
fichier ouvert et qu'il jongle entre les deux, il puisse utiliser son
environnement même si mon fichier est ouvert. Je me disais donc que des
menus VBA vers les menus Excel, il pouvait y avoir des interférences ( ce
qui expliquerait que l'erreur n'est pas systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du côté
du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle entre
le 1er élément du TabBO et les autres, autrement dit pourquoi ne pas
écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver
mon environnement normal à la fermeture de ce fichier.
Merci
... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
et je vais...oublier le forum pendant 3 semaines.
... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
et je vais...oublier le forum pendant 3 semaines.
... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
et je vais...oublier le forum pendant 3 semaines.
Bonjour, *anonymousA*... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
Bonnes vacances, cher contributeur.
Sea,sex and sun...
;-)et je vais...oublier le forum pendant 3 semaines.
Et reviens vite...
Tu nous manques déjà !
PS : tu n'es pas obligé d'envoyer une carte postale à tous ceux que tu as
dépannés cette année. Rassuré ?
Bonjour, *anonymousA*
... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
Bonnes vacances, cher contributeur.
Sea,sex and sun...
;-)
et je vais...oublier le forum pendant 3 semaines.
Et reviens vite...
Tu nous manques déjà !
PS : tu n'es pas obligé d'envoyer une carte postale à tous ceux que tu as
dépannés cette année. Rassuré ?
Bonjour, *anonymousA*... avant Lundi soir car après je fais comme beaucoup, je pars
en vacances
Bonnes vacances, cher contributeur.
Sea,sex and sun...
;-)et je vais...oublier le forum pendant 3 semaines.
Et reviens vite...
Tu nous manques déjà !
PS : tu n'es pas obligé d'envoyer une carte postale à tous ceux que tu as
dépannés cette année. Rassuré ?
si tu veux que je regarde ton classeur, envoie le à
mais fais le pour que j'ai le temps de le regarder
avant Lundi soir car après je fais comme beaucoup, je pars en vacances
et je vais , sinon oublier excel , mais oublier le forum pendant 3
semaines.
A+bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé
l'activate au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est
immédiate et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne
sais pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence
0 étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si
TabBO(0) est un numéro valide ce qu'il parait être puisque
l'instruction Application.CommandBars(tabBO(0)).Enabled = OnOff
existe dans ton programme, il ne devrait pas y avoir plus de
difficulté que ça à effectuer une boucle de Lbiound à Ubound. Ceci
dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature
à priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je
l'ai trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0)
n'existe pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je
fais des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y
avoir des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde
du côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
si tu veux que je regarde ton classeur, envoie le à
anonymousA@wanadoo.fr mais fais le pour que j'ai le temps de le regarder
avant Lundi soir car après je fais comme beaucoup, je pars en vacances
et je vais , sinon oublier excel , mais oublier le forum pendant 3
semaines.
A+
bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé
l'activate au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est
immédiate et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne
sais pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
42e131fe$0$25042$8fcfb975@news.wanadoo.fr...
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence
0 étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si
TabBO(0) est un numéro valide ce qu'il parait être puisque
l'instruction Application.CommandBars(tabBO(0)).Enabled = OnOff
existe dans ton programme, il ne devrait pas y avoir plus de
difficulté que ça à effectuer une boucle de Lbiound à Ubound. Ceci
dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature
à priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je
l'ai trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0)
n'existe pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je
fais des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y
avoir des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde
du côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
si tu veux que je regarde ton classeur, envoie le à
mais fais le pour que j'ai le temps de le regarder
avant Lundi soir car après je fais comme beaucoup, je pars en vacances
et je vais , sinon oublier excel , mais oublier le forum pendant 3
semaines.
A+bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé
l'activate au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est
immédiate et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne
sais pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence
0 étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si
TabBO(0) est un numéro valide ce qu'il parait être puisque
l'instruction Application.CommandBars(tabBO(0)).Enabled = OnOff
existe dans ton programme, il ne devrait pas y avoir plus de
difficulté que ça à effectuer une boucle de Lbiound à Ubound. Ceci
dit, il me manque peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature
à priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je
l'ai trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0)
n'existe pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je
fais des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y
avoir des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde
du côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
OK, une fois vu le fichier je comprends. En fait, pour l'explication 1
c'est parce que le 1er commandbar ( en fait WorksheetMenubar) ne peut être
invalidé par visible. Il faut lui passer la propriété Enable pour
l'invalider. C'est d'ailleurs la particularité de ce Commandbar.
Ce commandbar ne supporte pas la propriété visible à false ce qui explique
le plantage.
pour le 2eme item, la proc suivante effectivement valide ou invalide les
menus initiaux de l'utiliateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
End Sub
En conséquence, pour lui permettre à l'utilisateur de récupérer ses menus
dans le cas où il passe de ton fichier aux autres fichiers ouverts, il
convient d'écrire dans ton fichier dans le module Thisworkbook,
Private Sub Workbook_Deactivate()
MenuEtBO True
End Sub
Private Sub Workbook_Activate()
MenuEtBO False
End Sub
en supposant bien sur que dans le workbook_open de ton fichier tu aies
fait exécuter la proc
Sub Ouverture()
Application.ScreenUpdating = False
InitTablos
MenuEtBO False
Classeurs_Ouverts False
Desactive_Options
End Sub
Il va de soi que si l'utilisateur change le nombre des barres d'outils
après l'ouverture de ton fichier, il sera remis dans la configuration qui
précédait l'ouverture de ton fichier lors de l'venementement Deactovate de
ton fichier.
Voilà, j'espère avoir répondu à tes questions. Si après ça , tu ressens
encore le besoin de m'nevoyer ton fichier, n'hésites pas.
A+si tu veux que je regarde ton classeur, envoie le à
mais fais le pour que j'ai le temps de le regarder avant Lundi soir car
après je fais comme beaucoup, je pars en vacances et je vais , sinon
oublier excel , mais oublier le forum pendant 3 semaines.
A+bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate
au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate
et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais
pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0
étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0)
est un numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à
effectuer une boucle de Lbiound à Ubound. Ceci dit, il me manque
peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature à
priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0) n'existe
pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais
des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y avoir
des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du
côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
OK, une fois vu le fichier je comprends. En fait, pour l'explication 1
c'est parce que le 1er commandbar ( en fait WorksheetMenubar) ne peut être
invalidé par visible. Il faut lui passer la propriété Enable pour
l'invalider. C'est d'ailleurs la particularité de ce Commandbar.
Ce commandbar ne supporte pas la propriété visible à false ce qui explique
le plantage.
pour le 2eme item, la proc suivante effectivement valide ou invalide les
menus initiaux de l'utiliateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
End Sub
En conséquence, pour lui permettre à l'utilisateur de récupérer ses menus
dans le cas où il passe de ton fichier aux autres fichiers ouverts, il
convient d'écrire dans ton fichier dans le module Thisworkbook,
Private Sub Workbook_Deactivate()
MenuEtBO True
End Sub
Private Sub Workbook_Activate()
MenuEtBO False
End Sub
en supposant bien sur que dans le workbook_open de ton fichier tu aies
fait exécuter la proc
Sub Ouverture()
Application.ScreenUpdating = False
InitTablos
MenuEtBO False
Classeurs_Ouverts False
Desactive_Options
End Sub
Il va de soi que si l'utilisateur change le nombre des barres d'outils
après l'ouverture de ton fichier, il sera remis dans la configuration qui
précédait l'ouverture de ton fichier lors de l'venementement Deactovate de
ton fichier.
Voilà, j'espère avoir répondu à tes questions. Si après ça , tu ressens
encore le besoin de m'nevoyer ton fichier, n'hésites pas.
A+
si tu veux que je regarde ton classeur, envoie le à anonymousA@wanadoo.fr
mais fais le pour que j'ai le temps de le regarder avant Lundi soir car
après je fais comme beaucoup, je pars en vacances et je vais , sinon
oublier excel , mais oublier le forum pendant 3 semaines.
A+
bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate
au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate
et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais
pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
42e131fe$0$25042$8fcfb975@news.wanadoo.fr...
re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0
étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0)
est un numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à
effectuer une boucle de Lbiound à Ubound. Ceci dit, il me manque
peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature à
priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+
Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0) n'existe
pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais
des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y avoir
des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Merci
bonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du
côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
OK, une fois vu le fichier je comprends. En fait, pour l'explication 1
c'est parce que le 1er commandbar ( en fait WorksheetMenubar) ne peut être
invalidé par visible. Il faut lui passer la propriété Enable pour
l'invalider. C'est d'ailleurs la particularité de ce Commandbar.
Ce commandbar ne supporte pas la propriété visible à false ce qui explique
le plantage.
pour le 2eme item, la proc suivante effectivement valide ou invalide les
menus initiaux de l'utiliateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
End Sub
En conséquence, pour lui permettre à l'utilisateur de récupérer ses menus
dans le cas où il passe de ton fichier aux autres fichiers ouverts, il
convient d'écrire dans ton fichier dans le module Thisworkbook,
Private Sub Workbook_Deactivate()
MenuEtBO True
End Sub
Private Sub Workbook_Activate()
MenuEtBO False
End Sub
en supposant bien sur que dans le workbook_open de ton fichier tu aies
fait exécuter la proc
Sub Ouverture()
Application.ScreenUpdating = False
InitTablos
MenuEtBO False
Classeurs_Ouverts False
Desactive_Options
End Sub
Il va de soi que si l'utilisateur change le nombre des barres d'outils
après l'ouverture de ton fichier, il sera remis dans la configuration qui
précédait l'ouverture de ton fichier lors de l'venementement Deactovate de
ton fichier.
Voilà, j'espère avoir répondu à tes questions. Si après ça , tu ressens
encore le besoin de m'nevoyer ton fichier, n'hésites pas.
A+si tu veux que je regarde ton classeur, envoie le à
mais fais le pour que j'ai le temps de le regarder avant Lundi soir car
après je fais comme beaucoup, je pars en vacances et je vais , sinon
oublier excel , mais oublier le forum pendant 3 semaines.
A+bonsoir,
mille merci de suivre un pauvre novice comme moi.
voilà j'ai retrouvé où j'ai eu ce code. c'est le classeur fs.excelstate.
http://www.excelabo.net/moteurs/multixl.php?pge=2&f_motºrre
la seule chose que j'ai modifié dans ce code, c'est d'utilisé l'activate
au lieu du open et deactivate au lieu de beforeclose.
j'avoue ne pas tout comprendre à ton 1), ceci dit l'erreur est immédiate
et systématique avec cette modif.
pour le 2), je pourrais te faire parvenir mon classeur, mais je ne sais
pas comment faire et en plus l'erreur n'est pas systématique
il y a juste que quand ça se produit, les utilisateurs sont un peu ...
énervé
encore une fois merci du temps que tu me consacres
A+
"anonymousA" a écrit dans le message de news:
42e131fe$0$25042$re,
1) je ne pense pas que l'explication que tu me donnes soit juste. En
effet, tel que je comprends le programme, on va chercher dans les
éléments d'un tableau ( déclaré comme Array vraisemblablement quoique
d'autres possibilités soient offertes) les numéros des commandbars.
Or un array sauf s'il a été explicitementd éclaré comme de base 1 est
par défaut de base 0. Donc TabBO(0) vaut quelque chose. Or d'evidence 0
étant l'indice de départ , Lbound(TabBO) doit renvoyer 0 et si TabBO(0)
est un numéro valide ce qu'il parait être puisque l'instruction
Application.CommandBars(tabBO(0)).Enabled = OnOff existe dans ton
programme, il ne devrait pas y avoir plus de difficulté que ça à
effectuer une boucle de Lbiound à Ubound. Ceci dit, il me manque
peut-être une info.
2)Le fait de gérer la validation/invalidation de menus par les
evenements Activate et Deactivate de Thisworkbook n'est pas de nature à
priori à poser problème sauf si le code qui est sous-jacent de ces
evenements pose problème lui-même.Pour se prononcer, il faudrait en
avoir le contenu.
A+Merci pour ta réponse,
je tiens à préciser que ce code n'est pas de moi (de mémoire, je l'ai
trouvé sur excelabo, merci à son auteur)
1°) si je fais la modif que tu proposes j'ai une autre erreur
d'éxécution et je crois que c'est parce que la commandBars(0) n'existe
pas (je découvre à taton) (dommage, c'était bien vu)
2°) est-il possible que cette erreur ne survienne que lorsque je fais
des modifs dans VBA. Je m'explique : ma Sub est appelée sur
activate/desactivate de thisworbook pour que si l'utilisateur a un
autre fichier ouvert et qu'il jongle entre les deux, il puisse
utiliser son environnement même si mon fichier est ouvert. Je me
disais donc que des menus VBA vers les menus Excel, il pouvait y avoir
des interférences ( ce qui expliquerait que l'erreur n'est pas
systématique)
Mercibonjour,
erreur 9, c'est l'indice n'appartient pas à la selection. regarde du
côté du tableau et de ses éléments
D'ailleurs au passage pourquoi faire une distinction dans la boucle
entre le 1er élément du TabBO et les autres, autrement dit pourquoi
ne pas écrire ?
For i = Lbound(tabBO) To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
A+Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de
remettre les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de
retrouver mon environnement normal à la fermeture de ce fichier.
Merci
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci
Bonjour,
voici le code que j'utilise pour afficher/masquer les barres :
' Montre ou cache les barres d'outils de l'environnement utilisateur
Sub MenuEtBO(OnOff As Boolean)
Dim i%
Application.CommandBars(tabBO(0)).Enabled = OnOff
For i = 1 To UBound(tabBO)
Application.CommandBars(tabBO(i)).Visible = OnOff
Next
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
j'ai quelques fois une erreur d'éxécution 9 et je suis obligé de remettre
les barres en manu lorsque j'ouvre un autre classeur.
comment être sur de ne pas avoir cette erreur et être sur de retrouver mon
environnement normal à la fermeture de ce fichier.
Merci