Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incompatibilité de type en VBA

  • Initiateur de la discussion Initiateur de la discussion Yldie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yldie

Guest
Bonsoir à tous,

J'ai un petit problème avec mon code de mise en forme conditionnelle et je me demande si cela vient du nombre de lignes de ce tableau et/ou colonnes ???
Je vous serais reconnaissant de bien vouloir m'aider....encore merci


Sub contionnel()
ActiveSheet.Unprotect ("password")
Application.ScreenUpdating = False
For Each cellule In [B5:BN204]
cellule.Select
ActiveCell.Interior.ColorIndex = xlNone
With cellule
Select Case .Value
Case Is = ""
ActiveCell.Interior.ColorIndex = 0
Case Is = "P"
ActiveCell.Interior.ColorIndex = 27
Case Is = "R"
ActiveCell.Interior.ColorIndex = 4
Case Is = "E"
ActiveCell.Interior.ColorIndex = 3
End Select
End With
Next cellule
Application.ScreenUpdating = True
Range("a1").Select
ActiveSheet.Protect ("password")
End Sub
 
Re : Incompatibilité de type en VBA

Bonsoir,
comme tu veux développer ta mise en forme conditionnelle toi-même, et ce n'est pas un reproche, bien au contraire, tu peux essayer comme ceci :

Code:
Sub contionnel()
ActiveSheet.Unprotect ("password")
Application.ScreenUpdating = False
For Each cellule In [B5:BN204]
With cellule
    .Interior.ColorIndex = xlNone
    Select Case .Value
        Case Is = "P"
            .Interior.ColorIndex = 27
        Case Is = "R"
            .Interior.ColorIndex = 4
        Case Is = "E"
            .Interior.ColorIndex = 3
    End Select
End With
Next cellule
Application.ScreenUpdating = True
Range("a1").Select
ActiveSheet.Protect ("password")
End Sub
 
Re : Incompatibilité de type en VBA

Merci BhBh mais malheureusement ça ne marche pas, précision: les cellules que je tente de colorier contiennent pour 50% des formules (incidence ???).
Pourrais tu s'il te plaît me dire comment on remplace un nombre ou un chiffre par un format du type ### ou autre (j'aimerais que ma mise en forme prenne en compte n'importe quel nombre...)
Merci d'avance et bonne soirée
 
Re : Incompatibilité de type en VBA

salut Yldie,Bhbh

un peu différent
Option Compare Text

Sub contionnel()
Dim Cellule As Range
Worksheets("Feuil1").Activate
ActiveSheet.Unprotect ("password")
Application.ScreenUpdating = False
For Each Cellule In [B5:BN204]
Select Case Cellule.Value
Case Is = "P"
Cellule.Interior.ColorIndex = 27
Case Is = "R"
Cellule.Interior.ColorIndex = 4
Case Is = "E"
Cellule.Interior.ColorIndex = 3
Case Else
Cellule.Interior.ColorIndex = xlNone
End Select

Next Cellule
Application.ScreenUpdating = True
Range("a1").Select
ActiveSheet.Protect ("password")
End Sub

à bientôt
 
Re : Incompatibilité de type en VBA

Merci Bebere, BhBh mais rien n'y fait, par contre je suis sûr que vous savez prendre en compte une mise en forme (colorisation) d'une cellule supérieure ou égale à 1, merci de bien vouloir me donner le type de code (num > >= ### que sais-je ????). Merci pour votre aide
 
Re : Incompatibilité de type en VBA

Re-,
salut, Bebere

J'ai essayé mon code, et à priori, il fonctionne....

Cependant, tu pourrais faire bien plus simple, via la macro complémentaire de MDF, dit MyDearFriend, sur son site :

Site

Cela t'évitera bien des "prises de têtes" inutiles...
 
Re : Incompatibilité de type en VBA

En fait, ma macro commence à merder à partir de la ligne 31. Y a-t-il une limite au nombre de lignes et/ou colonnes pour un tableau, bref c'est satisfaisant à moitié.....merci quand même
 
Re : Incompatibilité de type en VBA

Je vous joins ma feuille excel, certes un peu épuré mais vous comprendrez sans doute le principe de ma macro,
Merci BhBh, Bebere et Marcel
Je répète ça ne marche plus au-delà de la ligne 31
Bonne soirée
 
Re : Incompatibilité de type en VBA

Excusez j'ai dû le zipper et du coup il reste presque rien du tableau original (B5:BN204 >> assez volumineux....), j'espère que vous pigerez, merci
 
Dernière modification par un modérateur:
Re : Incompatibilité de type en VBA

Pour savoir où se situait le problème, j'ai ajouté une ligne dans le code.
Juste après la ligne "For each..." j'ai ajouté Range("A1") = Cellule.Address qui permet d'afficher dans la cellule A1 l'adresse de la cellule en cours de traitement. 😉


Avec ce fichier ça s'arrête sur la cellule M16 car elle contient un code d'erreur.

Peut-être devrais-tu prévoir dans ton code le cas où tu rencontres une cellule contenant un code d'erreur.
 
Dernière édition:
Re : Incompatibilité de type en VBA

Merci bcp Marcel, en fait, j'y suis parvenu reste tjs le bug à la colonne BN.....BK, BL, BM ça marche mais dès que j'étends la macro jusqu'à BN il me met incompatibilité de type 13 et je sens bien que c'est la largeur du tableau qui le bloque (???).
Vraiment merci pour tout
 
Re : Incompatibilité de type en VBA

Chez moi aucun problème pour la plage B5:BN204 tu dois avoir un contenu de cellule qui te pose un problème.

As-tu essayé d'ajouter la même ligne que moi dans ton code pour voir à quelle cellule exactement bloque la macro ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
367
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…