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

XL 2016 VBA - Y a-t-il un moyen simple de savoir si une cellule est référencée dans une formule

Dudu2

XLDnaute Barbatruc
Bonjour,

La question est dans le titre.
Exemple: B1 -> =A1
Existe-t-il un moyen + ou - direct de savoir que A1 est référencé dans un formule de la feuille (celle de B1 en l'occurrence) ?
Merci par avance.
 
Solution
Bonjour,

Par l'interface : Onglet 'Formules'-> Repérer les Dépendants
Par VBA lister les cellules de la collection Range("A1").Dependents

VB:
Sub Test()
    Dim Deps As Range, dep As Range
    Set Deps = Range("A2").Dependents
    For Each dep In Deps
        Debug.Print Deps.Address
    Next
End Sub

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Par l'interface : Onglet 'Formules'-> Repérer les Dépendants
Par VBA lister les cellules de la collection Range("A1").Dependents

VB:
Sub Test()
    Dim Deps As Range, dep As Range
    Set Deps = Range("A2").Dependents
    For Each dep In Deps
        Debug.Print Deps.Address
    Next
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dudu,
"Just for the fun", peut être une approche en PJ avec :
VB:
Sub MembreFormule()
T = Range([G4])
Range([G4]).Interior.Color = xlNone
Chaine = [G3]
For L = 1 To UBound(T, 1)
    For C = 1 To UBound(T, 2)
        Formule = Cells(L, C).Formula
        If Formule <> "" Then
            If InStr(1, Formule, "A1") > 0 Then
                Cells(L, C).Interior.Color = RGB(255, 255, 0)
            End If
        End If
    Next C
Next L
End Sub
Sub EffCol()
    Range([G4]).Interior.Color = xlNone
End Sub
Mais il ne faut pas que des cellules soient colorées sinon elles seront "blanchies" lorsqu'on efface les couleurs.
 

Pièces jointes

  • Formules.xlsm
    17 KB · Affichages: 2

Dudu2

XLDnaute Barbatruc
@Hasco, Oui pas de souci, j'avais compris.
Perso le rajoute toujours le .Cells facultatif (For Each dep In Deps.Cells).

@sylvanu, merci pour ton retour. C'est ce sur quoi je voulais partir avant de créer ce sujet.
Cependant cette approche est peu sûre car A1 peut aussi se trouver sous la forme $A$1 ou une variante. Alors tu me diras, remplaçons les "$" par "" mais il reste les références par ranges où A1 ne serait pas cité directement. Le .Dependents est la solution sécure.
 

Discussions similaires

Réponses
6
Affichages
287
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…