Bonjour Rai,
Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas
protégée.
Si je protège la feuille tout en laissant des cellules non-protégées, je
reçois un message d'erreur lorsque je clique sur une cellule non-protégée.
"Run-time error 1004"
"Unable to set the color property of the interior class"
Merci à l'avance!
"Rai" wrote:
> BEAUCHAND a écrit :
> > Bonjour à tous,
> >
> > Je travail avec Excel 2000 et j'utilise le code suivant pour colorer en
> > jaune la cellule active:
> >
> > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> > Cells.Interior.ColorIndex = xlNone
> > Target.Interior.ColorIndex = 6
> > End Sub
> >
> > Le problème c'est que si une cellule est déjà colorée de la même couleur ou
> > d'une autre couleur, la couleur originale disparait lorsque cette cellule
> > n'est plus active.
> > Y -a-t-il un moyen de remettre la couleur originale lorsque la cellule n'est
> > plus sélectionnée?
> >
> > Merci à l'avance!
> >
> Bonjour,
>
> Oui, il faut mémoriser ta couleur de cellule précédente.
>
> Public Couleur As Integer
> Public Adr As String
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> If Adr <> "" Then
> Range(Adr).Interior.ColorIndex = Couleur
> End If
> Adr = Target.Address
> Couleur = Target.Interior.ColorIndex
> Target.Interior.ColorIndex = 6
> End Sub
>
> Cela convient ?
>
> Cordialement
>
> Rai
>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rai
Bonjour Rai, Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas protégée. Si je protège la feuille tout en laissant des cellules non-protégées, je reçois un message d'erreur lorsque je clique sur une cellule non-protégée. "Run-time error 1004" "Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications : Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet de n'agir que sur la cellule active, et par conséquent de supprimer les problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la protection - remplacer par activesheet.unprotect("toto") si la feuille est protégée par un mot de passe (Toto en l'occurence) la dernière ligne remet en place la protection - remplacer par ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non, donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Unprotect
If Adr <> "" Then Range(Adr).Interior.ColorIndex = Couleur End If Adr = ActiveCell.Address Couleur = ActiveCell.Interior.ColorIndex ActiveCell.Interior.ColorIndex = 6
ActiveSheet.Protect Password:="Toto" End Sub
C'est OK ?
Cordialement
Rai
Bonjour Rai,
Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas
protégée.
Si je protège la feuille tout en laissant des cellules non-protégées, je
reçois un message d'erreur lorsque je clique sur une cellule non-protégée.
"Run-time error 1004"
"Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications :
Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet
de n'agir que sur la cellule active, et par conséquent de supprimer les
problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la
protection - remplacer par activesheet.unprotect("toto") si la feuille
est protégée par un mot de passe (Toto en l'occurence)
la dernière ligne remet en place la protection - remplacer par
ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non,
donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer
Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect
If Adr <> "" Then
Range(Adr).Interior.ColorIndex = Couleur
End If
Adr = ActiveCell.Address
Couleur = ActiveCell.Interior.ColorIndex
ActiveCell.Interior.ColorIndex = 6
Bonjour Rai, Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas protégée. Si je protège la feuille tout en laissant des cellules non-protégées, je reçois un message d'erreur lorsque je clique sur une cellule non-protégée. "Run-time error 1004" "Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications : Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet de n'agir que sur la cellule active, et par conséquent de supprimer les problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la protection - remplacer par activesheet.unprotect("toto") si la feuille est protégée par un mot de passe (Toto en l'occurence) la dernière ligne remet en place la protection - remplacer par ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non, donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Unprotect
If Adr <> "" Then Range(Adr).Interior.ColorIndex = Couleur End If Adr = ActiveCell.Address Couleur = ActiveCell.Interior.ColorIndex ActiveCell.Interior.ColorIndex = 6
ActiveSheet.Protect Password:="Toto" End Sub
C'est OK ?
Cordialement
Rai
BEAUCHAND
Merci Rai, tout fonctionne à merveille.
Bonne journée!
"Rai" wrote:
Bonjour Rai, Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas protégée. Si je protège la feuille tout en laissant des cellules non-protégées, je reçois un message d'erreur lorsque je clique sur une cellule non-protégée. "Run-time error 1004" "Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications : Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet de n'agir que sur la cellule active, et par conséquent de supprimer les problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la protection - remplacer par activesheet.unprotect("toto") si la feuille est protégée par un mot de passe (Toto en l'occurence) la dernière ligne remet en place la protection - remplacer par ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non, donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Unprotect
If Adr <> "" Then Range(Adr).Interior.ColorIndex = Couleur End If Adr = ActiveCell.Address Couleur = ActiveCell.Interior.ColorIndex ActiveCell.Interior.ColorIndex = 6
ActiveSheet.Protect Password:="Toto" End Sub
C'est OK ?
Cordialement
Rai
Merci Rai, tout fonctionne à merveille.
Bonne journée!
"Rai" wrote:
Bonjour Rai,
Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas
protégée.
Si je protège la feuille tout en laissant des cellules non-protégées, je
reçois un message d'erreur lorsque je clique sur une cellule non-protégée.
"Run-time error 1004"
"Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications :
Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet
de n'agir que sur la cellule active, et par conséquent de supprimer les
problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la
protection - remplacer par activesheet.unprotect("toto") si la feuille
est protégée par un mot de passe (Toto en l'occurence)
la dernière ligne remet en place la protection - remplacer par
ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non,
donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer
Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect
If Adr <> "" Then
Range(Adr).Interior.ColorIndex = Couleur
End If
Adr = ActiveCell.Address
Couleur = ActiveCell.Interior.ColorIndex
ActiveCell.Interior.ColorIndex = 6
Bonjour Rai, Le code que tu m'as donné fonctionne très bien lorsque la feuille n'est pas protégée. Si je protège la feuille tout en laissant des cellules non-protégées, je reçois un message d'erreur lorsque je clique sur une cellule non-protégée. "Run-time error 1004" "Unable to set the color property of the interior class"
Merci à l'avance!
Bonjour,
2 Modifications : Utilisation de 'ActiveCell' au lieu de 'Target', ce qui a pour effet de n'agir que sur la cellule active, et par conséquent de supprimer les problèmes qui apparaissent si l'on sélectionne une plage de cellules.
Gestion de la protection de la feuille : la 1ere ligne supprime la protection - remplacer par activesheet.unprotect("toto") si la feuille est protégée par un mot de passe (Toto en l'occurence) la dernière ligne remet en place la protection - remplacer par ActiveSheet.Protect Password:="Toto" si besoin.
ATTENTION : ce code ne vérifie pas si la feuille est protégée ou non, donc à n'utiliser que sur une feuille qui sera protégée...
Public Couleur As Integer Public Adr As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Unprotect
If Adr <> "" Then Range(Adr).Interior.ColorIndex = Couleur End If Adr = ActiveCell.Address Couleur = ActiveCell.Interior.ColorIndex ActiveCell.Interior.ColorIndex = 6