Soru Makro veya VBA ile Şarta Bağlı Karşı Hücreye Veri Yazdırmak

Katılım
8 Aralık 2009
Mesajlar
44
Excel Vers. ve Dili
excel 2016
Merhabalar,
A Sütununa malzeme isimleri giriyorum, bu malzemelerden A ve B malzemleri girildiğinde karşı hücreye ( B Sütununda) A için"..... iade edildi" ve B malzemesi için "..... kabul edildi." yazılsın. Diğer malzemeler için ise hiç bir şey yazılmasın boş kalsın. Bunu eğer fonksiyonu ile yapabiliyorum ama mümkünse makro veya vba ile yapmak mümkün mü? yardımcı olacak arkadaşlara şimdiden teşekkürler.
Örnek dosya
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Rica Ederim
İyi çalışmalar
 
Katılım
8 Aralık 2009
Mesajlar
44
Excel Vers. ve Dili
excel 2016
Rica Ederim
İyi çalışmalar
Şöyle bir sıkıntı yaşıyorum, "..... iade edildi" ve "..... kabul edildi" noktalar yerine el ile farklı isimler giriyorum fakat makroyu her çalıştırdığım da noktalar yerine yazdığım kelimeyi silip "..... iade edildi" ve "..... kabul edildi" şeklinde geri döndürüyor. Bunun önlemek mümkün mü?
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Makro içinde noktalarla ilgili bir şey yok. Siz noktaların olduğu yere ne yazmak istiyorsunuz. Siz olmazsa aldığınız hatayı dosya üzerinde belirtirseniz ona göre çözüm üretilebilir.
 
Katılım
8 Aralık 2009
Mesajlar
44
Excel Vers. ve Dili
excel 2016
Selamlar
Makro içinde noktalarla ilgili bir şey yok. Siz noktaların olduğu yere ne yazmak istiyorsunuz. Siz olmazsa aldığınız hatayı dosya üzerinde belirtirseniz ona göre çözüm üretilebilir.
Öncelikle ilginizden dolayı teşekkür ederim. Dosya içinde derdimi anlatmaya çalıştım.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Bu bahsettiğiniz x, y, z gibi yazacağınız isimleri noktaların olduğu yerlere manuel mi yazacaksınız?
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar

Ama kodu her çalıştırdığınızda manuel yazdıklarınızı siler
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Yazacağınız isimler belli ise çözüm üretilebilir
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Nasıl olacak bilemedim. belki üstatlar bir çözüm bulabilirler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aşağıdaki kodu sayfanızın kod bölümüne uygulayınız.

A sütununa veri girişi yaptığınızda kod çalışacaktır. Eğer B sütunu dolu ise bir değişiklik yapmayacaktır. B sütunu boş ise isim girebilmeniz için bir inputbox karşınıza gelecektir. Buraya yazacağınız isim B sütununa yazılacaktır.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim My_Text As String
    If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then Exit Sub
    Select Case Target
        Case "A malzemesi"
            If Target.Offset(, 1) = "" Then
10              My_Text = InputBox("İsim giriniz.")
                If My_Text = "" Then GoTo 10
                Target.Offset(, 1) = My_Text & " iade edildi."
            End If
        Case "B malzemesi"
            If Target.Offset(, 1) = "" Then
20              My_Text = InputBox("İsim giriniz.")
                If My_Text = "" Then GoTo 20
                Target.Offset(, 1) = My_Text & " kabul edildi."
            End If
        Case Else: Target.Offset(, 1) = ""
    End Select
End Sub
 
Katılım
8 Aralık 2009
Mesajlar
44
Excel Vers. ve Dili
excel 2016
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim My_Text As String If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then Exit Sub Select Case Target Case "A malzemesi" If Target.Offset(, 1) = "" Then 10 My_Text = InputBox("İsim giriniz.") If My_Text = "" Then GoTo 10 Target.Offset(, 1) = My_Text & " iade edildi." End If Case "B malzemesi" If Target.Offset(, 1) = "" Then 20 My_Text = InputBox("İsim giriniz.") If My_Text = "" Then GoTo 20 Target.Offset(, 1) = My_Text & " kabul edildi." End If Case Else: Target.Offset(, 1) = "" End Select End Sub
Merhaba Korhan bey, her zamanki gibi hızır gibi yetişmişsiniz çok teşekkür ederim.
 
Üst