Bonjour tout le monde.
J'ai une macro qui execute un code lorsque je double click dans une cellule.
elle me met un symbole a l'interieur, puis je fais un petit sendkey
"{enter}" pour que je ne me retrouve pas dans la cellule.
tout fonctionne, sauf que j'aurais bien voulu valider ma cellule autrement
que par un sendkey.
quel est le code de l'icone de validation en haut a gauche de la barre de
formule ?
car si je tape un symbole dans la barre du menu puis je click sur le petit
"v" qui est vert je valide ma cellule tout en restant sur cette meme
cellule...
Essaye dans le module Thisworkbook Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean) End Sub Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme macro, je voudrais eviter de copier/coller ma macro directement dans toutes les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ? Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau) sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Bonjour.
Essaye dans le module Thisworkbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
End Sub
Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro.
Est-ce possible ?
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme
ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Essaye dans le module Thisworkbook Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean) End Sub Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme macro, je voudrais eviter de copier/coller ma macro directement dans toutes les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ? Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau) sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Michel HOLDERITH
Salut, merci de ta reponse @+ Michel.
"Alain CROS" wrote in message news:
Bonjour.
Essaye dans le module Thisworkbook Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
End Sub Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ? Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Salut,
merci de ta reponse
@+
Michel.
"Alain CROS" <Personne@ICI> wrote in message
news:eDEUe7UnDHA.2200@TK2MSFTNGP12.phx.gbl...
Bonjour.
Essaye dans le module Thisworkbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal
Target As Excel.Range, Cancel As Boolean)
End Sub
Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour
lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la
meme
macro, je voudrais eviter de copier/coller ma macro directement dans
toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro.
Est-ce possible ?
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon
niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme
ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Essaye dans le module Thisworkbook Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
End Sub Tu vérifie si Sh correspond a une de tes 10aine de feuilles pour lesquelles tu dois utiliser ta macro sinon exit sub.
Alain CROS.
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ? Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean)
Frédéric Sigonneau
Bonsoir,
ca marche et pas dans un module ? En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme macro, je voudrais eviter de copier/coller ma macro directement dans toutes les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien écrire une macro "générique" (utilisable dans n feuilles) dans un module standard puis la réutiliser dans les procédures événementielles (de ton choix) des feuilles (de ton choix également). Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta procédure doit avoir le même nombre de paramètre que la procédure Worksheet_BeforeDoubleClick, du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux faire, les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la cellule cliquée et la sortie du mode double clic pour éviter l'erreur générée par le double clic sur une feuille protégée). Ta procédure va donc avoir deux paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean) Cell.Parent.Unprotect Cell.Value = "û" Fin = True Cell.Parent.Protect _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Ensuite, dans chaque feuille (ou dans l'événement Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu l'appelles avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) ProcGeneriqueAvecParams Target, Cancel End Sub
Voilà.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau) sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean) j'ai toujours mis en place des variables public pour contourner ce genre de probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai jamais eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :) Si tu pouvais me dire si il y a une solution a m'on petit probleme ca serait sympa de ta part... @+ Michel.
"AV" wrote in message news:bnlec8$h94$
Et si tu te repenchais un peu plus sérieusement sur l'évènement "BeforeDoubleClick" et Cancel=true ? Du style : Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As Boolean)
ActiveSheet.Unprotect zz = "z" ActiveSheet.Protect Cancel = True End Sub
AV
Bonsoir,
ca marche et pas dans un module ?
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro.
Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien écrire une
macro "générique" (utilisable dans n feuilles) dans un module standard puis la
réutiliser dans les procédures événementielles (de ton choix) des feuilles (de
ton choix également).
Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta procédure doit
avoir le même nombre de paramètre que la procédure Worksheet_BeforeDoubleClick,
du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux faire,
les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la cellule
cliquée et la sortie du mode double clic pour éviter l'erreur générée par le
double clic sur une feuille protégée). Ta procédure va donc avoir deux
paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean)
Cell.Parent.Unprotect
Cell.Value = "û"
Fin = True
Cell.Parent.Protect _
DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Ensuite, dans chaque feuille (ou dans l'événement
Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu l'appelles
avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
ProcGeneriqueAvecParams Target, Cancel
End Sub
Voilà.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme
ci-dessus : (ByVal Target As Range, Cancel As Boolean)
j'ai toujours mis en place des variables public pour contourner ce genre de
probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai jamais
eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :)
Si tu pouvais me dire si il y a une solution a m'on petit probleme ca serait
sympa de ta part...
@+
Michel.
"AV" <alain.vallon@wanadoo.fr> wrote in message
news:bnlec8$h94$1@news-reader4.wanadoo.fr...
Et si tu te repenchais un peu plus sérieusement sur l'évènement
"BeforeDoubleClick" et Cancel=true ?
Du style :
Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As
Boolean)
ActiveSheet.Unprotect
zz = "z"
ActiveSheet.Protect
Cancel = True
End Sub
ca marche et pas dans un module ? En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme macro, je voudrais eviter de copier/coller ma macro directement dans toutes les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien écrire une macro "générique" (utilisable dans n feuilles) dans un module standard puis la réutiliser dans les procédures événementielles (de ton choix) des feuilles (de ton choix également). Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta procédure doit avoir le même nombre de paramètre que la procédure Worksheet_BeforeDoubleClick, du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux faire, les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la cellule cliquée et la sortie du mode double clic pour éviter l'erreur générée par le double clic sur une feuille protégée). Ta procédure va donc avoir deux paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean) Cell.Parent.Unprotect Cell.Value = "û" Fin = True Cell.Parent.Protect _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Ensuite, dans chaque feuille (ou dans l'événement Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu l'appelles avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) ProcGeneriqueAvecParams Target, Cancel End Sub
Voilà.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau) sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean) j'ai toujours mis en place des variables public pour contourner ce genre de probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai jamais eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :) Si tu pouvais me dire si il y a une solution a m'on petit probleme ca serait sympa de ta part... @+ Michel.
"AV" wrote in message news:bnlec8$h94$
Et si tu te repenchais un peu plus sérieusement sur l'évènement "BeforeDoubleClick" et Cancel=true ? Du style : Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As Boolean)
ActiveSheet.Unprotect zz = "z" ActiveSheet.Protect Cancel = True End Sub
AV
Michel HOLDERITH
Merci beaucoup pour toutes ces explications que je vais aussitot mettre en pratique.... :) @+ Michel.
"Frédéric Sigonneau" wrote in message news:
Bonsoir,
ca marche et pas dans un module ? En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien écrire une
macro "générique" (utilisable dans n feuilles) dans un module standard puis la
réutiliser dans les procédures événementielles (de ton choix) des feuilles (de
ton choix également). Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta procédure doit
avoir le même nombre de paramètre que la procédure Worksheet_BeforeDoubleClick,
du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux faire,
les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la cellule
cliquée et la sortie du mode double clic pour éviter l'erreur générée par le
double clic sur une feuille protégée). Ta procédure va donc avoir deux paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean) Cell.Parent.Unprotect Cell.Value = "û" Fin = True Cell.Parent.Protect _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Ensuite, dans chaque feuille (ou dans l'événement Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu l'appelles
avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) ProcGeneriqueAvecParams Target, Cancel End Sub
Voilà.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean) j'ai toujours mis en place des variables public pour contourner ce genre de
probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai jamais
eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :) Si tu pouvais me dire si il y a une solution a m'on petit probleme ca serait
sympa de ta part... @+ Michel.
"AV" wrote in message news:bnlec8$h94$
Et si tu te repenchais un peu plus sérieusement sur l'évènement "BeforeDoubleClick" et Cancel=true ? Du style : Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As Boolean)
ActiveSheet.Unprotect zz = "z" ActiveSheet.Protect Cancel = True End Sub
AV
Merci beaucoup pour toutes ces explications que je vais aussitot mettre en
pratique.... :)
@+
Michel.
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> wrote in message
news:3F9ED811.4320E481@wanadoo.fr...
Bonsoir,
ca marche et pas dans un module ?
En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la
meme
macro, je voudrais eviter de copier/coller ma macro directement dans
toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro.
Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien
écrire une
macro "générique" (utilisable dans n feuilles) dans un module standard
puis la
réutiliser dans les procédures événementielles (de ton choix) des feuilles
(de
ton choix également).
Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta
procédure doit
avoir le même nombre de paramètre que la procédure
Worksheet_BeforeDoubleClick,
du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux
faire,
les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la
cellule
cliquée et la sortie du mode double clic pour éviter l'erreur générée par
le
double clic sur une feuille protégée). Ta procédure va donc avoir deux
paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean)
Cell.Parent.Unprotect
Cell.Value = "û"
Fin = True
Cell.Parent.Protect _
DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Ensuite, dans chaque feuille (ou dans l'événement
Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu
l'appelles
avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
ProcGeneriqueAvecParams Target, Cancel
End Sub
Voilà.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon
niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme
ci-dessus : (ByVal Target As Range, Cancel As Boolean)
j'ai toujours mis en place des variables public pour contourner ce genre
de
probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai
jamais
eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :)
Si tu pouvais me dire si il y a une solution a m'on petit probleme ca
serait
sympa de ta part...
@+
Michel.
"AV" <alain.vallon@wanadoo.fr> wrote in message
news:bnlec8$h94$1@news-reader4.wanadoo.fr...
Et si tu te repenchais un peu plus sérieusement sur l'évènement
"BeforeDoubleClick" et Cancel=true ?
Du style :
Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As
Boolean)
ActiveSheet.Unprotect
zz = "z"
ActiveSheet.Protect
Cancel = True
End Sub
Merci beaucoup pour toutes ces explications que je vais aussitot mettre en pratique.... :) @+ Michel.
"Frédéric Sigonneau" wrote in message news:
Bonsoir,
ca marche et pas dans un module ? En fait j'ai une 10aine de feuilles et il faudrait utiliser toujours la meme
macro, je voudrais eviter de copier/coller ma macro directement dans toutes
les feuilles, et les faire toutes pointer faire une meme et seule macro. Est-ce possible ?
Pour répondre à la question telle que tu la poses, tu peux très bien écrire une
macro "générique" (utilisable dans n feuilles) dans un module standard puis la
réutiliser dans les procédures événementielles (de ton choix) des feuilles (de
ton choix également). Pour l'utiliser dans la procédure Worksheet_BeforeDoubleClick, ta procédure doit
avoir le même nombre de paramètre que la procédure Worksheet_BeforeDoubleClick,
du moins autant que ceux que tu comptes en utiliser. Pour ce que tu veux faire,
les deux paramètres de Worksheet_BeforeDoubleClick sont à utiliser (la cellule
cliquée et la sortie du mode double clic pour éviter l'erreur générée par le
double clic sur une feuille protégée). Ta procédure va donc avoir deux paramètres aussi : une cellule et un booléen. Par exemple :
Sub ProcGeneriqueAvecParams(Cell As Range, Fin As Boolean) Cell.Parent.Unprotect Cell.Value = "û" Fin = True Cell.Parent.Protect _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Ensuite, dans chaque feuille (ou dans l'événement Workbook_SheetBeforeDoubleClick comme suggéré par Alain Cros), tu l'appelles
avec ce genre de syntaxe :
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) ProcGeneriqueAvecParams Target, Cancel End Sub
Voilà.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Si oui comment ? car en fait je me debrouille plutot pas mal (a mon niveau)
sauf que je n'ai jamais rien compris au passage de valeurs, genre comme ci-dessus : (ByVal Target As Range, Cancel As Boolean) j'ai toujours mis en place des variables public pour contourner ce genre de
probleme.... je sais... je sais ce n'est pas bien, sauf que je n'ai jamais
eu trop le temps pour regarder ca, ce serait peut-etre le moment ? :) Si tu pouvais me dire si il y a une solution a m'on petit probleme ca serait
sympa de ta part... @+ Michel.
"AV" wrote in message news:bnlec8$h94$
Et si tu te repenchais un peu plus sérieusement sur l'évènement "BeforeDoubleClick" et Cancel=true ? Du style : Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As Boolean)
ActiveSheet.Unprotect zz = "z" ActiveSheet.Protect Cancel = True End Sub