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
 

chris

XLDnaute Barbatruc
Bonjour

Se placer sur la cellule, onglet Formules, Repérer les dépendants

Egalement mais moins pratique
1664461985969.png
 

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

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50