Problème de code VBA

Bonjour,

J'ai trouver un code VBA sur le net afin de pouvoir mettre 6 mises en formes conditionnelles soit une pour NORD EST, SUD OUEST, RAA, IDF, SUD, OUEST.

Il fonctionne mais le problème c'est que lorsque je veux glisser une cellule excel m'affiche une fenêtre où est inscrit :

Erreur d'execution '13'

Incompatibilité de type

Fin Débogage Aide

Je ne comprend pas ce que cela signifie. Il me surligne en jaune la phrase que je vous ai souligné.

Voici mon code VBA.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Select Case UCase(Target) 'UCASE = convertion de la frappe en majuscule

Case "RAA"

With Selection.Interior

.ColorIndex = 7

.Pattern = xlSolid

End With

Case "IDF"

With Selection.Interior

.ColorIndex = 8

.Pattern = xlSolid

End With

Case "NORD EST"

With Selection.Interior

.ColorIndex = 3

.Pattern = xlSolid

End With

Case "SUD"

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

Case "SUD OUEST"

With Selection.Interior

.ColorIndex = 14

.Pattern = xlSolid

End With

Case "OUEST"

With Selection.Interior

.ColorIndex = 18

.Pattern = xlSolid

End With

End Select

End Sub

Merci de m'aider

Bonjour,

lorsque je veux glisser une cellule excel...

Que veux-tu dire par là ?

Sinon essaie sans UCASE, il est de toute façon repris dans chaque CASE.

Select Case Target 

A te relire

Dan

Vous trouverez ci-joint mon tableau avec quelques explications plus clair.

https://www.excel-pratique.com/~files/doc2/bXqWTMODELE_pr_Forum.xls

Merci

Re,

ok je vois de quoi tu parles.

Ton pb vient du TARGET qui n'accepte pas que tu sélectionnes plusieurs cellules.

De plus, si tu veux appliquer le même code dans chaque feuille, il faut procéder autrement. Fais donc ceci :

  • Efface tes macros que tu as placées dans tes feuilles
  • Mets la macro ci-dessous dans THISWORKBOOK
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A2:A65536")) Is Nothing Then
On Error Resume Next
Select Case UCase(Target) 'UCASE = convertion de la frappe en majuscule
Case "RAA"
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
End With
Case "IDF"
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
End With
Case "NORD EST"
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Case "SUD"
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Case "SUD OUEST"
With Selection.Interior
.ColorIndex = 14
.Pattern = xlSolid
End With
Case "OUEST"
With Selection.Interior
.ColorIndex = 18
.Pattern = xlSolid
End With
End Select
End If
End Sub

- Enregistre ton fichier et fais un essai.

Amicalement

Dan

J'ai fais ce qu vous m'avez dit.

Alors effectivement cela fonctionne seulement il y a encore un petit souci.

Si je me met dans la cellule A2 où apparait NORD EST, je dois l'effacer puis le retaper et quand je fais ceci et que je fais ENTRER la couleur se met sur la cellule du dessous et non sur la cellule concernée.

En ce qui concerne les autres feuilles le code fonctionne mais avec le même problème cité ci-dessus.

re,

dans toutes les instructions CASE ... remplace "SELECTION" par "TARGET"

Amicalement

Dan

PS : si ton pb est terminé, n'oublie pas de mettre RESOLU sur le fil. Si pb explication ici -> https://www.excel-pratique.com/forum/viewtopic.php?t=13

Merci de ta participation

C'est impecable merci beaucoup je crois que je ne suis pas faite pour le code VBA

Bonne journée à vous

Très amicalement

Tatiana

Rechercher des sujets similaires à "probleme code vba"