Skip to main content

AccessTr.neT


Bir Sayfadaki Verilerden Birden Fazla Veri Aldırmak İstiyorum !

huzun_bulutu
huzun_bulutu
19
1856

Bir Sayfadaki Verilerden Birden Fazla Veri Aldırmak İstiyorum !

#13
Buda Excel açılışında kod devreye girer sayfa aktif olunca devreye girer ve buton ekledim tıklayınca devreye girer.
Ve B11 değişincede veriler gelir.
Aslında KTF yazsakta olur birde onu yaparsam eklerim.
.rar DEPO PLAN.rar (Dosya Boyutu: 62,15 KB | İndirme Sayısı: 0)
Cevapla
#14
(25/12/2020, 14:45)feraz yazdı:
(25/12/2020, 12:16)huzun_bulutu yazdı:
(24/12/2020, 09:40)feraz yazdı: Sabitleme değiştirildi.
Bir koşul daha eklersem formülü eklerim buraya birde makrolu yaparsam onuda eklerim.

=DOLAYLI(ADRES(TOPLA.ÇARPIM(($B$3:$B$7=$E$16)*($C3:C7=F16)*(SATIR($C$3:$C$7)))+1;SÜTUN(C1)))

Sn. feraz,

Programımı şekillendirmeye başlamıştım ki bu kodda yine hata alıyorum. Gönderdiğiniz şekilde kodu yazmaya çalıştım ama sanırım tam anlayamadım ki hata yapıyorum. Rica etsem müsait olduğunuzda bakabilir misiniz ?
Formül olayından fazla anlamıyorum heleki dizi formüllerindende nerdeyse hiç.
Kod ile yaptım ve gifte anlattım nasıl olduğunu.Gerekirse Buton eklenir onunlada veriler gelir.
Tam anlamadım aslında REÇETE MALİYET HESAPLAMA sayfasında sadece B11 veri değişincemi veriler gelecek zira buna göre ayarladım.
Dizi formülleriyle olsa bile dosya çok yavaş çalışabilir.

[Resim: do.php?img=10641]

Sn. Feraz,

Sadece B11 hücresi değil de aşağıda doğru işte orda yemek seçtikçe aşağı doğru diğer satırlarda da geitrmesi gerekiyorç
huzun_bulutu, 05-10-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#15
KTF yazmıştım.
Kullanmım örnekleri

Kod:
=getirAd($B11;REÇETELER!$B$11:$B$40;C10;REÇETELER!$10:$10)
=getirGram($B11;REÇETELER!$B$11:$B$40;C11;REÇETELER!C11:C40;C10;REÇETELER!$10:$10)

Dediğiniz aşağı olayınada sonra bakayım.

Function getirGram(aranan1 As String, alan1 As Range, _
                  aranan2 As String, alan2 As Range, _
                  aranan3 As String, alan3 As Range)

    Dim kacinci1 As Integer
    Dim kacinci2 As Integer
    Dim kacinci3 As Integer
    Const SatirBaslangic As Byte = 11
   
    Application.Volatile
    On Error Resume Next
    kacinci1 = WorksheetFunction.Match(aranan1, alan1, 0) + SatirBaslangic
    kacinci2 = WorksheetFunction.Match(aranan2, alan2, 0) + SatirBaslangic
    kacinci3 = WorksheetFunction.Match(aranan3, alan3, 0)
    On Error GoTo 0
    If kacinci1 > 0 And kacinci2 > 0 And kacinci3 > 0 Then
        getirGram = ThisWorkbook.Sheets("REÇETELER").Cells(kacinci1, kacinci3).Value
    Else
        getirGram = ""
    End If
End Function

Function getirAd(aranan1 As String, alan1 As Range, _
                aranan2 As String, alan2 As Range) As String

    Dim kacinci1 As Integer
    Dim kacinci2 As Integer
    Const SatirBaslangic As Byte = 10
   
    Application.Volatile
    On Error Resume Next
    kacinci1 = WorksheetFunction.Match(aranan1, alan1, 0) + SatirBaslangic
    kacinci2 = WorksheetFunction.Match(aranan2, alan2, 0)

    On Error GoTo 0
    If kacinci1 > 0 And kacinci2 > 0 Then
        getirAd = ThisWorkbook.Sheets("REÇETELER").Cells(kacinci1, kacinci2).Value
    Else
        getirAd = ""
    End If
End Function
Cevapla
#16
Birde böyle yaptım ya butona tıklayınca yada sayfa aktif olunca kod çalışır.
Sayfadaki değişiklik olayı içinde yaptım laki pasif yaptım kodları sonsuz döngüye sokuyor.Sokmaması için Application.EnableEvents = False bu kod kullanılıyor lakin bazen kodları durduruyor.
Yada sadece Sayfadaki veri değişincede kod çalışabilir sonra bakarım teferruatlıca bu dosyayı bir deneyin.

'Private Sub Worksheet_Change(ByVal Target As Range)
'    Application.EnableEvents = False
'    GetirMod.KacGetir
'    Application.EnableEvents = True
'End Sub

[Resim: do.php?img=10642]
.rar DEPO PLAN1.rar (Dosya Boyutu: 125,3 KB | İndirme Sayısı: 0)
Cevapla
#17
Sanırım formülle oldu hemde dizi formülsüz.
Veriler yoksa 0 geliyor onu ayarlardan kapatabilirsiniz birde yaeşil hata şekil oluyor onuda kapatabilirsiniz.

C11;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+10;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")
C12;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+11;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")

Sıfır ve formül hata olayını kapatma için resimdeki yerleri kaldırın ilgili sayfayı açıp.

[Resim: do.php?img=10643]

[Resim: do.php?img=10644]
.rar DEPO PLAN.rar (Dosya Boyutu: 50,65 KB | İndirme Sayısı: 5)
Cevapla
#18
(25/12/2020, 19:33)feraz yazdı: Sanırım formülle oldu hemde dizi formülsüz.
Veriler yoksa 0 geliyor onu ayarlardan kapatabilirsiniz birde yaeşil hata şekil oluyor onuda kapatabilirsiniz.

C11;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+10;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")
C12;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+11;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")

Sıfır ve formül hata olayını kapatma için resimdeki yerleri kaldırın ilgili sayfayı açıp.

[Resim: do.php?img=10643]

[Resim: do.php?img=10644]

Sn Feraz Allah sizden razı olsun emeğinize sağlık. Ne kadar teşekkür etsem azdır. Programı hayırlısı ile bitirirsem burada mutlulukla paylaşacağım. Tabiki profosyonel olmayacak, belki makro içermeyecek belki çok özel kodlar olmayacak ama elimden gelen neyse onu yapıp dileyen kullansın diye paylaşacağım.

Saygılar
huzun_bulutu, 05-10-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task