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

Souci validation avec macro de mefc.

4 réponses
Avatar
Woody
Bonjour tout le monde !

Voici une tite macro qui fonctionne parfaitement pour mettre en couleurs
différentes cellules d'un calendrier en fonction du motif des éventuelles
absences (c=congé, f=formation, m=maladie....), le reste des cellules étant
remplies par du texte quand les personnes sont présentes...
Mon seul souci est que ça ne marche que si l'utilisateur fait [enter] après
chaque saisie du motif d'absence. S'il utilise les flèche de direction, ça
ne marche plus, or j'aimerais bien que ça marche. Par ailleurs, si dans
Outils / Options / Modification on a choisi "déplacer la sélection après
validation" ça ne marche pas non plus...

Auriez-vous des suggestions ?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Macellule As String, Contenu As String

Macellule = ActiveWindow.RangeSelection.Address
Contenu = ActiveCell.Value

With Range(Macellule)

Select Case Contenu

Case "c"
.Interior.ColorIndex = 3
.Interior.Pattern = xlSolid

Case "f"
.Interior.ColorIndex = 50
.Interior.Pattern = xlSolid

Case "m"
.Interior.ColorIndex = 36
.Interior.Pattern = xlSolid

Case "mat"
.Interior.ColorIndex = 40
.Interior.Pattern = xlSolid

Case "syn"
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid

Case "st"
.Interior.ColorIndex = 34
.Interior.Pattern = xlSolid

Case Else
.Interior.ColorIndex = xlNone

End Select

End With

End Sub

Merci d'avance pour votre aide.

Cordialement.

Woody.

4 réponses

Avatar
JB
Bonjour,

Utiliser des listes Données/Validation

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVListeRecupCo uleurPlanning.xls

JB
http://boisgontierjacques.free.fr

On 8 mai, 17:03, "Woody" wrote:
Bonjour tout le monde !

Voici une tite macro qui fonctionne parfaitement pour mettre en couleurs
différentes cellules d'un calendrier en fonction du motif des éventue lles
absences (c=congé, f=formation, m=maladie....), le reste des cell ules étant
remplies par du texte quand les personnes sont présentes...
Mon seul souci est que ça ne marche que si l'utilisateur fait [enter] a près
chaque saisie du motif  d'absence. S'il utilise les flèche de directi on, ça
ne marche plus, or j'aimerais bien que ça marche. Par ailleurs, si dans
Outils / Options / Modification on a choisi "déplacer la sélection ap rès
validation" ça ne marche pas non plus...

Auriez-vous des suggestions ?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Macellule As String, Contenu As String

Macellule = ActiveWindow.RangeSelection.Address
Contenu = ActiveCell.Value

With Range(Macellule)

  Select Case Contenu

  Case "c"
    .Interior.ColorIndex = 3
    .Interior.Pattern = xlSolid

  Case "f"
    .Interior.ColorIndex = 50
    .Interior.Pattern = xlSolid

  Case "m"
    .Interior.ColorIndex = 36
    .Interior.Pattern = xlSolid

  Case "mat"
    .Interior.ColorIndex = 40
    .Interior.Pattern = xlSolid

   Case "syn"
    .Interior.ColorIndex = 5
    .Interior.Pattern = xlSolid

  Case "st"
    .Interior.ColorIndex = 34
    .Interior.Pattern = xlSolid

  Case Else
    .Interior.ColorIndex = xlNone

  End Select

End With

End Sub

Merci d'avance pour votre aide.

Cordialement.

Woody.


Avatar
Woody
"JB" a écrit dans le message de news:

Bonjour,

Utiliser des listes Données/Validation

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVListeRecupCouleurPlanning.xls

JB
http://boisgontierjacques.free.fr

On 8 mai, 17:03, "Woody" wrote:
Bonjour tout le monde !

Voici une tite macro qui fonctionne parfaitement pour mettre en couleurs
différentes cellules d'un calendrier en fonction du motif des éventuelles
absences (c=congé, f=formation, m=maladie....), le reste des cellules
étant
remplies par du texte quand les personnes sont présentes...
Mon seul souci est que ça ne marche que si l'utilisateur fait [enter]
après
chaque saisie du motif d'absence. S'il utilise les flèche de direction, ça
ne marche plus, or j'aimerais bien que ça marche. Par ailleurs, si dans
Outils / Options / Modification on a choisi "déplacer la sélection après
validation" ça ne marche pas non plus...

Auriez-vous des suggestions ?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Macellule As String, Contenu As String

Macellule = ActiveWindow.RangeSelection.Address
Contenu = ActiveCell.Value

With Range(Macellule)

Select Case Contenu

Case "c"
.Interior.ColorIndex = 3
.Interior.Pattern = xlSolid

Case "f"
.Interior.ColorIndex = 50
.Interior.Pattern = xlSolid

Case "m"
.Interior.ColorIndex = 36
.Interior.Pattern = xlSolid

Case "mat"
.Interior.ColorIndex = 40
.Interior.Pattern = xlSolid

Case "syn"
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid

Case "st"
.Interior.ColorIndex = 34
.Interior.Pattern = xlSolid

Case Else
.Interior.ColorIndex = xlNone

End Select

End With

End Sub

Merci d'avance pour votre aide.

Cordialement.

Woody.



Bonsoir JB !

Merci pour ta réponse. Je dois dire qu'une liste de validation est beaucoup
plus élégante que mon interminable macro !!! Je vais l'adopter de ce pas
:-))

Néanmoins une question subsiste : comment forcer une modif quelle qu'elle
soit et appliquer le Select case quand l'utilisateur a l'habitude d'utiliser
les flèches de direction ou quand l'option "déplacer la sélection après
validation" est cochée ? Par ailleurs, la liste de validation peut-elle
toujours remplacer un Select case ?

Merci encore pour ta solution.

Cordialement.

Woody.
Avatar
JB
Bonjour,

Il faut remplacer ActiveCell par Target.

JB


On 8 mai, 18:44, "Woody" wrote:
"JB" a écrit dans le message de news:

Bonjour,

Utiliser des listes Données/Validation

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVListeR...

JBhttp://boisgontierjacques.free.fr

On 8 mai, 17:03, "Woody" wrote:





> Bonjour tout le monde !

> Voici une tite macro qui fonctionne parfaitement pour mettre en couleur s
> différentes cellules d'un calendrier en fonction du motif des évent uelles
> absences (c=congé, f=formation, m=maladie....), le reste des ce llules
> étant
> remplies par du texte quand les personnes sont présentes...
> Mon seul souci est que ça ne marche que si l'utilisateur fait [enter]
> après
> chaque saisie du motif d'absence. S'il utilise les flèche de directio n, ça
> ne marche plus, or j'aimerais bien que ça marche. Par ailleurs, si da ns
> Outils / Options / Modification on a choisi "déplacer la sélection après
> validation" ça ne marche pas non plus...

> Auriez-vous des suggestions ?

> Private Sub Worksheet_Change(ByVal Target As Range)

> Dim Macellule As String, Contenu As String

> Macellule = ActiveWindow.RangeSelection.Address
> Contenu = ActiveCell.Value

> With Range(Macellule)

> Select Case Contenu

> Case "c"
> .Interior.ColorIndex = 3
> .Interior.Pattern = xlSolid

> Case "f"
> .Interior.ColorIndex = 50
> .Interior.Pattern = xlSolid

> Case "m"
> .Interior.ColorIndex = 36
> .Interior.Pattern = xlSolid

> Case "mat"
> .Interior.ColorIndex = 40
> .Interior.Pattern = xlSolid

> Case "syn"
> .Interior.ColorIndex = 5
> .Interior.Pattern = xlSolid

> Case "st"
> .Interior.ColorIndex = 34
> .Interior.Pattern = xlSolid

> Case Else
> .Interior.ColorIndex = xlNone

> End Select

> End With

> End Sub

> Merci d'avance pour votre aide.

> Cordialement.

> Woody.

Bonsoir JB !

Merci pour ta réponse. Je dois dire qu'une liste de validation est beau coup
plus élégante que mon interminable macro !!! Je vais l'adopter de ce pas
:-))

Néanmoins une question subsiste : comment forcer une modif quelle qu'el le
soit et appliquer le Select case quand l'utilisateur a l'habitude d'utili ser
les flèches de direction ou quand l'option "déplacer la sélection a près
validation" est cochée ? Par ailleurs, la liste de validation peut-elle
toujours remplacer un Select case ?

Merci encore pour ta solution.

Cordialement.

Woody.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Woody
re,

Encore merci mais si je remplace ActiveCell par Target c'est la cellule dans
laquelle je vais qui se met en couleur et non pas celle que je quitte... la
cible et non la source.

J'ai essayé plein de trucs, en vain. Il faut dire que je je connais très mal
VBA et je ne suis pas très douée....

Merci encore.

Cordialement.

Woody.

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

Bonjour,

Il faut remplacer ActiveCell par Target.

JB


On 8 mai, 18:44, "Woody" wrote:
"JB" a écrit dans le message de news:

Bonjour,

Utiliser des listes Données/Validation

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVListeR...

JBhttp://boisgontierjacques.free.fr

On 8 mai, 17:03, "Woody" wrote:





> Bonjour tout le monde !

> Voici une tite macro qui fonctionne parfaitement pour mettre en couleurs
> différentes cellules d'un calendrier en fonction du motif des
> éventuelles
> absences (c=congé, f=formation, m=maladie....), le reste des cellules
> étant
> remplies par du texte quand les personnes sont présentes...
> Mon seul souci est que ça ne marche que si l'utilisateur fait [enter]
> après
> chaque saisie du motif d'absence. S'il utilise les flèche de direction,
> ça
> ne marche plus, or j'aimerais bien que ça marche. Par ailleurs, si dans
> Outils / Options / Modification on a choisi "déplacer la sélection après
> validation" ça ne marche pas non plus...

> Auriez-vous des suggestions ?

> Private Sub Worksheet_Change(ByVal Target As Range)

> Dim Macellule As String, Contenu As String

> Macellule = ActiveWindow.RangeSelection.Address
> Contenu = ActiveCell.Value

> With Range(Macellule)

> Select Case Contenu

> Case "c"
> .Interior.ColorIndex = 3
> .Interior.Pattern = xlSolid

> Case "f"
> .Interior.ColorIndex = 50
> .Interior.Pattern = xlSolid

> Case "m"
> .Interior.ColorIndex = 36
> .Interior.Pattern = xlSolid

> Case "mat"
> .Interior.ColorIndex = 40
> .Interior.Pattern = xlSolid

> Case "syn"
> .Interior.ColorIndex = 5
> .Interior.Pattern = xlSolid

> Case "st"
> .Interior.ColorIndex = 34
> .Interior.Pattern = xlSolid

> Case Else
> .Interior.ColorIndex = xlNone

> End Select

> End With

> End Sub

> Merci d'avance pour votre aide.

> Cordialement.

> Woody.

Bonsoir JB !

Merci pour ta réponse. Je dois dire qu'une liste de validation est
beaucoup
plus élégante que mon interminable macro !!! Je vais l'adopter de ce pas
:-))

Néanmoins une question subsiste : comment forcer une modif quelle qu'elle
soit et appliquer le Select case quand l'utilisateur a l'habitude
d'utiliser
les flèches de direction ou quand l'option "déplacer la sélection après
validation" est cochée ? Par ailleurs, la liste de validation peut-elle
toujours remplacer un Select case ?

Merci encore pour ta solution.

Cordialement.

Woody.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -