Erreur exécution '13' incompatibilité de type

diane

XLDnaute Nouveau
Bonjour,

Je ne connais pas la programmation VBA, mais j'en ai eu besoin pour créer une macro, j'ai donc bêtement copié-collé un code trouver sur internet.
Ma macro fonctionne mais le message d'erreur exécution '13' incompatibilité de type apparaît souvent, je ne sais pas pourquoi.
De plus j'aimerai appliquer ma macro à l'ensemble des feuilles de mon classeur mais je n'y arrive pas.

voici ma macro:

Private Sub Worksheet_Change(ByVal Target As Range)
For Each ws In Worksheets
Chaine = Target.Value
With Target.Interior
If InStr(Chaine, "DS") Then .ColorIndex = 4
If InStr(Chaine, "FDS") Then .ColorIndex = 45
If InStr(Chaine, "EE") Then .ColorIndex = 7
If InStr(Chaine, "Echo") Then .ColorIndex = 6
If InStr(Chaine, "Bilan") Then .ColorIndex = 3
If InStr(Chaine, "CS") Then .ColorIndex = 8
End With
End Sub


merci de bien vouloir m'aider, c'est un dossier de boulot urgent.

diane
 

pierrejean

XLDnaute Barbatruc
Re : Erreur exécution '13' incompatibilité de type

Bonjour diane

Et bienvenue sur XLD

A tester : mettre dans le module Thisworkbook (pour etre appliquée a toutes les feuilles) :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' si plus d'une cellule concernée sortir
If Target.Count > 1 Then Exit Sub
Chaine = Target.Value
With Target.Interior
If InStr(Chaine, "DS") Then .ColorIndex = 4
If InStr(Chaine, "FDS") Then .ColorIndex = 45
If InStr(Chaine, "EE") Then .ColorIndex = 7
If InStr(Chaine, "Echo") Then .ColorIndex = 6
If InStr(Chaine, "Bilan") Then .ColorIndex = 3
If InStr(Chaine, "CS") Then .ColorIndex = 8
End With
End Sub
 

diane

XLDnaute Nouveau
Re : Erreur exécution '13' incompatibilité de type

Merci monsieur de me répondre si vite.
Je n'y connais rien à VBA, je ne sais pas ce qu'est le module Thisworkbook, et surtout comment y accéder dans VBA.
J'ai copié le code que vous venez de me donner mais il ne fonctionne pas....

diane
 

diane

XLDnaute Nouveau
Re : Erreur exécution '13' incompatibilité de type

C'est super, ça fonctionne! Je n'aurais plus de message d'erreur 13?
Petite question pour terminer. La couleur est bien associée au texte partout dans mon document. En revanche si je supprime le contenu de la case, la couleur subsiste, est-il possible d'automatiser cela?

merci encore monsieur.
 

pierrejean

XLDnaute Barbatruc
Re : Erreur exécution '13' incompatibilité de type

Re

Voila pour revenir apres effacement

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' si plus d'une cellule concernée sortir
If Target.Count > 1 Then Exit Sub
Chaine = Target.Value
If Chaine = "" Then Target.Interior.Color = xlNone
With Target.Interior
If InStr(Chaine, "DS") Then .ColorIndex = 4
If InStr(Chaine, "FDS") Then .ColorIndex = 45
If InStr(Chaine, "EE") Then .ColorIndex = 7
If InStr(Chaine, "Echo") Then .ColorIndex = 6
If InStr(Chaine, "Bilan") Then .ColorIndex = 3
If InStr(Chaine, "CS") Then .ColorIndex = 8
End With
End Sub

Pour ce qui est de l'erreur 13 , si elle est due a une selection de plusieurs cellules elle n'apparaitra plus sinon reviens en precisant dans quel cas elle se produit
 

Discussions similaires

Statistiques des forums

Discussions
312 970
Messages
2 094 042
Membres
105 925
dernier inscrit
dhahri mourad