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

Interdire l'éxécution de macros sur une plage de cellules

37 réponses
Avatar
Pascal
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne doivent
s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres plages, mais
que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal

10 réponses

1 2 3 4
Avatar
123456
-----Message d'origine-----
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro
qui ne doivent

s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les
autres plages, mais

que mes autres macros continuent de s'éxécuter sur
l'intégralité du

tableau???

Merci de me répondre

Pascal



.



Avatar
Pascal
246810
a écrit dans le message de news:
092501c39c9d$d88b6b40$
123456
-----Message d'origine-----
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro
qui ne doivent

s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les
autres plages, mais

que mes autres macros continuent de s'éxécuter sur
l'intégralité du

tableau???

Merci de me répondre

Pascal



.



Avatar
Dédé
Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi, pas
besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne doivent
s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres plages,
mais

que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal





Avatar
Pascal
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi, pas
besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne doivent
s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres plages,
mais

que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal









Avatar
Philippe.R
Bonsoir Pascal,
En l'absence de Dédé :

[A1:C3] correspond à ta plage d'exécution autorisée

Après then , il te suffit d'inscrire le nom de ta ou tes macros qui resteront sagement dans le module
ordinaire que tu leur a choisi pour logement, ou bien d'en recopier le code

Après adaptation, ça peut donner :

Private Sub Worksheet_SelectionChange(ByVal DD As Range)
'MPFE le 27/10/2003
If Not Intersect(DD, [D6:D37]) Is Nothing Then
' ici le nom ou le code de ta macro
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Pascal" a écrit dans le message de news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi, pas
besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne doivent
s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres plages,
mais

que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal













Avatar
Dédé
Aie aie aie ;-)) Alors c'est même as les 5 % ;-))

L'exemple que je t'ai donné te permet de faire démarrer une macro que si tu
sélectionne une cellule présente dans une plage donnée ...

Maintenant, tu me dis que tu a déjà fais plusieurs macros donc, je vais pas
te dire comment ça marche ;-))

Au fait, sur quoi tu bloque ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi,
pas


besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne doivent
s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres plages,
mais

que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal













Avatar
Pascal
Je bloque sur le fait que je n'ai plus le choix.
C'est à dire que de D6 à D37, je dois pouvoir saisir au choix "En Vacances"
ou " Présent au bureau" ou etc etc.
Le code que tu m'as donné fonctionne mais je peux là dans le cas précis
saisir que "En Vacances"

"Dédé" a écrit dans le message de news:

Aie aie aie ;-)) Alors c'est même as les 5 % ;-))

L'exemple que je t'ai donné te permet de faire démarrer une macro que si
tu

sélectionne une cellule présente dans une plage donnée ...

Maintenant, tu me dis que tu a déjà fais plusieurs macros donc, je vais
pas

te dire comment ça marche ;-))

Au fait, sur quoi tu bloque ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi,
pas


besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne
doivent




s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres
plages,




mais
que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal

















Avatar
Dédé
Heuuu pour être plus précis cela aurait dû apparaître comme ça :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C3")) Is Nothing Then
MsgBox "Salut ! ce message apparaît car tu a sélectionné" & Chr(13) & "une
cellule de la plage A1 à C3", vbInformation, "Info..."
End If
End Sub

Traduction :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Permet de faire démarrer une macro lors de la sélection d'une cellule ou
d'une plage de cellule ..

If Not Intersect(Target, Range("A1:C3")) Is Nothing Then
Si l'interscetion de ta sélection avec la plage de cellule A1:C3 est "Vrai"
cela fait démarrer la macro qui te met le msgbox ...
En fait, il y a deux négation ("if not" et "Nothing") qui s'annulent
mutuellement ...

On pourrait aussi faire cela comme suit :
If Intersect(Target, Range("A1:C3")) Is Nothing Then Exit Sub
MsgBox "Salut ! ce message apparaît car tu a sélectionné" & Chr(13) & "une
cellule de la plage A1 à C3", vbInformation, "Info..."
end sub

Mais on m'a souvent dit que la sortie d'une macro en début de macro n'était
pas très "pro ..." alors je pense que la santé de ton excel (et de tes nerfs
;-)) devrait mieux aller avec le premier exemple ;-))

Pour ce qui concerne les "Range("A1:C3")" c'est-à-dire la sélection d'une
plage de cellule, tu peux abbréger ton code par [A1:C3] ... pour ce qui et
du résultat, il est le même sauf que tu économise ton clavier et que ça fait
toujours bien ... ;-))

Essaie de faire quelques tests et tu comprendra ;-))

Est-ce que tu t'en sors ?

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Dédé" a écrit dans le message de
news:
Aie aie aie ;-)) Alors c'est même as les 5 % ;-))

L'exemple que je t'ai donné te permet de faire démarrer une macro que si
tu

sélectionne une cellule présente dans une plage donnée ...

Maintenant, tu me dis que tu a déjà fais plusieurs macros donc, je vais
pas

te dire comment ça marche ;-))

Au fait, sur quoi tu bloque ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe quoi,
pas


besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne
doivent




s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres
plages,




mais
que mes autres macros continuent de s'éxécuter sur l'intégralité du
tableau???

Merci de me répondre

Pascal

















Avatar
Dédé
Heuuu est-ce que c'est vraiment nécessaire de passer par VBA ??

Est-ce que tu pourrait pas faire Menu données, validation et après tu
sélectionne liste où tu aura aupréalable fais une liste des tes options qui
seront "sélectionnables" dans tes cellules ... Du coup tu nommera cette
liste !!

Donc, au moment ou tu sélectionne "liste", pour faire référence à la liste
que tu a nommée, tu appuise sur F3 et tu sélectionne la plage de cellules
que tu a nommée (en cliquant sur son nom ;-)

Il me semble que cela est quand même plus simple ;-))

Après, suivant le contenu que tu à sélectionner, tu pourra faire d'autre
opérations automatiquement ! mais pour cela, je pense pas que le VBA soit
nécessaire ;-)) enfin pour l'instant pas ...

Est-ce que cela te convient ? tu t'en sors ?

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Je bloque sur le fait que je n'ai plus le choix.
C'est à dire que de D6 à D37, je dois pouvoir saisir au choix "En
Vacances"

ou " Présent au bureau" ou etc etc.
Le code que tu m'as donné fonctionne mais je peux là dans le cas précis
saisir que "En Vacances"

"Dédé" a écrit dans le message de news:

Aie aie aie ;-)) Alors c'est même as les 5 % ;-))

L'exemple que je t'ai donné te permet de faire démarrer une macro que si
tu

sélectionne une cellule présente dans une plage donnée ...

Maintenant, tu me dis que tu a déjà fais plusieurs macros donc, je vais
pas

te dire comment ça marche ;-))

Au fait, sur quoi tu bloque ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe
quoi,




pas
besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne
doivent




s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres
plages,




mais
que mes autres macros continuent de s'éxécuter sur l'intégralité
du





tableau???

Merci de me répondre

Pascal





















Avatar
Pascal
C'est ce que j'avais fais, mais la personne qui me demande ce truc tiens
effectivement à avoir par exemple "Présence au bureau" avec un fond vert,
Vacances avec un fond bleu etc etc .(Meilleur Visibilité quand tiré en A3 et
afficher sur un mur, ce qui se défends)
Hors dans les validations tu copies le contenu, mais pas le format. Donc
ensuite, j'ai bien pensé à une MFC, mais comme j'ai 5 ou 6 possibilités, il
me faut 5 ou 6 conditions et les MFC n'en prennent que trois, c'est pour
cela que je pensais passer par VBA
Donc j'écrase tout et je refais par VBA et Validation.
En VBA je vais trouver un truc pour par exemple,
Si la cellule contient Présence au bureau, alors c.Interior.ColorIndex = 6


"Dédé" a écrit dans le message de news:
Orzgf#
Heuuu est-ce que c'est vraiment nécessaire de passer par VBA ??

Est-ce que tu pourrait pas faire Menu données, validation et après tu
sélectionne liste où tu aura aupréalable fais une liste des tes options
qui

seront "sélectionnables" dans tes cellules ... Du coup tu nommera cette
liste !!

Donc, au moment ou tu sélectionne "liste", pour faire référence à la liste
que tu a nommée, tu appuise sur F3 et tu sélectionne la plage de cellules
que tu a nommée (en cliquant sur son nom ;-)

Il me semble que cela est quand même plus simple ;-))

Après, suivant le contenu que tu à sélectionner, tu pourra faire d'autre
opérations automatiquement ! mais pour cela, je pense pas que le VBA soit
nécessaire ;-)) enfin pour l'instant pas ...

Est-ce que cela te convient ? tu t'en sors ?

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Je bloque sur le fait que je n'ai plus le choix.
C'est à dire que de D6 à D37, je dois pouvoir saisir au choix "En
Vacances"

ou " Présent au bureau" ou etc etc.
Le code que tu m'as donné fonctionne mais je peux là dans le cas précis
saisir que "En Vacances"

"Dédé" a écrit dans le message de news:

Aie aie aie ;-)) Alors c'est même as les 5 % ;-))

L'exemple que je t'ai donné te permet de faire démarrer une macro que
si



tu
sélectionne une cellule présente dans une plage donnée ...

Maintenant, tu me dis que tu a déjà fais plusieurs macros donc, je
vais



pas
te dire comment ça marche ;-))

Au fait, sur quoi tu bloque ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok Merci mais dans ton code à quoi correspond [A1:C3]?
Et après THEN comment je fais éxécuter mes Macros?
Je suis encore plus nul que Julie Apparement
"Dédé" a écrit dans le message de news:

Salut Pascal !

Essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(DD, [A1:C3]) Is Nothing Then
'ta macro
End If
End Sub

Par contre, pour les message des inconnus qui débitent n'importe
quoi,




pas
besoin de se rabaisser à leur niveau et de leurs répondre ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:%
Bonjour à tous qui pourrait m'aider?
J'ai un tableau Excel ("A1:R37") avec plusieurs macro qui ne
doivent




s'éxcuter que sur ("D6:D37").
Comment faire pour qu'elles ne s'éxcécutent pas sur les autres
plages,




mais
que mes autres macros continuent de s'éxécuter sur l'intégralité
du





tableau???

Merci de me répondre

Pascal

























1 2 3 4