• DİKKAT

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

4 Ayrı Hücrede Rastgele Rakam var Eğer Ve İle Dolu/Boş oluşuna Göre Formül

Katılım
14 Ocak 2006
Mesajlar
60
Excel Vers. ve Dili
2010 Türkçe
Merhaba ;
Şirketler için Karar hazırlıyorum yazdığım kararı otomatik hazırlamak istiyorum, şöyleki
Sayfa1 de K8 K9 K10 K11 hücrelerde sabit olmayan rakamlar var.
Sayfa2 de Şöyle yapmak istiyorum B10 Hücresine formül yazarak şöyle olmasını istiyorum,
Sayfa2 B10 Hücresine Sayfa1 K8 ,K9 ,K10 ,K11 hücrelerde eğer rakam varsa =eğer(ve( formülünü kullanarak İlk önce K8 hücresindeki 1.000,00 TL'si "Geçmiş Yıllar Karlarından" K9 hücresindeki 2.000,00 Tl'si "Düzeltme Farklarından" K10 hücresindeki 500,00 Tl'si "Ortaklardan Senetsiz Borçlarından" ve K11 hücresindeki 3.000,00 Tl'si ise Nakdi Karşılanmıştır. şeklinde olacak ancak, Eğer K8 hücresi boşsa K9,K10,K11 dolu ise dolu olanı yazsın eğr K9 boşsa K10,K11 dolu olanı yazsın eğer K10 boşsa K11 dolu olanı yazsın Sayfa1 deki K8 K9 K10 K11 hücrelerden hangisi boş ise dolu olanı formül sonucuna varmak istiyorum
diyelimki K8 de sıfır ise diğer hücrelerde değer varsa değer olan hücrelerin değerlerini yazsın bu dögü diğer K9 K10 k11 için de geçerlidir diyelimki K8 Dolu ama K10 boş olabilir,
Dolu/Boş oluşuna göre sonuç versin. Teşekkür ederim.

Yaptığım formül şu şekildedir ancak sonucuna varamadım K8 hücresi boşsa sıkıntı yok ancak K9 boşsa YANLIŞ sonucunu veriyor.

=EĞER(VE(L8="";L9<>"";L10<>"";L11<>"");METNEÇEVİR(L9;"#.##0,00")&"TL'si Ortaklardan Senetsiz Borç "&METNEÇEVİR(L10;"#.##0,00")&"TL'si Sermaye Düzeltmesi Farkları "&METNEÇEVİR(L11;"#.##0,00")&"TL'si nakden artırılmıştır.";EĞER(VE(L9="";L10<>"";L11<>"");METNEÇEVİR(L10;"#.##0,00")&"TL'si Ortaklardan Senetsiz Borç "&METNEÇEVİR(L11;"#.##0,00")&"TL'si nakden artırılmıştır.";EĞER(VE(L10="";L11<>"";);METNEÇEVİR(L11;"#.##0,00")&"TL'si nakden artırılmıştır.";EĞER(VE(L11="";L10<>"";);METNEÇEVİR(L11;"#.##0,00")&"TL'si nakden artırılmıştır."))))
 
Son düzenleme:
Merhaba,
Size yardım etmeyi isterdim. Anlatımınız da oldukça ayrıntılı. Ancak cevap yazmadan önce, bu anlatımınıza uyan dosya üzerinde deneme yapıp sorunsuz çalıştığından emin olmak gerekecektir. Bunun için;
Boş bir excel dosyası açmalıyım, belirttiğiniz şekilde sekmelere isim vermeliyim, sonra o hücreleri bulup sayısal değerler yerleştirmeliyim, nihayet formülü Sayfa2 de B10 hücresinde bu formülü denemeliyim. Ne yazık ki bunu yapmayı hiç sevmiyorum. Yardım etmeyi seviyorum, ama anlatım örnek dosya ile desteklenmişse.
Sizin gibi yardım isteyen tüm arkadaşlar bu konuda baştan örnek dosya içinde durumu ifade ederlerse karşılıklı yardımlaşma daha verimli olacaktır.
 
merhaba örnek dosya göndermek istiyorum ama bilmiyorum yardımcı olabilirmisiniz.
 
merhaba örnek dosya göndermek istiyorum ama bilmiyorum yardımcı olabilirmisiniz.
Dosya yükleme sitelerinin bir çoğu virüs barındırmaktadır. Sitede en çok tercih edilen, dosya.tc isimli sitedir. Sanırım kullanıcı olarak kayıt olmanız gerekecektir.
 
Merhaba,
Örnek dosyanızda baz alınmasını istediğiniz 4 hücreden hangisi boş olursa olsun, dolu olanlara karşılık gelen değerleri içiçe eğer formülü ile doğru yazmak imkansızdır. Çünkü bu şekilde en fazla 7 tane eğer kullanabilirsiniz. Bu yüzden istediğiniz çözümü makro ile çözmeye çalıştım. Sayfa1 in sekmesine sağ tıklayarak "Kod Görüntüle" yi seçin, açılan pencereye aşağıda ki kodları yapıştırın. Gerçek dosyanızdaki hücreler örnek dosyadan farklı konumda ise, kodları dosyanıza göre uyarlamaya çalışınız.
Kod:
Sub otomatik_tekst()
Dim sh As Worksheet, dolu, hcr As Range, alan As Range, say As Byte, _
    yaz As String, L8 As Range, L9 As Range, L10 As Range, L11 As Range, _
    y As Range
    
Set sh = Sheets("Sayfa1")
[B][COLOR="Red"]Set alan = sh.Range("L88,L104,L109,G117,L11")
[/COLOR][/B]
say = Application.WorksheetFunction.Count(alan)
If say = 4 Then 'K8:K11 arasındaki hürelerin hepsi doludur
   [COLOR="Red"][B] For each yeni_hcr in alan[/B][/COLOR]
        yaz = yaz & Format([COLOR="Red"][B]yeni_hcr.[/B][/COLOR]Value, "#,##0.00") & _
        " Lirası " & [COLOR="Red"]sh.Range("M" & hcr.Row)[/COLOR].Value & ", " '[COLOR="Red"][B]bu hücrenin yeri de değişecekse, yeni_hcr.offset(0,1).value olabilir ???[/B][/COLOR]
   [COLOR="Red"][B] Next yeni_hcr[/B][/COLOR]
    yaz = yaz & " Nakdi karşılanmıştır."
ElseIf say < 4 And say > 0 Then 'K8:K11 arasındaki hücrelerden boş olanlar varsa:
    s = 0
   [COLOR="Red"][B] For each yeni_hcr in alan[/B][/COLOR]
        If [COLOR="Red"][B]yeni_hcr.value [/B][/COLOR]<> "" Then
            s = s + 1
            dolu = dolu & ", " & [COLOR="Red"][B]yeni_hcr.[/B][/COLOR]Address
        End If
    [COLOR="Red"][B]Next yeni_hcr[/B][/COLOR]
    dolu = Mid(dolu, 2, Len(dolu))
    dolular = Split(dolu, ",")
    For i = 0 To s - 1
        Set y = sh.Range(dolular(i))
        yaz = yaz & Format(y.Value, "#,##0.00") & _
        " Lirası " & y.Offset(0, 1).Value & ", "
    Next i
    yaz = yaz & " Nakdi karşılanmıştır."
End If

Sheets("Sayfa2").Range("B10").Value = yaz
MsgBox "Belgeniz hazırlanmıştır.", vbInformation, "antonio"
End Sub
 
Son düzenleme:
Teşekkür ederim.
L8:L11 arası hücrelerin yerine I88 I104 I109 E13 kullanmak istiyorum böyle bir imkan varmı.

Yardımlarınızdan dolayı teşekkür ederim.
 
6 No'lu mesajımı güncelledim.
 
Merhaba,
Kod ta bir hata uyarısı ile karşılaşıyorum.
"Run-time error'1004':
Method 'Range' of object!_Worksheet' failed
KOD: yaz = yaz & Format(yeni_hcr.Value, "#,##0.00") & _
" Lirası " & sh.Range("M" & i).Value & ", " 'bu hücrenin yeri de değişecekse, yeni_hcr.offset(0,1).value olabilir ???
NOT:
bahsi ettiğiniz yani "M" alanı değiştireceğim (L88 ,L104 ,L109 ,G117 VE L11 Olacak)
 
Merhaba,
Üzerinde çalıştığım örnek dosyada belirlediğiniz alanlara göre kodları hazırlarken, verilerin alınacağı hücrelerin ardışık olmasına göre uygun döngüler hazırladım. Daha sonra bu bilgi hücreleri, ardışık olmayan şekilde belirlendi. Sanırım sorun oradan kaynaklanıyor. Ben en iyisi size ilk kodları da göndereyim, siz kendinize uygun olanlara göre düzenleme yaparsınız. Kolay gelsin.
Kod:
Sub otomatik_tekst()
Dim sh As Worksheet, dolu, hcr As Range, alan As Range, say As Byte, _
    yaz As String, L8 As Range, L9 As Range, L10 As Range, L11 As Range, _
    y As Range
    
Set sh = Sheets("Sayfa1")
Set alan = sh.Range("K8:K11")

Set L8 = sh.Range("L8")
Set L9 = sh.Range("L9")
Set L10 = sh.Range("L10")
Set L11 = sh.Range("L11")

say = Application.WorksheetFunction.Count(alan)
If say = 4 Then 'K8:K11 arasındaki hürelerin hepsi doludur
    For i = 8 To 11
        yaz = yaz & Format(sh.Range("L" & i).Value, "#,##0.00") & _
        " Lirası " & sh.Range("M" & i).Value & ", "
    Next i
    yaz = yaz & " Nakdi karşılanmıştır."
ElseIf say < 4 And say > 0 Then 'K8:K11 arasındaki hücrelerden boş olanlar varsa:
    s = 0
    For i = 8 To 11
        If sh.Range("K" & i).Value <> "" Then
            s = s + 1
            dolu = dolu & ", " & sh.Range("L" & i).Address
        End If
    Next i
    dolu = Mid(dolu, 2, Len(dolu))
    dolular = Split(dolu, ",")
    For i = 0 To s - 1
        Set y = sh.Range(dolular(i))
        yaz = yaz & Format(y.Value, "#,##0.00") & _
        " Lirası " & y.Offset(0, 1).Value & ", "
    Next i
    yaz = yaz & " Nakdi karşılanmıştır."
End If

Sheets("Sayfa2").Range("B10").Value = yaz
MsgBox "Belgeniz hazırlanmıştır.", vbInformation, "antonio"
End Sub
 
sayın antonio;
eski kodlar işime yaramaz demek istediğim 6 no'lu mesajınızda vermiş olduğunuz kodlar tamda istediğim gibi olmuş size bildirdiğim hata dışında.
6 Nolu mesajınızda güncel hali ile koda ek olarak eklemek istediği hüce "M" yerine aşağıdaki hücre adreslerini kullanmak istiyorum bunu sağlam için kod nasıl yaparım onu demek istemiştirm.
(L88 ,L104 ,L109 ,G117 VE L11 Olacak)
 
Geri
Üst