OVH Cloud OVH Cloud

aide a mon initiation vba

5 réponses
Avatar
Andrée et Romuald
bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes conditionnelles
et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et (et
c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour cela
qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald

5 réponses

Avatar
Daniel
Bonjour.
1. parce que ta macro est prévue pour traiter une cellule à la fois. Si elle
se déclenche alors que "target" représente, l'instruction :
If [Target] = "noir" Then
va planter.
Il faut écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, c As Range
Set Plage = Intersect(Target, Range("b20:b40"))
If Plage Is Nothing Then Exit Sub
For Each c In Plage
If c.Value = "noir" Then
c.Cells(1, 2).Interior.ColorIndex = 4
End If
Next c
End Sub

2. la macro ne se déclenche que pour une saisie manuelle. Dans ce cas,
utilise plutôt la mise en forme conditionnelle.
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes
conditionnelles et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et (et
c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour
cela qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald





Avatar
Andrée et Romuald
bonjour
merci pour les explications
je vais essyer
bonne journée
"Daniel" a écrit dans le message de news:

Bonjour.
1. parce que ta macro est prévue pour traiter une cellule à la fois. Si
elle se déclenche alors que "target" représente, l'instruction :
If [Target] = "noir" Then
va planter.
Il faut écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, c As Range
Set Plage = Intersect(Target, Range("b20:b40"))
If Plage Is Nothing Then Exit Sub
For Each c In Plage
If c.Value = "noir" Then
c.Cells(1, 2).Interior.ColorIndex = 4
End If
Next c
End Sub

2. la macro ne se déclenche que pour une saisie manuelle. Dans ce cas,
utilise plutôt la mise en forme conditionnelle.
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes
conditionnelles et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et (et
c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour
cela qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald









Avatar
Andrée et Romuald
re bojour
je viens de faire quelques essais avec ce code mais rien ne se passe ???
pourquoi ?


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

Bonjour.
1. parce que ta macro est prévue pour traiter une cellule à la fois. Si
elle se déclenche alors que "target" représente, l'instruction :
If [Target] = "noir" Then
va planter.
Il faut écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, c As Range
Set Plage = Intersect(Target, Range("b20:b40"))
If Plage Is Nothing Then Exit Sub
For Each c In Plage
If c.Value = "noir" Then
c.Cells(1, 2).Interior.ColorIndex = 4
End If
Next c
End Sub

2. la macro ne se déclenche que pour une saisie manuelle. Dans ce cas,
utilise plutôt la mise en forme conditionnelle.
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes
conditionnelles et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et (et
c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour
cela qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald









Avatar
Daniel
Bonjour.
Regarde le classeur à l'adresse :
http://cjoint.com/?dDkpBDKtWl
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

re bojour
je viens de faire quelques essais avec ce code mais rien ne se passe ???
pourquoi ?


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

Bonjour.
1. parce que ta macro est prévue pour traiter une cellule à la fois. Si
elle se déclenche alors que "target" représente, l'instruction :
If [Target] = "noir" Then
va planter.
Il faut écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, c As Range
Set Plage = Intersect(Target, Range("b20:b40"))
If Plage Is Nothing Then Exit Sub
For Each c In Plage
If c.Value = "noir" Then
c.Cells(1, 2).Interior.ColorIndex = 4
End If
Next c
End Sub

2. la macro ne se déclenche que pour une saisie manuelle. Dans ce cas,
utilise plutôt la mise en forme conditionnelle.
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes
conditionnelles et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et (et
c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour
cela qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald













Avatar
Andrée et Romuald
ok merci pour l'exemple je comprends mieux mon erreur

merci
bonne journée
"Daniel" a écrit dans le message de news:

Bonjour.
Regarde le classeur à l'adresse :
http://cjoint.com/?dDkpBDKtWl
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de news:

re bojour
je viens de faire quelques essais avec ce code mais rien ne se passe ???
pourquoi ?


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

Bonjour.
1. parce que ta macro est prévue pour traiter une cellule à la fois. Si
elle se déclenche alors que "target" représente, l'instruction :
If [Target] = "noir" Then
va planter.
Il faut écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, c As Range
Set Plage = Intersect(Target, Range("b20:b40"))
If Plage Is Nothing Then Exit Sub
For Each c In Plage
If c.Value = "noir" Then
c.Cells(1, 2).Interior.ColorIndex = 4
End If
Next c
End Sub

2. la macro ne se déclenche que pour une saisie manuelle. Dans ce cas,
utilise plutôt la mise en forme conditionnelle.
Cordialement.
Daniel
"Andrée et Romuald" a écrit dans le message de
news:
bonjour a toutes et a tous

voici mes 2 petits soucis :

j'ai une applicationavec 2 feuilles de calcul,une des formes
conditionnelles et l'autre est une feuille de calcul normal

1 : lorsque je selectionne une cellule, que j'y introduis une valeur
correcte, la cellule change de couleur (parfait)
mais lorsque je veux tirer sur la cellule(pour y mettre la valeur
incrementee) j'obtiens un message d'erreur. pourquoi ou est-ce normal ?
comment remedier a se premier souci ?.

2:sur l'autre feuille de la meme application, je voudrais que, si
j'introduis un valeur dans une cellule quelconque, celle-ci est
retransmise(ok) sur la premiere feuille (voir le premier probleme)et
(et c'est la le souci)que cette cellule change de couleur si la valeur
correspond a la formule conditionnelle.

Je suis toujours occupe a essayer certains"trucs" sur vba et c'est pour
cela qu'il y a 2 problemes bien distincts

j'espere etre clair et pour info voici mon code pour la mise en forme
conditionnelle si cela peut vous aider


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b20:b40")) Is Nothing Then Exit Sub
If [Target] = "noir" Then
Target.Cells(1, 2).Interior.ColorIndex = 4 Exit Sub
End If
etc

end sub

bonne soiree
merci a l'avance pour vos precieuses aide
andree et romuald