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

MacroAuto sur toutes les cellules d'une sélection après CtrlC-Ct rl

2 réponses
Avatar
Lycaon
Salut à tous,

J'ai écrit (avec l'aide de ce forum d'ailleurs) une macro Change qui modifie
la couleur du fond en fonction de la valeur de la cellule. Jusque là tout va
bien...
PB : quand je fais un copier coller, la macro ne s'éxécute que sur la
première cellule de la sélection et je dois faire "semblant" de modifier le
contenu des autres cellules pour que la macro réagisse (ce qui revient à
faire le travail de la macro).

Comment faire pour qu'elle s'éxécute sur toutes les cellules ?

Voilà mon code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Selection.Count > 1 Then Set Target = ActiveCell (j'avais une erreur 13
donc j'ai rajouté cette ligne et c'est celle qui pose problème)

Select Case Target.Value
Case Is = "V.High"
...
Target.Interior.ColorIndex = 2
End Select
End Sub

Merci à tous

Lycaon

2 réponses

Avatar
Daniel
Bonjour.
essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case "V.High"
c.Interior.ColorIndex = 2
End Select
Next c
End Sub

Cordialement.
Daniel
"Lycaon" a écrit dans le message de news:

Salut à tous,

J'ai écrit (avec l'aide de ce forum d'ailleurs) une macro Change qui
modifie
la couleur du fond en fonction de la valeur de la cellule. Jusque là tout
va
bien...
PB : quand je fais un copier coller, la macro ne s'éxécute que sur la
première cellule de la sélection et je dois faire "semblant" de modifier
le
contenu des autres cellules pour que la macro réagisse (ce qui revient à
faire le travail de la macro).

Comment faire pour qu'elle s'éxécute sur toutes les cellules ?

Voilà mon code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Selection.Count > 1 Then Set Target = ActiveCell (j'avais une erreur
13
donc j'ai rajouté cette ligne et c'est celle qui pose problème)

Select Case Target.Value
Case Is = "V.High"
...
Target.Interior.ColorIndex = 2
End Select
End Sub

Merci à tous

Lycaon



Avatar
Lycaon
Merci pour ta réponse.
Sur les conseils d'une autre personne, voilà comment j'ai résolu le
problème (après avoir essayé ta méthode qui fonctionne mais qui
n'est plus fonctionnelle en modification simple sur la page).
J'espère que ça pourra servir à d'autres.


Private Sub Worksheet_Change(ByVal Target As Range)
Dim UneCell As Range

If Selection.Count > 1 Then
For Each UneCell In Selection
Call TesteCellule(UneCell)
Next
Else
Call TesteCellule(Target)
End If
End Sub

Avec la macro TesteCellule qui réalise les opérations sur une seule
cellule

@ bientôt

Lycaon



Bonjour.
essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case "V.High"
c.Interior.ColorIndex = 2
End Select
Next c
End Sub

Cordialement.
Daniel
"Lycaon" a écrit dans le message de news:

Salut à tous,

J'ai écrit (avec l'aide de ce forum d'ailleurs) une macro Change qui
modifie
la couleur du fond en fonction de la valeur de la cellule. Jusque là tout
va
bien...
PB : quand je fais un copier coller, la macro ne s'éxécute que sur la
première cellule de la sélection et je dois faire "semblant" de mod ifier
le
contenu des autres cellules pour que la macro réagisse (ce qui revien t à
faire le travail de la macro).

Comment faire pour qu'elle s'éxécute sur toutes les cellules ?

Voilà mon code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Selection.Count > 1 Then Set Target = ActiveCell (j'avais une err eur
13
donc j'ai rajouté cette ligne et c'est celle qui pose problème)

Select Case Target.Value
Case Is = "V.High"
...
Target.Interior.ColorIndex = 2
End Select
End Sub

Merci à tous

Lycaon