OVH Cloud OVH Cloud

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
Dédé
OK ...
Alors si tu veux, je peux t'envoyer un exemple ;-))

Envoie-moi une adresse valide dans ma BAL et je te répondrais avec en pièce
jointe quelque exemples zippés ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
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





























Avatar
Pascal
Je veux bien parce que là je ne m'en sors pas

Merci,
"Dédé" a écrit dans le message de news:
#not$
OK ...
Alors si tu veux, je peux t'envoyer un exemple ;-))

Envoie-moi une adresse valide dans ma BAL et je te répondrais avec en
pièce

jointe quelque exemples zippés ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
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

































Avatar
Dédé
Ben en fait. l'exemple tien juste sur ce qui suit :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As Range)
If Not Intersect(DD, [A4]) Is Nothing Then
Select Case [A4]
Case Is = "toto"
ActiveCell.Interior.ColorIndex = 6
Case Is = "tutu"
ActiveCell.Interior.ColorIndex = 7
Case Is = "titi"
ActiveCell.Interior.ColorIndex = 8
Case Is = "tata"
ActiveCell.Interior.ColorIndex = 9
Case Is = "momo"
ActiveCell.Interior.ColorIndex = 10
Case Is = "mama"
ActiveCell.Interior.ColorIndex = 11
Case Is = "mimi"
ActiveCell.Interior.ColorIndex = 12
End Select
End If
End Sub

En combinant cela avec les validations tu devrait t'en sortir !

Dans cet exemple il n'y a que la couleur (mise au hazard !) qui change
d'après le contenu de la cellule concernée mais tu peux faire changer aussi
la couleur de la police en utilisant par exemple ceci :
Case Is = "toto"
ActiveCell.Interior.ColorIndex = 6
ActiveCell.Font.ColorIndex = 33

T'arrive à t'en sortir avec tout ça ??

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Dédé" a écrit dans le message de
news:%23not$
OK ...
Alors si tu veux, je peux t'envoyer un exemple ;-))

Envoie-moi une adresse valide dans ma BAL et je te répondrais avec en
pièce

jointe quelque exemples zippés ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
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

































Avatar
Pascal
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca marche
pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As Range)
If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et c'est
celle qui recoit la liste de validation. Qui se trouve sur une feuille DATA
avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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é
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est une
erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton classeur en
BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de monde
qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As Range)
If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et c'est
celle qui recoit la liste de validation. Qui se trouve sur une feuille
DATA

avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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
Pascal
Ok je te l'envoie Zippé, mais à quelle adresse ?
"Dédé" a écrit dans le message de news:
OCg$
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est une
erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton classeur
en

BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de monde
qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As Range)
If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et
c'est


celle qui recoit la liste de validation. Qui se trouve sur une feuille
DATA

avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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é
re ...

regarde ma signature !! mon adresse et fait ce qui est demandé ;-))

Pas compliqué !!

Et si tu trouve, merci de ne pas la divulguer sur le NG en clair ;-))

Salutations

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Ok je te l'envoie Zippé, mais à quelle adresse ?
"Dédé" a écrit dans le message de news:
OCg$
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est une
erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton
classeur


en
BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de
monde


qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As
Range)



If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et
c'est


celle qui recoit la liste de validation. Qui se trouve sur une feuille
DATA

avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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é
Salut Pascal !
j'ai bien reçu ton classeur mais je voudrais juste savoir sur quelle feuille
il faut faire la mise en forme contionnelle ...

J'ai regardé mais il me semble qu'il n'y a pas de feuille où la plage D6:D36
pourrait en être la référence ...

J'attends avec impatience de tes nouvelles ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1

Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"Pascal" a écrit dans le message de
news:
Ok je te l'envoie Zippé, mais à quelle adresse ?
"Dédé" a écrit dans le message de news:
OCg$
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est une
erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton
classeur


en
BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de
monde


qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As
Range)



If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et
c'est


celle qui recoit la liste de validation. Qui se trouve sur une feuille
DATA

avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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é
Salut !

Ben je bloque pour un truc qui doit être tout bête ...

Voici le code en question ...
Private Sub Worksheet_SelectionChange(ByVal DD As Range)
If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case DD
Case Is = ""
ActiveCell.Interior.ColorIndex = 0
ActiveCell.Font.ColorIndex = 0
Case Is = "Presbur"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 7
Case Is = "CONG"
ActiveCell.Interior.ColorIndex = 6
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 39
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 35
End Select
End If
End Sub

Le problème c'est que après validation, vu que ça va dans la cellule en
dessous, ben c'est sur cette cellule que la macro s'effectue et non pas sur
la cellule d'origine ...
Donc, pour que cela fonctione, il faut revenir en arrière et pi là ça marche
...

Si quelqu'un à une solution, je suis aussi prenneur ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1

Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"Pascal" a écrit dans le message de
news:
Ok je te l'envoie Zippé, mais à quelle adresse ?
"Dédé" a écrit dans le message de news:
OCg$
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est une
erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton
classeur


en
BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de
monde


qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As
Range)



If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et
c'est


celle qui recoit la liste de validation. Qui se trouve sur une feuille
DATA

avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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
Pascal
Merci ,
J'arrive juste donc , je découvre tes messages mainteant.
Mais le truc que tu décris, cela me l'a fait ce matin sur le fichier que tu
m'avais envoyé.
Ce que je ne comprends c'est poourquoi ca affecte la cellule du dessous?????
"Dédé" a écrit dans le message de news:

Salut !

Ben je bloque pour un truc qui doit être tout bête ...

Voici le code en question ...
Private Sub Worksheet_SelectionChange(ByVal DD As Range)
If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case DD
Case Is = ""
ActiveCell.Interior.ColorIndex = 0
ActiveCell.Font.ColorIndex = 0
Case Is = "Presbur"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 7
Case Is = "CONG"
ActiveCell.Interior.ColorIndex = 6
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 39
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 35
End Select
End If
End Sub

Le problème c'est que après validation, vu que ça va dans la cellule en
dessous, ben c'est sur cette cellule que la macro s'effectue et non pas
sur

la cellule d'origine ...
Donc, pour que cela fonctione, il faut revenir en arrière et pi là ça
marche

...

Si quelqu'un à une solution, je suis aussi prenneur ;-))

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1

Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"Pascal" a écrit dans le message de
news:
Ok je te l'envoie Zippé, mais à quelle adresse ?
"Dédé" a écrit dans le message de news:
OCg$
Bom est-ce que tu a reçu mon exemple dans ta BAL !!

C'est la base et normalement tu devrait y arriver aevc cela !!!

Maintenant, il faut faire attention à la casse, peut-être que c'est
une



erreur qui vient de là ...

Autrement, si c'est pas trop confidentiel, tu peux m'envoyer ton
classeur


en
BAL perso mais n'oublie pas de me mettre un mot car j'ai pas mal de
monde


qui m'envoie plein de truc des NG et je sais plus vraiment à quoi cela
corresponds ;-))

Merci de ta prochaine réponse !

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Pascal" a écrit dans le message de
news:
Bon j'ai copié ton code, mais bon je dois être réellement nul car ca
marche

pas en appliquant mes références.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal DD As
Range)



If Not Intersect(DD, [D6:D36]) Is Nothing Then
Select Case [D6:D36]
Case Is = "PRESBUR"
ActiveCell.Interior.ColorIndex = 40
Case Is = "FORM"
ActiveCell.Interior.ColorIndex = 7
Case Is = "VAC"
ActiveCell.Interior.ColorIndex = 8
Case Is = "RVEXT"
ActiveCell.Interior.ColorIndex = 9
Case Is = "CONG"
End Select
End If
End Sub

DD correspond à quoi?
D6:D36 est la plage de données où je dois appliquer les couleurs et
c'est


celle qui recoit la liste de validation. Qui se trouve sur une
feuille




DATA
avec nom défini= Etat

Si j'y arrive j'en aurais appris plus en 3 heures qu'en 6 mois
Pascal

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

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





































1 2 3 4