Erreur de compilation Macro tout effacer?

Résolu
Pathfinder37 Messages postés 35 Statut Membre -  
Pathfinder37 Messages postés 35 Statut Membre -
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. Pathfinder37 Messages postés 35 Statut Membre 2
     
    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
    2
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1