• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

dış bağlantı bulunan hücreleri temizleme (value = "")

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Forumda daha evvel sayın haluk ve sayın class37 tarafından verilmmiş olan bu kodlar dış bağlantı bulunan hücreleri sarı ile işaretliyor...
ancak ben hücrenin formülden arındırlmasını ve ardında hiç bir işaret bırakılmamasını istiyorum.
kodlarda ne gibi değişklik yapılmalıdır?

Kod:
Sub ExRef()
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
 
Selamlar,

A&#351;a&#287;&#305;daki kodu denermisiniz.

Kod:
Sub DI&#350;_BA&#286;LANTILI_H&#220;CRELER&#304;_TEM&#304;ZLE()
    On Error GoTo Son
    Dim H&#252;cre As Range
    For Each H&#252;cre In Cells.SpecialCells(xlCellTypeFormulas, 23).Cells
    If InStr(1, H&#252;cre.Formula, "[") Then
    H&#252;cre.Value = Empty
    Say = Say + 1
    End If
    Next
    Ek_Mesaj = IIf(Say = 1, "i&#231;eri&#287;i", "i&#231;erikleri")
    MsgBox Say & " adet d&#305;&#351; ba&#287;lant&#305;l&#305; h&#252;cre bulunmu&#351;tur ve " & Ek_Mesaj & " temizlenmi&#351;tir.", vbInformation
    Exit Sub
Son: MsgBox "D&#305;&#351; ba&#287;lant&#305;l&#305; h&#252;cre bulunamam&#305;&#351;t&#305;r.", vbExclamation
End Sub
 
hocam &#246;ncelikle te&#351;ekk&#252;rler,

Cells.SpecialCells(xlCellTypeFormulas, 23).Cells
If InStr(1, H&#252;cre.Formula, "[") Then
Ek_Mesaj = IIf(Say = 1, "i&#231;eri&#287;i", "i&#231;erikleri")

sat&#305;rlar&#305;n&#305; a&#231;&#305;klayabilirseniz sevinirim.
sayg&#305;lar&#305;mla
 
Selamlar,

Kod:
Cells.SpecialCells(xlCellTypeFormulas, 23).Cells
Bu sat&#305;rda sayfadaki t&#252;m h&#252;crelere bak sadece form&#252;l i&#231;eren h&#252;creleri baz al komutu veriliyor.

Kod:
If InStr(1, H&#252;cre.Formula, "[") Then
Bu sat&#305;rda form&#252;l i&#231;eren h&#252;crede karakter olarak k&#246;&#351;eli parantez varm&#305; yokmu kontrol et komutu veriliyor.

Kod:
Ek_Mesaj = IIf(Say = 1, "i&#231;eri&#287;i", "i&#231;erikleri")
Bu sat&#305;r ise kullanc&#305;y&#305; bilgilendirmek amac&#305;yla ekrana gelecek mesaj kutusundaki c&#252;mle d&#252;&#351;&#252;kl&#252;&#287;&#252;n&#252; gidermek amac&#305;yla olu&#351;turulmu&#351;tur. Tamamen opsiyoneldir. Gereksiz g&#246;r&#252;l&#252;rse silinebilir.
 
a&#231;&#305;klamalr&#305;n&#305;z iin te&#351;ekk&#252;rler
IIF komutu nedir diye sorabilirmiyim birde?
 
Selamlar,

IIF komutu IF ile ba&#351;layan &#351;artl&#305; sorgulama komutunu tek sat&#305;rda yazabilme imkan&#305; sa&#287;lar.

&#214;rne&#287;in a&#351;a&#287;&#305;daki KO&#350;UL_1 ve KO&#350;UL_2 makrolar&#305; ayn&#305; &#351;eyi ifade etmektedir. Duruma g&#246;re her ikiside kullan&#305;labilir.

Kod:
Sub KO&#350;UL_1()
If [A1] = 1 Then
De&#287;i&#351;ken = "DO&#286;RU"
Else
De&#287;i&#351;ken = "YANLI&#350;"
End If
MsgBox De&#287;i&#351;ken
End Sub
 
Sub KO&#350;UL_2()
De&#287;i&#351;ken = IIf([A1] = 1, "DO&#286;RU", "YANLI&#350;")
MsgBox De&#287;i&#351;ken
End Sub



Kod:
Ek_Mesaj = IIf(Say = 1, "i&#231;eri&#287;i", "i&#231;erikleri")
Kod:
De&#287;i&#351;ken = IIf(Ko&#351;ul, Ko&#351;ul Do&#287;ru &#304;se Yap&#305;lacak &#304;&#351;lem, Ko&#351;ul Do&#287;ru De&#287;ilse Yap&#305;lacak &#304;&#351;lem)

A&#231;&#305;klamas&#305;;

Ek_Mesaj ad&#305;nda de&#287;i&#351;ken olu&#351;turuyoruz.

D&#246;ng&#252;de kulland&#305;&#287;&#305;m&#305;z Say de&#287;i&#351;keni i&#351;lem yap&#305;lan h&#252;cre say&#305;s&#305; ifade
etmektedir. Bu de&#287;er 1 ise mesaj kutusunda &#231;o&#287;ul kelime (1 adet d&#305;&#351; ba&#287;lant&#305;l&#305; h&#252;cre bulunmu&#351;tur ve i&#231;erikleri temizlenmi&#351;tir.) kullanmak yanl&#305;&#351; olur. Bu sebeple i&#231;erikleri kelimesini i&#231;eri&#287;i olarak de&#287;i&#351;tiriyoruz.

Ko&#351;ulumuzun sa&#287;lanmad&#305;&#287;&#305; durumda ise Ek_Mesaj=i&#231;erikleri &#351;art&#305; olu&#351;acakt&#305;r. Bu durumda da Say de&#287;i&#351;keni 1 'den b&#252;y&#252;k yani &#231;o&#287;ul olacakt&#305;r. Sonu&#231; olarak mesaj yaz&#305;s&#305;nda i&#231;erikleri kelimesi kullan&#305;lacakt&#305;r.
 
Sayın hsayar ve sayın Cost control, paylaşım için çok teşekkürler. Gerçekten bu kodlar çok yararlı oldu.
 
merhaba
syn COST_CONTROL &#231;ok g&#252;zel a&#231;&#305;klama.
bunu excel dersanesine koyman&#305;z&#305; &#246;neririm.
 
sayt&#305;n costcontrol a&#231;&#305;klmalar&#305;n&#305;z i&#231;in te&#351;ekk&#252;r ederim
 
Geri
Üst