For a = 1 To [a65536].End(3).Row

Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
arkadaşlar bu makro sadece a sütununda çalışıyor ve hücrelerde çalışmayan linklerin renklerini değiştiriyor. ben bunu tüm sayfaya uygulamak istiyorum. tüm sayfa için makro nasıl yazılabilir?

Sub linkkontrol()
For a = 1 To [a65536].End(3).Row
If Cells(a, "a").Hyperlinks.Count > 0 Then
yol = Range("a" & a).Hyperlinks.Item(1).Address
If Dir(yol) = "" Then Cells(a, "a").Interior.ColorIndex = 36
End If
Next
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba.

Anladığım kadarıyla linkli hücreleri sarıya boyamak istiyorsunuz.

Bu kontrolu tüm sayfada yapmak zaman alabilir. O yüzden kullanılan hücrelerde kontrol yapmak sanırım daha hızlı olur. Yine de Tüm Sayfada kontrol yapmak isterseniz aşağıda kodda verdiğim Koyu Kırmızı olan yeri cells olarak değiştirmelisiniz.

Kod:
Sub linkkontrol()
For Each Hücre In [B][COLOR=red]Sheets(1).UsedRange[/COLOR][/B]
    If Hücre.Hyperlinks.Count > 0 Then
        yol = Hücre.Hyperlinks.Item(1).Address
        If Dir(yol) <> "" Then Hücre.Interior.ColorIndex = 36
    End If
Next Hücre
End Sub
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
hocam peki belli satır ve sütun aralığında aratmak istediğimde kırmızı yere ne yazmam gerek? mesela a1 ile g20 hücreleri arasındaki linklerin çalışıp çalışmadığını nasıl kontrol edebilirim??
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
Sub linkkontrol()

For Each Hücre In Range("a1:g20")
If Hücre.Hyperlinks.Count > 0 Then
yol = Hücre.Hyperlinks.Item(1).Address
If Dir(yol) <> "" Then Hücre.Interior.ColorIndex = 36
End If
Next Hücre

End Sub


yukarıdaki makroyu yazdım ama çalışmıyor??
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Bende çalıştı yazdığınız makro.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki gibi yapınca çalıştı.

Kod:
Sub LinkKontrol()
For Each Hücre In Range("a1:g20")
    If Hücre.Hyperlinks.Count > 0 Then Hücre.Interior.ColorIndex = 36
Next Hücre
End Sub
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
evet linkli hücreler şuan boyanıyor ama linki kırık olanlar da boyanıyor. linke bağlı dosyanın silindiğini yada adının değiştiğini yani köprü bozulduğunu anlamam gerek.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Günaydın.

Aşağıdaki kodları dener misiniz? Link var ve doğru ise sarı, Link var ve dosya yoksa kırmızı gösteriliyor.

Kod:
Sub LinkKontrol()
For Each Hücre In Range("a1:g20")
    If Hücre.Hyperlinks.Count > 0 Then
        yol = Hücre.Hyperlinks.Item(1).Address
        If Dir(yol) = "" Then
            Hücre.Interior.ColorIndex = 36
        Else
            Hücre.Interior.ColorIndex = 3
        End If
    End If
Next Hücre
End Sub
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
kırmızı olmadı hocam, deniyorum önce sarı oluyor, sonra bağlandığı dosyayı siliyorum, tekrar makroyu çalıştırıyorum ama bir değişiklik olmuyor
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Evet haklısınız.
Dosya adını alıyor ama Dir komutu sanırım path olmadığı için doğru sonuç üretmiyor.
Bilgim bunu çözmeye yetmiyor.
Belki bir bilen olursa benden yararlanmış olurum.
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
peki şöyle sorsam, bakın bu makro çalışıyor;

Sub linkkontrol()
For a = 1 To [a65536].End(3).Row
If Cells(a, "a").Hyperlinks.Count > 0 Then
yol = Range("a" & a).Hyperlinks.Item(1).Address
If Dir(yol) = "" Then Cells(a, "a").Interior.ColorIndex = 36
End If
Next
End Sub

burada sadece a sütunu etkileniyor . makroyu nasıl değiştirmem gerekir ki a1 ile g20 arasındaki hücreler etkilensin.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,491
Excel Vers. ve Dili
Ofis 365 Türkçe
Çalışıyor dediğiniz makronun daha önce verdiğim kodlardan bir farkı yok.
Ama illa çalışıyor diyorsanız şöyle olmalı : ki bunuda önermiştim.

Kod:
Sub LinkKontrol()
For Each hücre In Range("a1:g20")
    If hücre.Hyperlinks.Count > 0 Then
        yol = hücre.Hyperlinks.Item(1).Address
        If Dir(yol) = "" Then hücre.Interior.ColorIndex = 36
    End If
Next hücre
End Sub
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
For a = 1 To [a65536].End(3).Row

satırında adresi doğru belirtirsek makronun çalışacağını zannediyorum...
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
For a = 1 To [a65536].End(3).Row

satırında adresi doğru belirtirsek makronun çalışacağını zannediyorum...
Bende birşeyler yazmak istiyorum.Bence (kendi fikrim ) veri uzun oldugu zaman kodu

Kod:
For a = [a65536].End(3).Row To 1 Step-1
şeklinde kullanmak kanımca daha iyidir.

Yazmak istedim.
 
Katılım
30 Mayıs 2008
Mesajlar
75
Excel Vers. ve Dili
EXCEL 2007
arkadaşlar çalıştı dediğim makro da çalışmıyor, ama çalışmıştı ve denemiştim.neden şuan çalışmıyor anlayamadım. saatler sürecek işi kurtarmıştı ama artık çalışmıyor. bunun çözümünü bilen kimse yok mu?
 
Üst