OVH Cloud OVH Cloud

MEFC : Erreur d'incompatiilité de type.

6 réponses
Avatar
BadAcid
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.

6 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 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.


Avatar
Sanaell
J'utilise aussi les MEFC
parfois j'aimerais avoir +3 conditions

je viens de lire ton truc mais comment l'utiliser
comment l'appliquer au tableau? juste sur une partie
et surtout est ce que en faisant copier coller des cases, est ce que cela
fonctionne toujours ?


Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.







Avatar
Daniel
Tu remplaces ta macro par la mienne.
Daniel
"Sanaell" a écrit dans le message de
news:
J'utilise aussi les MEFC
parfois j'aimerais avoir +3 conditions

je viens de lire ton truc mais comment l'utiliser
comment l'appliquer au tableau? juste sur une partie
et surtout est ce que en faisant copier coller des cases, est ce que cela
fonctionne toujours ?


Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en
forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que
je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.










Avatar
BadAcid
Ouais en effet c'est pas mal , il reste cependant un tout petit prolème.
En fait maintenant lorsque je fais un recopier vers, ben il me mets
systematiquement la couleur de la dernière case. Y aurait-il moyen qu'il me
prenne la couleur en fonction de la valeur de chaque case?

(si je ne suis pas assez clair dis-le...)


Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.







Avatar
Daniel
C'est mieux comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Var = c.Address
c.Select
Select Case c.Value
Case 0: c.Interior.ColorIndex = 0
Case 1: c.Interior.ColorIndex = 1
Case 2: c.Interior.ColorIndex = 2
Case 3: c.Interior.ColorIndex = 3
Case 4: c.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Ouais en effet c'est pas mal , il reste cependant un tout petit prolème.
En fait maintenant lorsque je fais un recopier vers, ben il me mets
systematiquement la couleur de la dernière case. Y aurait-il moyen qu'il
me
prenne la couleur en fonction de la valeur de chaque case?

(si je ne suis pas assez clair dis-le...)


Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en
forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou que
je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.









Avatar
Daniel
Pas la forme, aujourd'hui. Deux lignes en trop :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: c.Interior.ColorIndex = 0
Case 1: c.Interior.ColorIndex = 1
Case 2: c.Interior.ColorIndex = 2
Case 3: c.Interior.ColorIndex = 3
Case 4: c.Interior.ColorIndex = 4
End Select
Next c
End Sub

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

C'est mieux comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Var = c.Address
c.Select
Select Case c.Value
Case 0: c.Interior.ColorIndex = 0
Case 1: c.Interior.ColorIndex = 1
Case 2: c.Interior.ColorIndex = 2
Case 3: c.Interior.ColorIndex = 3
Case 4: c.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Ouais en effet c'est pas mal , il reste cependant un tout petit prolème.
En fait maintenant lorsque je fais un recopier vers, ben il me mets
systematiquement la couleur de la dernière case. Y aurait-il moyen qu'il
me
prenne la couleur en fonction de la valeur de chaque case?

(si je ne suis pas assez clair dis-le...)


Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
Select Case c.Value
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
Next c
End Sub

Cordialement.
Daniel
"BadAcid" a écrit dans le message de
news:
Bonjour,
J'utilise le code suivant dans une feuille pour faire de la mise en
forme
conditionelle avec plus de 3 conditions:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case 0: Target.Interior.ColorIndex = 0
Case 1: Target.Interior.ColorIndex = 1
Case 2: Target.Interior.ColorIndex = 2
Case 3: Target.Interior.ColorIndex = 3
Case 4: Target.Interior.ColorIndex = 4
End Select
End Sub



Ca fonctionne pas mal, sauf quand je selectionne plusieurs cases ou
que je
fais un recopier vers le bas ou a droite.

Pouvez vous me guider pour eviter ce genre de message d'erreur?

Merci d'avance.