• DİKKAT

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

sekmelerde herhangi bir hücredeki değeri

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,714
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
merhaba sayın hocalarım
sekmelerle ilgili sorum şudur
formülle yada makroyla ama galiba makro ile ilgili bir isteğim olcak
sekmelerde herhangi bir hücrede metin formatında olan bir ifadenin önüne belirteç olsun diye "**" işareti koycam

makro ile şu oluşsun
makro sekmesinde (makro diye sekme olcak) makro sekmesi hariç diğer tüm sekmeler B1 hücresinden aşağıya doğru sıralancak ve yanlarında C1 den başlayan yerde ise "**" koyduğum hücrede yazan ifade yazacak
 
Ben sorunuzu anlayamadım...
 
sayın korhan hocam şöyle anlatmaya çalışırsam
Sayfa1 ve sayfa 2 adında 2 sekmem var diyelim
sayfa 1 in D12 hücresinde "bölgeler" yazıyo (metin formatı)
sayfa 2 cin C16 hücresinde "isimler" yazıyo
ben bu iki sayfadaki 2 hücresin başına *-* işareti koyuyorum yani sayfa 1 D12 = *-* bölgeler
sayfa 2 C16 = *-* isimler
yapılacak makro yada formülde sayfada yeni bir sekme "Makro" adında açılcak
Makro sekmesinde
B1= sayfa 1 C1=bölgeler
B2= sayfa 2 C2= isimler

böyle listelenecek

Not: ben sekmede sadece bir hücrenin önüne *-* ekleyecem ve hangi hücre olduğu belli olmayacak

bunu sorma ihtiyacım şundan kaynaklanıyo
çalışma dosyamda 100 den fazla sekme var ve her sekmenin neyle alakalı olduğunu hatırlamakta zorlanıyorum ve sekmeleri seçerek bakmaktan şansım yok
kısa bir özet olarak böyle birşey aklıma geldi

daha önce her sekmenin A1 hücresine yazılan ifadelerle ilgili sorum olmuştu ama sekmelerde A1 hücreleri herbirinde boş olmayabiliyor bu açıdan böyle bir soru kalıbı hazırladım.
 
Son düzenleme:
Merhaba,

Bu şekilde deneyin.

Kod:
Sub Analiz()
 
    Dim i As Integer, aranan As String, sat As Long
    Dim c As Range, Adr As String, deg As String
 
    aranan = "*-*"
    sat = 1
 
    Sheets("makro").Select
    Range("B:C").ClearContents
 
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "makro" Then
                Set c = .Cells.Find(aranan)
                If Not c Is Nothing Then
                    Adr = c.Address
                    Do
                        Cells(sat, "B") = .Name
                        deg = .Cells(c.Row, c.Column)
                        Cells(sat, "C") = Right(deg, Len(deg) - Len(aranan))
                        sat = sat + 1
                        Set c = .Cells.FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> Adr
                End If
            End If
        End With
    Next i
 
End Sub


Not: Çözümü makro ile istemişsiniz fakat fonksiyonlar bölümüne sormuşsunuz. Sorunuz hangi konuyu içeriyorsa konuyu ilgili başlığa açmanızı rica ederim. Konuyu Makro-VBA bölümüne taşıdım.

.
 
sayın ömer hocam
modülü ekledim ama ALT+F8 makroyu çalıştırdığımda hata uyarısı yazdı

ALT+F8 dediğimde açılan pencerede
Sayfaları listele (İlk Makro)
Analiz (sizden gelen) lerin haricinde 20-30 tane aynı adda isimlerde bulunuyo HAKEDİSS aynı isimde epey birşey vardı o tabloda sorunun ne olduğunu anlamadım

sizden isteğim ayrı bir dosya ekleseniz basit birkaç sekmeden oluşan
 
Bu tür örnek dosyaları soruyu soranın eklemesi çözüme hızlı gitmek için daha doğrudur.

Hata aldığınız örneği kodları da dosyaya ekleyerek foruma eklemenizi rica ederim.
Not:Orijinal dosyanızı eklemenize gerek yok. Verileri değiştirebilirsiniz

.
 
sayın ömer hocam bir dosyada A,B,C sekmeleri açtım ve örnekleri yaptım
C sekmem açılı iken ALT+F8 açtım ve analiz makrosunu çalıştırdığımda hata uyarısı gelmişti. Run time error "9"

sonra sona bir sekme daha açtım makro adını verdim ALT+F8 ve makroyu çalıştır dediğimde sonuçlar çıktı
soru : makro sekmesini ben elle mi açmak zorundayım
 
Evet. Çünkü ilk mesajınızda makro adında bir sayfam var. Veriler burada listelenecek dediniz.
 
çok teşekkür ederim hocam
Makro sekmesinde 1. satırdan itibaren sekmeleri ve ifadelerin sıralanmasını istemiştim
bunu değiştirmek için
aranan = "*-*"
sat = 1

Sheets("makro").Select
Range("B:C").ClearContents

For i = 1 To Worksheets.Count
With Sheets(i)
modülün bu kısmındaki 2 tane 1 var hangisini değiştirmem gerekir hocam
 
sat = 1

Kısım, verileri 1.satırdan yazmaya başlatmak için kullanıldı. Buradaki 1 değerini değiştirmeniz yeterli olur.
 
teşekkür ederim ömer hocam araan yazan yerdeki"*-*" larıda değiştirerek değişik sonuçlara ulaşabilecem.
 
Geri
Üst