Erreur de compilation Macro tout effacer?

Résolu
Bonjour à tous,
Voici mon problème, je voudrais uniquement ajouter une fonction macro qui a pour objectif d’effacer toutes les cases qui sont en orange pâle dans mon fichier Excel et ensuite réinscrire 6 petites formules qui ont été effacé dans la première étape.

Donc 1 macro :

- Qui efface toutes les cases orange pâle
- & ensuite ajoute dans les cellules suivantes
V7 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J7;"")
V8 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J8;"")
V9 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J9;"")
V10 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J10;"")
V11 : =SI(‘TDB DONNÉES’!$H$60=VRAI;J11;"")
V15 : =SI(‘TDB DONNÉES’!$D$61=VRAI;J15;"")

Cependant, j’ai fait plusieurs test et ma macro génère toujours une erreur de compilation ou autre. Si quelqu’un peut me venir en aide ce serait extrêmement apprécié.

Merci à tous!

Lien: http://www.cjoint.com/c/ELfkBhDCtXd

2 réponses

  1. Bonjour ccm81,

    Je te remercie énormément d'avoir pris le du temps pour m'aider à résoudre mon problème. Cependant, il y a certaines choses que je ne comprend pas ou maîtrise pas dans ta formule et j'ai reçu une proposition qui ressemble à la tienne mais un peu plus simplifié (à mon avis) pour mes connaissances et qui répond bien à ce que je veux faire donc je vais y aller avec l'autre proposition qui est celle-ci:

    Sub TOUT_EFFACER()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    couleur = Range("j6").Interior.Color
    For Each cellule In Range("j6:ag198")
    If cellule.Interior.Color = couleur Then cellule.Value = ""
    Next cellule
    Range("v7").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J7;"""")"
    Range("v8").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J8;"""")"
    Range("v9").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J9;"""")"
    Range("v10").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J10;"""")"
    Range("v11").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J11;"""")"
    Range("v15").FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J15;"""")"
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    End Sub

    Elle semble être très similaire à la tienne et donne le bon résultat.

    Merci encore de ton aide et bonne continuation
    1. Bonjour

      Essaies ceci, à mettre dans Module 1 et à compléter

      Option Explicit

      Const FTQ = "TDB QUEST."
      Const orange = 45
      Const plage = "J6:AH200"
      
      Public Sub OK()
      Dim c As Range, f As String
      Application.ScreenUpdating = False
      For Each c In Sheets(FTQ).Range(plage)
        If c.Interior.ColorIndex = orange Then c.Cells(1, 1).Value = ""
      Next c
      With Sheets(FTQ)
        .Range("V7").Cells(1, 1).FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J7;"""")"
        .Range("V8").Cells(1, 1).FormulaLocal = "=SI('TDB DONNÉES'!$D$60=VRAI;J8;"""")"
      'V9 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J9;"")
      'V10 : =SI(‘TDB DONNÉES’!$D$60=VRAI;J10;"")
      'V11 : =SI(‘TDB DONNÉES’!$H$60=VRAI;J11;"")
      'V15 : =SI(‘TDB DONNÉES’!$D$61=VRAI;J15;"")
      End With
      Application.ScreenUpdating =True
      End Sub

      RQ. Ne le compile pas, tu as pas mal d'erreurs dans le module 4

      Cdlmnt