Masquer le message [Avertissement de référence circulaire]

Bonjour à tous,

J'ai créé un fichier Excel/VBA qui, de part son codage, créé des références circulaires. Ces références circulaires sont essentielles pour la méthode de travail que nous avons. Voici un bref résumé :

170215061748496702
  1. L'utilisateur de la feuille mère modifie la couleur de la case B2, les cases B2 des autres feuilles sont également modifiées de la même couleur (feuilles filles).
  2. Les feuilles filles sont autonomes, l'utilisateur peut modifier la couleur d'une case sans porter de modifications sur les autres feuilles.
  3. L'utilisateur de la feuille mère modifie, de nouveau, la couleur de la case B2 : cette nouvelle modification s'applique sur toutes les autres feuilles du classeur.

PS: Nous utilisons des codes (1, 2, 3) qui sont transformés en couleur avec une mise en forme conditionnelle.

Cette méthode entraine donc la problématique des références circulaires. Ainsi donc, le message d'information suivant apparaît à chaque ouverture :

17021506234480348

J'ai déjà parcouru le forum à la recherche d'un moyen pour faire disparaître ce message. J'ai appris qu'il suffisait d'activer le calcul itératif dans les options. Toutefois, l'activation étant volatile, Je suis tombé sur ce sujet : https://forum.excel-pratique.com/excel/regler-le-calcul-iteratif-une-fois-pour-toutes-dans-un-fichi-t46756.html proposait d'activer le calcul itératif à chaque ouverture du classeur, grâce à la création d'une macro événementielle.

J'ai testé cette technique et malheureusement le message apparaît toujours.

De plus, je suis confronté une contrainte : nous activons la fonction du classeur partagé pour travailler ensemble sur le classeur.

Ma question : y-a-t-il un moyen de masquer ce message (avec VBA par exemple) lors de l'ouverture de mon fichier ?

Pour vous aider je vous joint :

> Mon code permettant de copier une mise en forme sur plusieurs feuille de classeur :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Sh As Worksheet
    If Not Intersect(Target, [Build1]) Is Nothing Then
        For Each Sh In Sheets

            Sheets("Feuille Fille 1").Cells(Target.Row, Target.Column) = Target.Value
            Sheets("Feuille Fille 2").Cells(Target.Row, Target.Column) = Target.Value
            Sheets("Feuille Fille 3").Cells(Target.Row, Target.Column) = Target.Value
            Sheets("Feuille Fille 4").Cells(Target.Row, Target.Column) = Target.Value
            Sheets("Feuille Fille 5").Cells(Target.Row, Target.Column) = Target.Value
        Next Sh
    End If
End Sub

> Le code de la macro événementielle que j'ai inclus dans ThisWorkBook :

Private Sub Workbook_Open()

    With Application 'Active par défaut le calcul itératif
        .Iteration = True
        .MaxIterations = 1000
        .MaxChange = 0.00001
    End With
End Sub

Merci de votre aide et bonne soirée,

Baptiste.

Bonjour

A tester

Private Sub Workbook_Open()
        With Application 'Active par défaut le calcul itératif
           Application.DisplayAlerts = False
           .Iteration = True
            .MaxIterations = 1000
            .MaxChange = 0.00001
            Application.DisplayAlerts = True
        End With
    End Sub

Cordialement

Bonsoir,

Cette méthode entraine donc la problématique des références circulaires.

je ne vois pas en quoi ! Le modifications de la feuille mère sont répercutées sur les feuilles filles ! Il n'y a là aucune circularité !!

Pour avoir cet avertissement, c'est que tu dois avoir des formules, dont tu n'as pas parlé, qui le provoque...

Tu devrais aussi éliminer les incohérences de ta procédure Change !

Cordialement.

Bonjour MFerrand et Amadeus,

Finalement j'avais bien une référence circulaire présente sur quelques feuilles de calcul que je me suis empressé de supprimer.

Tout fonctionne parfaitement désormais. Merci beaucoup !

Baptiste.

Rechercher des sujets similaires à "masquer message avertissement reference circulaire"