Dans mon obsession de la sécurité , je voudrais avant suppression de lignes dans un classeur tester si les cellules de la ligne sont utilisées par d'autres cellules du classeur comme référence.
Peut-on faire cela simplement? C'est à dire, existe-t-il une fonction ou propriété pour cela... ou encore une bonne idée!!
La seule idée que j'ai pour l'instant serait de faire une boucle sur les feuilles et une boucle sur les cellules pour récupérer les formules et voir si la référence d'au moins une cellule de la ligne (a priori mes lignes sont utilisées comme référence en totalité ou pas du tout) est contenu dedans un peu comme ci-dessous (mais je n'ai pas testé, c'est juste des bouts de codes que j'ai pris à droite et à gauche )
Code:
For Each cell In UsedRange
If cell.formula Like "*A12*" then z = z + 1
Next cell
If z > 0 then
If MsgBox("Blabla?", vbQuestion + vbYesNo, "") = vbNo Then Exit Sub
End If
Mais bon, ça va récupérer aussi tous les A120...
On pourrait aussi tester après suppression si il existe des #REF! avec ISERROR, mais ce serait un peu tard, à moins qu'on puisse annuler l'action d'une macro???
Re : Tester si une cellule est utilisée comme référence dans une cellule du même clas
Bonjour
Sélectionne une cellule puis lance la macro ci-dessous
Code:
Sub test()
Dim cell As Range
For Each cell In Rows(ActiveCell.Row).Cells
If cell.HasFormula Then
z = z + 1
End If
Next cell
If z > 0 Then
If MsgBox("Blabla?", vbQuestion + vbYesNo, "") = vbNo Then Exit Sub
End If
End Sub
Re : Tester si une cellule est utilisée comme référence dans une cellule du même clas
Merci beaucoup Staple1600,
C'est en fait l'inverse que je demandais mais c'est quand même super intéressant de connaître le HasFormula, cela va m'être utile de toutes façons...
Je tente de mieux m'expliquer en prenant juste le cas de la suppression d'une cellule, disons A12. Peu importe qu'elle contienne une valeur ou une formule, je voudrais m'assurer que A12 n'est pas utilisée n'importe où ailleurs dans le classeur pour éviter de faire disparaître des calculs...