Eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
farkli sayfalardaki a1 hücresini aktuel tutmak isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
örnegin sayfa1 sayfa2 ve sayfa3..... deki a1 hücresini birbirine bagimli olarak tek bir hücre olarak nasil kullanabilirim. sayfa1 deki a1 hücre degeri degisince bütün sayfalardaki a1 hücre degeri ayni olsun. sayfa2!a1 formülü kullanirsam makro ile yapilan islem gerceklesmiyor, bu yüzden alternatif cözüm ariyorum. tesekkürler.
Sorularınızı, cevabımın altındaki İMZA bölümünde yer alan açıklamalar doğrultusunda ekleyeceğiniz örnek belge üzerinden sorarsanız daha hızlı ve net çözüme ulaşmanız kolaylaşır.
Örneğin makro'dan söz ediyorsunuz.
Belirttiğiniz Sayfa1 A1 hücresine veri girişi makro üzerinden mi yapılıyor, yoksa veri girişi elle mi?
Sayfa1 A1'e veriyi kullandığınız bir makro yazıyorsa, ilgili makro kodlarını görmek lazım.
Kullanmis oldugum makro asagidaki gibi. C19 hücresi sabit bir sayfada, J20 hücresi bütün sayfalarda. Bütün sayfalardaki J20 hücresi degistigi zaman ( farkli islemlerde ), makronun sabit bir sayfadaki C19 hücresine ayni islemi yapmasini istiyorum. Tesekkürler.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 10
If Intersect(Target, Range("J20")) Is Nothing Then Exit Sub
Range("C19").Value = Range("C19").Value + Range("J20").Value
If Range("J20") <> 0 And Range("C19") <> "" Then
Application.EnableEvents = False
Range("J20").Select
End If
10 Application.EnableEvents = True
End Sub
Makronun içinde olduğu belgenizin, özel bilgi içermeyen (makro için gerekli özel bilgi varsa, bunları anlamlı tutarlı bayka verilerle değiştirebilirsiniz) bir kopyasını foruma eklemeniz en iyisi.
Benzer işlemin çok sayfada yapılması için, makro kodlarını ThisWorkbook bölümüne alıp (aşağıdaki gibi)
istisna sayfalar varsa onu koşul olarak ekleyip, istisna sayfalar dışında belli hücredeki değişime duyarlı olacak şekilde makroyu düzenlemek gerekir.
Dediğim gibi en iyisi örnek belge yüklemeniz.
Ayrıca veri değişiminin hücreye değer yazılmasıyla mı yoksa formül sonucundaki değişim mi olduğu da önemli bir durum.
CPP:
Görüntülemek için giriş yapmanız gerekmektedir.
(3 satır)
-- Sayfa1'in kod bölümünde mevcut Worksheet_Change kodunu silin,
-- Thisworkbook (DieseArbeitsmappe) bölümüne aşağıdaki kodu yapıştırın.
Anasayfa dışındaki herhangi bir sayfanın J20 hücresine SAYIsal veri yazıldığında, yazılan değer Anasayfa C19'un üstüne eklenir.
Matematiğin genel kuralı gereği, NEGATİF sayı yazılırsa da Anasayfa C19'daki değer azalacaktır doğal olarak.
[REPLY]
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
Ömer Bey belirttiginiz gibi kod gayet iyi calisti. Calisma kitabimda sayfalar icin ayri ayri asagidaki yazdirma kodunu kullaniyorum. Thisworkbook a kodu sizin söylediginiz gibi yazinca ( 10: Target.Activate: ) kisimda hata veriyor. Tesekkürler.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With Sh
If .Name = "Anasayfa" Or Intersect(Target, .[J20]) Is Nothing Or _
Not IsNumeric(Target.Value) Then Exit Sub
Application.EnableEvents = False
Sheets("Anasayfa").[C19] = Sheets("Anasayfa").[C19] + Target.Value
Application.EnableEvents = True
10: Target.Activate: End With
End Sub
Sub etiket1()
Dim sm As Worksheet
Set sm = Sheets("Sayfa1")
ilk = InputBox("Baslangiç seri numarasini giriniz")
Son = InputBox("Bitis seri numarasini giriniz")
yazdir = MsgBox(Son - ilk + 1 & " adet sayfa bastirilacaktir: emin misin?", vbYesNo, "Print")
If yazdir = vbYes Then
For i = ilk To Son
sm.Range("j20") = i
sm.PrintOut Copies:=1
Next
End If
Alternatif cözüm olarak asagidaki makronun sadece J20 hücresinde sinirli kalmayarak bütün J sütunu boyunca yazmis oldugum rakamlari C19 hücresine nasil toplatabilirim. Tesekkürler.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 10
If Intersect(Target, Range("J20")) Is Nothing Then Exit Sub
Range("C19").Value = Range("C19").Value + Range("J20").Value
If Range("J20") <> 0 And Range("C19") <> "" Then
Application.EnableEvents = False
Range("J20").Select
End If
10 Application.EnableEvents = True
End Sub
Kullanmakta olduğunuz belgede YAZDIRMA işlemini DÜĞME kullanarak yapıyorsunuz anlaşılan.
Ancak örnek belgede böyle bir şey yok.
Afaki yazışmalar yapmak yerine, belgenizin son halini her defasında (sorunlu/sorunsuz fark etmez)
foruma eklerseniz, destek olacak kişi de sürekli yeni bir örnek belge oluşturup onun üzerinde deneme yapmak zorunda kalmaz.
Anasayfa dışındaki tüm sayfaların J sütunundami herhangi bir hücrele SAYI yazılması halinde,
Anasayfa C19'ta TOPLAMA işllemi için verdiğim (ThisWorkbook kısmına uygulanacağını belirttiğim) kodu aşağıdakiyle değiştirmeniz yeterli olacaktır. Yazdırma konusunu anlayabilmek için bu düzenlemenin yapıldığı son duruma göre oluşturulmuş yeni bir örnek belge eklerseniz bakılıp çözüm önerisinde bulunabilir.
Kanaatim; hala örnek belgenizin, cevaplarımın altındaki İMZA bölümünde yer alan açıklamalar doğrultusunda hazırlanmış,
gerçek belgenin, özel bilgi içermeyen kopyası olmadığı yönünde. Bunun oluşturacağı sıkıntı ise, verilen cevapların gerçek belgeye uyarlanması sırasında yaşanacak sorunlar/hatalar olacaktır.
CPP:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
Bu site, içeriği kişiselleştirmek, deneyiminize uyarlamak ve kayıt olmanız durumunda giriş yapmanızı sağlamak için yasal düzenlemelere uygun çerezler (cookies) kullanır.
Bu siteyi kullanmaya devam ederek, çerez kullanımına izin veriyorsunuz.