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

Macro qui fait planter Excel

Youri

XLDnaute Occasionnel
Bonjour à tous,

J'ai rédigé une petite macro pour m'aider à modifier les mises en formes conditionnelles de cellules. Cependant, elle fait planter Excel. Voici la macro :
Code:
Option Explicit
Sub mefc_contacts()
Dim formule_inserer_1 As Variant
Dim formule_inserer_2 As Variant
Dim formule_inserer_3 As Variant
Dim Plage As String
Dim Plage_formule_inserer_1 As String
Dim Plage_formule_inserer_2_et_3 As String
Dim cellule_changer As Range
Plage = Selection.Cells(1, 1).Address & ":" & Selection.Cells(14, 10).Address
Plage_formule_inserer_1 = Selection.Cells(2, -19).Address & ":" & Selection.Cells(14, -10).Address
Plage_formule_inserer_2_et_3 = Selection.Cells(2, -9).Address & ":" & Selection.Cells(14, 0).Address
formule_inserer_1 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=FAUX;testcellules(" & Plage_formule_inserer_2_et_3 & ")=FAUX)"
formule_inserer_2 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=VRAI;testcellules(" & Plage_formule_inserer_2_et_3 & ")=FAUX)"
formule_inserer_3 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=VRAI;testcellules(" & Plage_formule_inserer_2_et_3 & ")=VRAI)"
'MsgBox "Résumé :" & vbCrLf & "Plage Sélection : " & Plage & vbCrLf & _
'"Formule 1 : " & formule_inserer_1 & vbCrLf & _
'"Formule 2 : " & formule_inserer_2 & vbCrLf & _
'"Formule 3 : " & formule_inserer_3
For Each cellule_changer In Range(Plage)
    cellule_changer.FormatConditions(1).Modify xlExpression, , formule_inserer_1
    cellule_changer.FormatConditions(2).Modify xlExpression, , formule_inserer_2
    cellule_changer.FormatConditions(3).Modify xlExpression, , formule_inserer_3
Next cellule_changer
End Sub
Voilà, est-ce que vous pouvez m'aider s'il vous plaît ?

Merci beaucoup,
Youri
 

Pierrot93

XLDnaute Barbatruc
Re : Macro qui fait planter Excel

Bonjour Youri

a mon avis un problème dans da définition des objets "range", regarde peut être le code ci dessous :

Code:
Sub mefc_contacts()
Dim formule_inserer_1 As Variant
Dim formule_inserer_2 As Variant
Dim formule_inserer_3 As Variant
Dim Plage As Range
Dim Plage_formule_inserer_1 As Range
Dim Plage_formule_inserer_2_et_3 As Range
Dim cellule_changer As Range
Set Plage = Range(Cells(1, 1), Cells(14, 10))
Set Plage_formule_inserer_1 = Range(Selection.Offset(2, -19), Selection.Offset(14, -10))
Set Plage_formule_inserer_2_et_3 = Range(Selection.Offset(2, -9), Selection.Offset(14, 0))
Set Plage_formule_inserer_1 = Range(Cells(2, -19), Cells(14, -10))
Set Plage_formule_inserer_2_et_3 = Selection.Cells(2, -9).Address & ":" & Selection.Cells(14, 0).Address
formule_inserer_1 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=FAUX;testcellules(" & Plage_formule_inserer_2_et_3 & ")=FAUX)"
formule_inserer_2 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=VRAI;testcellules(" & Plage_formule_inserer_2_et_3 & ")=FAUX)"
formule_inserer_3 = "=ET(testcellules(" & Plage_formule_inserer_1 & ")=VRAI;testcellules(" & Plage_formule_inserer_2_et_3 & ")=VRAI)"
'MsgBox "Résumé :" & vbCrLf & "Plage Sélection : " & Plage & vbCrLf & _
'"Formule 1 : " & formule_inserer_1 & vbCrLf & _
'"Formule 2 : " & formule_inserer_2 & vbCrLf & _
'"Formule 3 : " & formule_inserer_3
For Each cellule_changer In Range(Plage)
    cellule_changer.FormatConditions(1).Modify xlExpression, , formule_inserer_1
    cellule_changer.FormatConditions(2).Modify xlExpression, , formule_inserer_2
    cellule_changer.FormatConditions(3).Modify xlExpression, , formule_inserer_3
Next cellule_changer
End Sub

attention je ne suis pas trop sur des cellules que tu veux reellement utiliser... à tester et à adapter donc...

bon après midi
@+
 

Youri

XLDnaute Occasionnel
Re : Macro qui fait planter Excel

Bonjour Pierrot,

Merci pour beaucoup pour ton aide. Je vais essayer ta solution. Mais je suis parvenu à faire ce que je voulais en effaçant les MEFC et en les remettant (FormatConditions.Delete puis FormatConditions.Add). Comme ça : pas de risque.

Merci encore,
Youri
 

Youri

XLDnaute Occasionnel
Re : Macro qui fait planter Excel

Re :

En ce qui concerne le plantage d'Excel, celui-ci est apparemment dû à un bug interne à Excel : Excel plante si on met des formules personnalisées dans les mefc ...

Bonne journée,
Youri
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…