• DİKKAT

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

Spesifik bir kelimeye göre bulunduğu hücreleri bulma

Katılım
23 Mart 2017
Mesajlar
35
Excel Vers. ve Dili
2016 ingilizce
İyi akşamlar sayın forum üyeleri,

Elimde 10 yıllık veri var, veriler ay-ay tutuluyor. Kullanıcı örneğin 2012 verilerini listelemek istedi. tarihi tutan hücrelerim şu şekilde : ocak16, şubat16...

hücrelerin biçimleri metin halinde, bir problemden dolayı tarih biçiminde tutamıyorum. Kullanıcı 2016 yılı verilerini istediğinde benim 1. sütunu komple tarayıp içinde "16" içeren hücreleri seçmem gerekiyor. Mümkün müdür?

For döngüsü ve son satır kodlarını yazabilirim, sadece "16" sayısını veya stringini içeren hücreleri nasıl tespit ederim o konuda yardımcı olursanız çok sevinirim. Şimdiden teşekkürler.
 
Merhaba,

Kodlarda gerekli açıklamayı yazdım.

Kod:
Sub Bul_Listele()
    
    Dim c As Range, Adr As String, ara As String, sat As Long
    
    Range("D2:D" & Rows.Count).ClearContents
    ara = 2016 'aranan değeri hücreden de alabilirsiniz.
    'Örneğin aranan değeri C1 den alacaksanız.
    '2016 yerine Range("C1") yazın.
    
    sat = 2 'yazma işlemini 2.satırdan başlatır.
    With [A:A] 'tarihleri A sütununda arar.
        Set c = .Find(Right(ara, 2))
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                'bulduğu tarihleri D sütununa yazar.
                Cells(sat, "D") = Cells(c.Row, "A")
                sat = sat + 1
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With

End Sub

.
 
hocam çalıştıramadım, biraz daha yardımcı olur musunuz?

ben de biraz daha detay vereyim: tarihlerin 2016 olduğu satırlardan yine kullanıcının belirlediği bir veri ismi ile de sütundan bir veri bloğu seçmek istiyorum örneğin a verisinin 2016 değerleri. bu verileri bu sayfadan alıp başka bir sayfaya koymam gerekiyor. şuan için veri adı kısmı ile uğraşmadım fakat sizin yazdığınız kodun çalışması durumunda 16 içeren 12 hücrenin d sütununa kopyalanması gerekiyor fakat çalışmadı. kodumu atayım buraya:

Kod:
Sub Bul_Listele()
    
    Dim c As Range, Adr As String, ara As String, sat As Long, shtdeneme As Worksheet
    Dim shtveri As Worksheet, shthedef As Worksheet
    Set shtveri = Sheets("veri")
    Set shthedef = Sheets("Hedefler")
    Set shtdeneme = Sheets("deneme")
    
    'Range("D2:D" & Rows.count).ClearContents
    ara = 2016 'aranan değeri hücreden de alabilirsiniz.
    'Örneğin aranan değeri C1 den alacaksanız.
    
    sat = 2 'yazma işlemini 2.satırdan başlatır.
    With [A:A] 'tarihleri A sütununda arar.
        Set c = .Find(Right(ara, 2))
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                'bulduğu tarihleri D sütununa yazar.
                shtdeneme.Cells(sat, "D") = shtveri.Cells(c.Row, "A")
                sat = sat + 1
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With

End Sub
 
Sorunuzu destekleyen örnek bir dosya eklemenizi rica ederim.

www.dosya.tc

.
 
Sorunuzu destekleyen örnek bir dosya eklemenizi rica ederim.

www.dosya.tc

.

Hocam çabalarınız için teşekkür ederim, birazcık hamallık yaparak hallettim :) ama sizden ufak bir ricam olacak:
Ben bu işi bir grafik çıktısı için toplanması gereken veriler için yaptım, şimdi istediğim veriler yeni sayfaya geliyor, fakat şöyle bir iş var ben kullanıcıya grafiği excel sayfası üzerinde göstermek istemiyorum, şuan var olan kod verileri alıyor işlemleri yapıp grafik çıkarıyor, grafik çıkarma konusunda hiçbir bilgim olmadığı için makro ile bir kod elde edip onu kullandım.

Şimdi koskoca bir projenin son adımı olarak kullanıcı userformdaki grafik göster tuşuna bastığında arka planda her şey yapılıyor fakat o grafiği excel sayfasını açmadan gösteremiyorum, ufak bir problem olduğunu düşündüğüm için çekirdek çitler gibi yardımcı olursunuz diye düşündüm hocam :)

kod da şu şekilde:

Kod:
Sub Grafik()

Dim shtgrafik As Worksheet
Set shtgrafik = Sheets("grafik")

Dim LastRow As Integer
    With shtgrafik
    LastRow = .Cells(.Rows.count, "A").End(xlUp).Row
    End With
    LastRow = LastRow

For i = 3 To LastRow - 1
    
    shtgrafik.Cells(i + 1, 3) = shtgrafik.Cells(i, 2)

Next i

For j = 3 To LastRow
        shtgrafik.Cells(j, 4) = (shtgrafik.Cells(j, 2) + shtgrafik.Cells(j, 3)) / 2
Next j

    shtgrafik.Activate
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
    ActiveChart.SetSourceData Source:=ActiveSheet.Range("A1").CurrentRegion
    ActiveChart.FullSeriesCollection(1).ChartType = xlColumnClustered
    ActiveChart.FullSeriesCollection(1).AxisGroup = 1
    ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
    ActiveChart.FullSeriesCollection(2).AxisGroup = 1
    ActiveChart.FullSeriesCollection(3).ChartType = xlLine
    ActiveChart.FullSeriesCollection(3).AxisGroup = 1
    ActiveChart.FullSeriesCollection(4).ChartType = xlLine
    ActiveChart.FullSeriesCollection(4).AxisGroup = 1
    ActiveChart.FullSeriesCollection(3).ChartType = xlLineMarkers
        
End Sub
 
Hocam benim yaptığımda birden fazla kez isteyebiliyorlar ama grafiği mesela bir kez baktı, sonra kapatıp başka bi grafik için de bakacak ve böyle böyle devam edecek, kaydedilen resimleri silmek vs biraz zor olmaz mı? Gerçi tek çözüm buysa yapılacak bir şey de yok demektir yani en kolay yolu sunmuş oluyorsunuz diye düşünüyorum, teşekkür ederim hocam yardımlarınız için, iyi geceler :)
 
Kodları istediğiniz kadar grafik için uygulayabilirsiniz.

Ayırca resim oluşturulduktan sonra image nesnesine yerleştirilince otomatik siliniyor.

Kill (resim)

Komutu, oluşan resmi diğer işlemlerin bitiminde siler.

.
 
Geri
Üst