Sayfa ile birlikte Formül Kopyalama

Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Arkadaşlar forumda aradım benzerleri var ama derdime dermanı bulamadım. Sayfa kopyalama makrosunu yapıyorum,sayfanın adı 1 artıyor (1101--->1102 oluyor).

Sıkıntım şu. 1101 sayfasındaki A1 hücresinde yazan değer, 1102 sayfasında B1 hücresine ='1101'!A1 şeklinde yazılsın istiyorum.1103 sayfasında yine B1 hücresine ='1102'!A1 olsun istiyorum Mesela 1108 tarihinde işlem yaparken 1101 sayfasındaki A1 hücresinin değerini değiştirdiğimde otamatik olarak tüm sayfalardaki değerlerin değişebilmesini istiyorum.

Örneği ekte gönderiyorum.Saygılarımla,
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
dediğiniz command buton olayının End sub üzerine aşağıdaki kodları yazmakla mümkün (bul ve değiştir)

Kod:
    Sheets("1102").Select
    Cells.Replace What:=[B]"'1101'!"[/B], Replacement:=[B]"'1102'!"[/B], LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
ancak eski dosya adı ('1101!) ve yeni dosya adlarını ('1102!) ben değişkene alamadım ustalar hallederlerse olabilir
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Sayın hsayar teşekkür ederim ayrca Ustalardan yardım bekliyorum.
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Kod:

Private Sub CommandButton1_Click()

a = ActiveSheet.Name
ActiveSheet.Select
ActiveSheet.Copy Before:=Sheets(1)
b = a + 1
ActiveSheet.Name = b

Sheets("a").Select
Range(A1).Select.Copy
Sheets("b").Select
Range(B1).PasteSpecial



End Sub


Bu kodda son kısımda yani Sheets("a").Select kısmında hata veriyor.Bunu nasıl düzeltebilirim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
("a") değil (a) olacak ama işe sadece a1 için yarar
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Ustalarım yardımlarınızı bekliyorum. :(
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Kodunuzu aşağıdaki gibi revize ediniz.

Kod:
Private Sub CommandButton1_Click()
Dim arrSh()
Dim y%, i%, j%
Dim Enb&
For i = 1 To Sheets.Count
    If IsNumeric(Sheets(i).Name) Then
       y = y + 1
       ReDim Preserve arrSh(1 To y)
       arrSh(y) = Sheets(i).Name
       If i = 1 Then
          Enb = Sheets(i).Name
       Else
          For j = 1 To UBound(arrSh)
              If arrSh(j) > Enb Then Enb = arrSh(j)
          Next j
       End If
    End If
Next i
Sheets(Enb & "").Copy before:=Sheets(1)
ActiveSheet.Name = Enb + 1
ActiveSheet.Range("B1").Formula = "=" & Enb & "!A1"
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam yeni sayfadaki tüm formüllerde Sayfa!101 yönlendirilmiş hücreleri sayfa!102 ye yönlendirme nasıl olmalı acaba?
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
    Sheets("1102").Select
    Cells.Replace What:= Enb & "!", Replacement:= Enb + 1 & "!", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
işe yarar mı sizce
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Sub sayfa_ve_formul_kopyalama()
a = ActiveSheet.Name
ActiveSheet.Select
ActiveSheet.Copy Before:=Sheets(1)

Dim isim As Integer
Dim b As Integer

isim = a + 1
ActiveSheet.Name = isim


ActiveSheet.Range("A2").Formula = "=" & a & "!C2"-----------BÖYLE YAZINCA OLDU.

End Sub

Ferhat bey teşekkürler yazmış olduğunuz kodun 1 satırı işimi halletti. :)
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Haklısın, dediğin satırı kullanmak problemini çözer ama bir de şu şekilde düşün.

Çalışma kitabında, 1101, 1102, 1103(2) gibi üç sayfan olsun.

1101 sheet'i aktifken senin kodunu çalıştırırsak, hata alırız. Çünkü, 1102 adlı sheet zaten vardır.

1103(2) sheet'inde de kod çalıştırılırsa hata verir. Çünkü sayfa ismi nümeric olmadığı için, toplama işlemi gerçekleşmez.

Olası hataları tahmin ettiğimden, sana yukarıdaki (7 Nolu mesajdaki) kodu önermiştim.
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Haklısın, dediğin satırı kullanmak problemini çözer ama bir de şu şekilde düşün.

Çalışma kitabında, 1101, 1102, 1103(2) gibi üç sayfan olsun.

1101 sheet'i aktifken senin kodunu çalıştırırsak, hata alırız. Çünkü, 1102 adlı sheet zaten vardır.

1103(2) sheet'inde de kod çalıştırılırsa hata verir. Çünkü sayfa ismi nümeric olmadığı için, toplama işlemi gerçekleşmez.

Olası hataları tahmin ettiğimden, sana yukarıdaki (7 Nolu mesajdaki) kodu önermiştim.
Üstadım dediğiniz doğru deneyince aynı hatayı verdi ama biliyorsunuz bu vba ya yeni başladım ve kodlar karışık olunca sadece ezbere dayalı oluyor gibi. O yuzden sadece anlayabildiğim kadarıyla yetiniyorum.Artık 1103(2) gibi bir sayfayı çalışma kitabında bulundurmam :)

Birde son olarak çalışma sayfasında 0 değerlerinin görünmemesi için (A1:K110 aralığında) nasıl bir kod yazabilirim?

Tekrar teşekkürler.
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Excel XP kullandığım için (nerden bunu yüklediysem ! ) araçlar seçenekler görünümden 0 sekmesi yok. yüzden makro kodu gerekiyor.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Excel XP kullandığım için (nerden bunu yüklediysem ! ) araçlar seçenekler görünümden 0 sekmesi yok. yüzden makro kodu gerekiyor.
Görünüm sekmesinde olması lazım. Bence gözünüzden kaçmıştır.

Aşağıdaki kod, aktif pencerede, sıfır değerlerin gözükmemesini sağlar. Bu komutu "Makro Kaydet" diyerek de elde edebilirdiniz.

Kod:
ActiveWindow.DisplayZeros = False
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Abi kod için teşekkür ederim.Ama seçeneklerde yok maalesef.Ekran görüntüsü aşağıda.

 
Üst