Excelde buton ekleyerek verilerin aktarılması

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
arkadaşlar ben bir miras hesaplama proğramı yapmak istiyorum, takıldığım birkaç yer var, yardımcı olursanız memnun olurum. sorum şu
ekte gönderdiğim tabloda (ben biraz uğraşarak zorunlu bilgiler tablosunu yaptım galiba ama Çocuklar (evli ölen) ile Torunlar (evli ölen) sayfasındaki verileri miras hesapları tablosuna taşımayı başaramadım. lütfen yardım edin,

1-)Çocuklar (evli ölen) sayfasında D7: D15, I7:I15, N7:N15, D22: D30, I22:I30,
N22:N30, D37: D45, I37:I45, N37:N45 hücrelerinde sağ yazıyorsa miras
hesapları sayfasında zorunlu bilgiler sayfasındaki bilgiler aktarıldıktan sonra
boş olan yere satır atlamadan devam ederek yazmasını,
2-)aynı şekilde Torunlar (evli ölen) sayfasında yine D7: D15, I7:I15, N7:N15,
D22: D30, I22:I30, N22:N30 hücrelerinde sağ yazıyorsa miras hesapları
tablosunda zorunlu bilgiler ve Çocuklar (Evli ölen) sayfasındaki bilgiler
aktarıldıktan sonra boşluk bırakmadan devam ederek C8 hücresinden aşağıya
doğru sağ olan kişilerin isimlerini ayrı ayrı yazmasını
3-yakınlık derecesine de eğer Çocuklar (evli ölen) sayfasındaki isimleri
yazıyorsa "çocuğu", Torunlar (evli ölenler) sayfasındaki isimleri
yazıyorsa "torunu" yazmasını istiyorum. yardımcı olursanız memnun olurum.
Saygılar.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
arkadaşlar lütfen acil yardım, üç gündür uğraşıyorum, ama macro ve vba ile ilgili pek bilgi sahibi olmadığımdan dolayı tıkanıp kalıyorum, aslında istediğim çok siz üstadlara göre çok basit, ama bana göre zor,
Dosyada öncelikle
1-Zorunlu bilgiler sayfasına bir buton atayarak bu sayfada G7:G22 hücrelerinde sağ yazıyorsa miras hesapları sayfasında C8 hücresinde başlayarak aşağıya doğru (C9,C10....) zorunlu bilgiler sayfasında F7:722 hücrelerindeki ismi yazsın ve yine bu isimlerin sol tarafına yani miras hesapları sayfasında B8 hücresinden aşağıya doğru (B9,B10...) "çocuğu" yazmasını istiyorum,
2- Zorunlu bilgiler sayfasındaki veriler miras hesapları sayfasına aktarıldıktan sonra bu kez ÇOCUKLAR (evli ölen) sayfasına giderek D6 hücresinde "var" yazıyorsa B6 hücresindeki ismi zorunlu bilgiler sayfasındaki veriler aktarıldıktan sonra miras hesapları sayfası C hücresinde ilk boş yere ismi ve onun sol tarafında bulunan B hücresine de "damadı/gelini" yazmasını, daha sonra yine
Çocuklar (evli ölen) sayfasında D7: D15, I7:I15, N7:N15, D22: D30, I22:I30, N:22:N30, D37: D45, I37:I45, N37:N45 hücrelerinde sağ yazıyorsa miras hesapları sayfasında aynı şekilde aşağıya doğru aynı şekilde C hücresine ismi, B hücresine de "torunu" yazmasını istiyorum, yardımcı olabilirseniz memnun olurum, gerçi bu işlem bittikten sonra bir de Torunlar (evli ölen) sayfasındaki verilerin aktarımı da yapılacak ama soruma cevap verilirse ben de belki nasıl yapıldığına bakarak kendim birşeyler yapmak istiyorum, yapamazsam yine yardımlarınıza başvurmak zorunda kalacağım, her şey için hepinize şimdiden teşekkürlerimi iletir, saygılar sunarım.....
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

Kod:
Sub aktar()
Set s1 = Sheets("Zorunlu Bilgiler")
Set s2 = Sheets("Çocuklar (Evli Ölen)")
Set s3 = Sheets("miras hesapları")
Set s4 = Sheets("TORUNLAR (Evli Ölen)")
For a = 7 To s1.[f65536].End(3).Row
If s1.Cells(a, "g") = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s1.Cells(a, "f")
s3.Cells(sat, "b") = "çocuğu"
End If
Next
deg = Array("A4", "F4", "K4", "A19", "F19", "K19", "A34", "F34", "K34")
sutun = Array("D", "I", "N", "D", "I", "N", "D", "I", "N")
satir = Array(7, 7, 7, 22, 22, 22, 37, 37, 37)
For a = 0 To 8
If s2.Range(deg(a)) = "" Then GoTo 10
For b = 0 To 8
If s2.Cells(satir(a) + b - 1, sutun(a)) = "var" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s2.Cells(satir(a) + b - 1, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "gelini/damadı"
End If
If s2.Cells(satir(a) + b, sutun(a)) = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s2.Cells(satir(a) + b, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "çocuğu"
End If
Next
10 Next
For a = 0 To 5
If s4.Range(deg(a)) = "" Then GoTo 20
For b = 0 To 8
If s4.Cells(satir(a) + b, sutun(a)) = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s4.Cells(satir(a) + b, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "torunu"
End If
Next
20 Next
MsgBox "Aktarıldı."
End Sub
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Eline sağlık leventm zorunlu bilgiler tablosundaki bilgiler tam istediğim gibi aktarılıyor, ama burada bir eksiklik var, zorunlu bilgiler tablosundan miras hesapları tablosuna aktarılan sağ mirasçıların sol tarafına yani miras hesapları tablosunda B sütununa "çocuğu" yazmasını istiyorum, bu mümkünmü, bundan sonra işin asıl karışık olan Çocuklar evli ölen sayfasındaki verilen aynen zorunlu bilgiler sayfasındaki gibi aktarımı geliyor, Allah kolaylık versin diyerek saygılarımı sunuyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yukarıdaki kodu yeniledim tekrar deneyin.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Sayın leventm eline, emeğine sağlık tam istediğim gibi olmuş Allah senden razı olsun, ama ben birşey unutmuşum, o da (Çocuklar evli ölen ve Torunlar evli ölen) sayfalarında "eşi" yazan yerde eğer "var" ise onlarında "gelini/damadı" diye aktarılmasını ve ismini de yazmasını istiyorum, yani eğer buradaki kişilerin eşleri sağ ise miras hesapları sayfasında B hücresine "gelini/damadı" C hücresine de bu kişinin ismini yazmasını istiyorum, sizi çok meşgul ettiğimi biliyorum ama beni affedin, yardımlarınız için şimdiden teşekkür ederim, Allah razı olsun, Allah kolaylık versin saygılar...
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eşi yok olanların çocukları sağ olursa miras hesapları sayfasına aktarılmayacakmı?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanıza her sayfadaki verinin aktarılmış halini eklerseniz sanırım çözüm bulmak daha kolay olacak.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
eşi yok olanların çocukları miras hesaplama tablosuna aktarılacak orası doğru, sadece eşler var ise bunlarında aktarılması gerekiyor, "çocuğu, torunu" yerine "gelini/damadı" yazılması gerekiyor, yaptığınız işlemler doğru eksiklik bende ben onları işin içine katmamışım, aslında bilerek katmadım, çünkü o zaman soru çok karmaşık olacaktı içinden çıkmak zor olurdu onun için onu katmadım. saygılar.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
sayın leventm yaptığınız makro hakkında birşey daha sormak istiyorum, acaba bu makroyu bir butona atamadan zorunlu bilgiler, çocuklar evli ölen ve torunlar evli ölen sayfalarına gerekli bilgiler girildiği anda makro kendi kedine çalışabilirmi? eğer böyle bir makro var ve kısa ise öğrenebilirmiyim, şayet uzun ise gerek yok. saygılar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yukarıdaki kodu tekrar yeniledim bu haliyle deneyin. Kodun yaptığı işlemi sırasıyla yazıyorum.

1-"Zorunlu bilgiler" sayfasındaki g7:g22 aralığındaki verilerden "sağ" yazanları "miras hesapları" sayfasına C8 den itibaren adı soyadını, B8 den itbarende "çocuğu" kelimesini yazar.

2-"Çocuklar (Evli Ölen)" sayfasındaki tablolardan A4, F4,...... ana başlıklarda isim olanları sırasıyla tarar ve D6,I6,..... hücrelerinde "var" yazanları yine "miras hesapları" sayfasında C sütuna sırası ile aktarır, B sütununada "gelini/damadı" yazar. Yinbe aynı tabloların D7:D15,I7:I15,.... aralıklarındaki verileride sırayla tarar ve "sağ" yazanları yine "miras hesapları" sayfasında C sütununa sırasıyla aktarırken B sütununa "çocuğu" yazar.

3-' nolu maddedeki işlemlerin aynısını (var/yok kısmı hariç) yapar, sadece B sütununa "torunu" yazar.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Yukarıdaki kodu tekrar yeniledim bu haliyle deneyin. Kodun yaptığı işlemi sırasıyla yazıyorum.

1-"Zorunlu bilgiler" sayfasındaki g7:g22 aralığındaki verilerden "sağ" yazanları "miras hesapları" sayfasına C8 den itibaren adı soyadını, B8 den itbarende "çocuğu" kelimesini yazar.

2-"Çocuklar (Evli Ölen)" sayfasındaki tablolardan A4, F4,...... ana başlıklarda isim olanları sırasıyla tarar ve D6,I6,..... hücrelerinde "var" yazanları yine "miras hesapları" sayfasında C sütuna sırası ile aktarır, B sütununada "gelini/damadı" yazar. Yinbe aynı tabloların D7:D15,I7:I15,.... aralıklarındaki verileride sırayla tarar ve "sağ" yazanları yine "miras hesapları" sayfasında C sütununa sırasıyla aktarırken B sütununa "çocuğu" yazar.

3-' nolu maddedeki işlemlerin aynısını (var/yok kısmı hariç) yapar, sadece B sütununa "torunu" yazar.
vay ALLAH senden razı olsun Allah işini rast getirsin, Allah kolaylık versin, emeğine sağlık, sağol bu günlük bu kadar sizi rahatsız ettiğim yeter sizlere iyi akşamlar sağolun, varolun, eksik olmayın.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
sayın leventm formülde bir eksiklik olduğunu farkettim o da şu çocuklar evli ölen sayfasındaki gelini/damadı kısmı miras hesaplarına aktarılıyor, ama torunlar evli ölen sayfasındaki gelini/damadı kısmı miras hesaplarına aktarılmıyor,
(For b = 0 To 8
If s2.Cells(satir(a) + b - 1, sutun(a)) = "var" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s2.Cells(satir(a) + b - 1, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "gelini/damadı")
formülünü torunlar evli ölenler sayfasına nasıl uyarlanır.
yani torunlar evli ölen sayfasında D6,I6,N6,D21,I21,N21 hücrelerinde "var" yazıyorsa bu verilerin de miras hesapları tablosuna "gelini/damadı" şeklinde B hücresine isimleri de C hücresine aktarılması gerekiyor,

konu dışında başka bir sorum var. herhangi bir hücreyi renklendirdiğimiz zaman o hücredeki verinin aynı sayfada başka bir hücreye taşınması mümkün mü? saygılar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodu aşağıdaki ile değiştirin.

Kod:
Sub aktar()
Set s1 = Sheets("Zorunlu Bilgiler")
Set s2 = Sheets("Çocuklar (Evli Ölen)")
Set s3 = Sheets("miras hesapları")
Set s4 = Sheets("TORUNLAR (Evli Ölen)")
For a = 7 To s1.[f65536].End(3).Row
If s1.Cells(a, "g") = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s1.Cells(a, "f")
s3.Cells(sat, "b") = "çocuğu"
End If
Next
deg = Array("A4", "F4", "K4", "A19", "F19", "K19", "A34", "F34", "K34")
sutun = Array("D", "I", "N", "D", "I", "N", "D", "I", "N")
satir = Array(7, 7, 7, 22, 22, 22, 37, 37, 37)
For a = 0 To 8
If s2.Range(deg(a)) = "" Then GoTo 10
For b = 0 To 8
If s2.Cells(satir(a) + b - 1, sutun(a)) = "var" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s2.Cells(satir(a) + b - 1, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "gelini/damadı"
End If
If s2.Cells(satir(a) + b, sutun(a)) = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s2.Cells(satir(a) + b, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "çocuğu"
End If
Next
10 Next
For a = 0 To 5
If s4.Range(deg(a)) = "" Then GoTo 20
For b = 0 To 8
If s4.Cells(satir(a) + b - 1, sutun(a)) = "var" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s4.Cells(satir(a) + b - 1, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "gelini/damadı"
End If
If s4.Cells(satir(a) + b, sutun(a)) = "sağ" Then
sat = s3.[c65536].End(3).Row + 1
s3.Cells(sat, "c") = s4.Cells(satir(a) + b, sutun(a)).Offset(0, -2)
s3.Cells(sat, "b") = "torunu"
End If
Next
20 Next
MsgBox "Aktarıldı."
End Sub
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
sayın leventm yine her zamanki gibi çok hızlısınız, Allah hızınızı daha çok artırsın, çok teşekkür ederim, eline, emeğine sağlık
 
Üst