MacroAuto sur toutes les cellules d'une sélection après CtrlC-Ct rl
2 réponses
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
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
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
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" <Lycaon@discussions.microsoft.com> a écrit dans le message de news:
1528C284-5E89-42A8-9768-DF6B6EF0F22B@microsoft.com...
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
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
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
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" <Lycaon@discussions.microsoft.com> a écrit dans le message de news:
1528C284-5E89-42A8-9768-DF6B6EF0F22B@microsoft.com...
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 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