Düşeyara formülü bul ve değiştir

Katılım
30 Kasım 2017
Mesajlar
33
Excel Vers. ve Dili
2007 Türkçe
Merhaba Sn. Forum Üyeleri,
Hazırlamış olduğum excel dosyasında,
=DÜŞEYARA($C$3;AAA!$A$1:AAA!$BJ$2000;10;"YANLIŞ") formülünü kullanarak AAA isimli sayfanın 10. sütunundan CCC isimli sayfanın B3 hücresine veri çekiyorum. AAA sayfasının A sütununda TC Kimlik numaraları var ve formülü uyguladığım sayfadaki C3 hücresine bu kimlik numaralarından birini girdiğimde, B3 hücresine, AAA sayfasının 10. sütununda bulunan puan geliyor.
B3 hücresine gelmiş olan bu puan üzerinde, AAA sayfasına gitmeden, hücreye girilmiş olan formülü bozmadan ve değişikliği AAA sayfasındaki 10. sütuna yansıtacak şekilde değişiklik yapabilir miyim?
Yardımcı olabilirseniz çok memnun olurum. Şimdiden teşekkür ederim.
 
Katılım
10 Ekim 2013
Mesajlar
424
Excel Vers. ve Dili
Excel 2013 (64bit) - Türkçe
Altın Üyelik Bitiş Tarihi
26/05/2022
excel in çalışma prensibine ters bir soru gibi geldi bana. Bir formülle bir hücreye veri alıyorsunuz. Ancak formülün etkilendiği başka bir hücredeki değeri değiştirmek istiyorsunuz ancak değiştirmek istediğiniz hücreye gitmek istemeden.

Belki üstadlar makro - userform yardımı ile çözebilirler bu talebi
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,456
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Cevap oldukça kısa :

Hayır...

Çunki düşeyara bir satırdan alınan değişik verileri başka bir satıra yine adreslenerek aktaran bir fonksiyondur ve ileriye yürüyerek sonuç getirir.

Sizin puan var dediğiniz hücrede o puanın görünme sebebi, o hücredeki sırayı söyleyen formüldür. Oraya siz birşey yazarsanız hücredeki formülü bozarsınız , ayrıca yazdığınızın geriye gitme ve etkileme şansı yok.

Bunun için puanı gösteren hücreyle tamamen alakasız olarak elle ya da kodla kaynakta değişiklik yapılması gerek. Bu da o dosyaya data giriş için izin verildi ise olur ki genelde database dosyaları hasar görmemesi için kilitlenir.
 
Katılım
30 Kasım 2017
Mesajlar
33
Excel Vers. ve Dili
2007 Türkçe
Teşekkür

Sn forum üyeleri ilginizden dolayı içtenlikle teşekkür ederim.
Tasarladığım şekilde bir uygulamanın olmayacağını öğrenmiş oldum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Katılım
25 Temmuz 2011
Mesajlar
83
Excel Vers. ve Dili
2019
Altın Üyelik Bitiş Tarihi
24-03-2023
Sayın arkadaşlar, ben bu forumda excel için "şu kesinlikle olmaz" diye bir şey söylenemeyeceğini öğrendim, yerinizde olsam bu konuda da demezdim.

Ekli dosyayı incelerseniz hem düğme ile hem de sayfa olaylarına bağlı olarak "MAKRO" yoluyla bu işlemin yapılabileceğini görebilirsiniz:

https://drive.google.com/file/d/1Yxev-4wuWQ6Y3Txc7xy4ojJT0LmDhqL4/view?usp=sharing
Merhabalar yusuf hocam,

Dosya çok faydalı oldu özellikle CCC (2) sekmesindeki çözüm ancak şu şekilde revize edemedim.B sütununda herhangi bir satıra veri girildiğinde c deki karşılığına göre revize etme olayını çözemedim.Yardımcı olabilir misiniz?


235787
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki gibi deneyin. Uygulama alanını (B3:B50) ve veri kaynağını (A1:A50) kendi dosyanıza göre ayarlayabilirsiniz:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B3:B50]) Is Nothing Then Exit Sub
Set s2 = Sheets("AAA")
If Target <> "" Then
    If Target.Offset(0, 1) = "" Then
        MsgBox "Önce TC kimlik numarası giriniz!", vbInformation
        Application.EnableEvents = False
            Target.ClearContents
            Target.Offset(0, 1).Select
        Application.EnableEvents = True
    ElseIf WorksheetFunction.CountIf(s2.[A1:A50], Target.Offset(0, 1)) = 0 Then
        MsgBox Target.Offset(0, 1) & " TC kimlik numarası AAA sayfasında bulunamadı!", vbInformation
        Application.EnableEvents = False
            Target.ClearContents
            Target.Offset(0, 1).Select
        Application.EnableEvents = True
    Else
        If IsNumeric(Target) = True Then
            son = s2.Cells(Rows.Count, "A").End(3).Row
            uyarı = MsgBox(Target.Offset(0, 1) & " TC kimlik numaralı kişinin " & _
                WorksheetFunction.VLookup(Target.Offset(0, 1), s2.Range("A1:J" & son), 10, 0) & _
                Chr(10) & " olan puanı " & Target & " olarak güncellensin mi?", vbYesNo)
            If uyarı = vbYes Then
                Set a = s2.[A:A].Find(Target.Offset(0, 1))
                c = a.Row
                s2.Cells(c, "J") = Target
                Application.EnableEvents = False
                    Target.FormulaR1C1 = "=VLOOKUP(RC[1],AAA!R2C1:R" & son & "C10,10,0)"
                Application.EnableEvents = True
            End If
        End If
    End If
End If
End Sub
 
Üst