Formül Sayfa dışına başvuruyor mu?

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
merhaba,

Bir formülün bulunduğu sayfanın dışındaki sayfalara ya da dosyalara başvurduğunu tespit edebileceğimiz bir yol varmıdır.

Not : Hücredeki formülü ".FormulaArray" ile alıp içinde " ! " karakteri var mı diye arayıp bulmanın dışında bir çözüm olmalı.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Arç çubuklarından formül denetlemeyi seçin veya araçlar menüsünden formül denetleme de etkilenenleri izle yi seçin


2 sorunuz birinciyle bağlantı herhalde , tam anlayamadım

Saygılarımla
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Zafer Bey,


Ã?ncelikle ilginize teşekkür ederim. Ancak ben soruyu VBA kodlarıyla çözümlemek zorundayım.

Yoksa VBA dışı yollarla bunun nasıl yapılabileceğini zaten biliyorum.


Not: Benim altta yazdığım ikinci soru değildi, ilk sorunun tamamlayıcısıydı, yani;


sub xx()
ackl = range("A1").FormulaArray
for a = 1 to len(ackl)
if mid(ackl,a,1)="!" then
msgbox "Dış Başvuru"
else
msgbox "Sayfa içi"
endif
next a
end sub


Gibi birşeyler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:8f9da8d6e5]Sub bul()
On Error GoTo 10
a = WorksheetFunction.FindB("!", [a1].Formula)
MsgBox "DIÞ BAÞVURU"
Exit Sub
10 MsgBox "SAYFA İÇİ BAÞVURU"
End Sub
[/vb:1:8f9da8d6e5]
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Bütün sayfalardaki Bağlantıları bulur renklendirir

Sub BAGLANTI_BUL()
Dim MyRange As Range
Dim i As Integer, j As Integer, No As Integer
Dim MyMsg1 As String, MyMsg2 As String, MyMsg3 As String
Dim MyArray()
For i = 1 To Worksheets.Count
No = 0
For Each MyRange In Sheets(i).UsedRange
If InStr(1, MyRange.Formula, "[") Then
MyRange.Interior.ColorIndex = 6
No = No + 1
ReDim MyArray(1 To No)
MyArray(No) = Sheets(i).Name & " --- " & MyRange.Address(False, False)
For j = LBound(MyArray) To UBound(MyArray)
If MyArray(j) <> "" Then MyMsg2 = MyMsg2 & vbCrLf & MyArray(j)
Next
End If
Next
MyMsg1 = MyMsg1 & vbCrLf & Sheets(i).Name & " sayfasında " & No & " adet "
Next
MyMsg3 = "(Bulunan hücreler sarı renkle işaretlenmiştir.)"
MsgBox MyMsg1 & vbCrLf & WorksheetFunction.Rept("--", 20) & vbCrLf & "Dış bağlantılı hücre bulundu." _
& vbCrLf & vbCrLf & "Bulunan hücreler :" & vbCrLf & MyMsg2 _
& vbCrLf & vbCrLf & MyMsg3, , "Rapor !"
End Sub


Kaynak:Sn Raider

Belki işinize yarayabilir
Saygılarımla
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
teşekkür ediyorum zafer bey ve levent bey.
 
Üst