• DİKKAT

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

Makro ile üstüne yazdırma, resettes ve iferror formülü

Katılım
12 Temmuz 2010
Mesajlar
47
Excel Vers. ve Dili
2010 English
Arkadaşlar merhaba;

Uzun olacak ama üç sorum var;

Birincisi şu: Ekteki dosyada gördüğünüz gibi otomatik olarak a1 hücresine tarihi ve a-b-c-d-.. lerin karşılarına da verileri girip "Dünün verileri" yada "iki gün öncenin verileri" butonuna bastığımda ilgili günün tarihiyle bir aşağıya verileri yerleştiriyor.

Ama aynı butona ne kadar basarsam o kadar aşağıya ekliyor. Sorum şu butona bir defa bastık ve aşağı verileri girdi. Eğer aynı butona 2. defa basarsak "üstüne yazılsın mı?" gibi bir uyarıyla aynı tarihi üstüste aşağı eklemek yerine zaten daha önce girdiği verinin üzerine yazabilir mi?

İkinci sorum: Resettest makrosu formüllerin olduğu sahayı ve kenar çizgilerini silmiyor. Bunları da sildirebilir miyim?

Son sorum ise belki de en kolayı: iferror yada Türkçe'de eğerhata formülünde hatalıysa 0 yap dersem ortalamaları etkiliyor. Hatalıysa boş bıraktırabilir miyim?

Emeğiniz için çok teşekkür ederim arkadaşlar.

Not: bir önceki soruma da destek veren Ömer ve Necdet Yeşertener beylere de ayrıca teşekkürümü iletirim.
 
xlsm dosyaları eklenemiyormuş özür dilerim. xlsx dosyası ve makrolarım aşağıdaki gibi


aşağıya verileri eklemek için


Sub VeriAktar()
son = Cells(Rows.Count, "A").End(xlUp).Row + 4
tarih = Application.Max([A:A])

Range("A1:G11").Copy Range("A" & son)
Range("A" & son) = tarih - 1
Range("A" & son).NumberFormat = "m/d/yyyy"
End Sub



silmek için de


Sub ResetTest1()
For Each n In Range("A13:G1000") ' Substitute your range here
If n.Value <> 0 Then
n.Value = blank
End If
Next n
End Sub


makrolarını kullanıyorum.
 

Ekli dosyalar

Syn. CyberBlade;
Birinci sorunuz için koda aşağıda kırmızı olan satırı ekleyin

Kod:
Sub VeriAktar()
son = Cells(Rows.Count, "A").End(xlUp).Row + 4
tarih = Application.Max([A:A])
  
 [COLOR="Red"]If Range("A" & son - 14) = tarih - 1 Then
  MsgBox "Bu tarihli bilgi daha önce eklendi.!!!"
  Else[/COLOR]
  
Range("A1:G11").Copy Range("A" & son)
Range("A" & son) = tarih - 1
Range("A" & son).NumberFormat = "m/d/yyyy"

End If
End Sub
 
Syn. CyberBlade;
Son sorunuzu yanlış anlamadıysam;
Formüldeki hatalıysa = 0 yerine
Hatalıysa = " " Şeklinde değiştirin
 
Syn. ynmcany ,

Öncelikle cevabınız için teşekkür ederim bu da mantıklı. Sanırım "Üstüne yazılsın mı?" diye sorduramıyoruz. O durumda "Bu tarihli bilgi daha önce eklendi.!!!" "eğer değiştirmek istiyorsanız satırları silin" gibi bir uyarıyla değiştirsem de yeterince anlaşılır olur.

Tekrar teşekkürler.
 
Syn. CyberBlade;
Son sorunuzu yanlış anlamadıysam;
Formüldeki hatalıysa = 0 yerine
Hatalıysa = " " Şeklinde değiştirin


Evet doğru anlamışsınız ancak

=EĞERHATA(DÜŞEYARA(K1;'Veri giriş sayfası'!A28:G40;2;0);0)

formülünü

=EĞERHATA(DÜŞEYARA(K1;'Veri giriş sayfası'!A28:G40;2;0);" ")

olarak değiştirdiğimde de yerine otomatik 0 (sıfır) atıyor.
 
Syn. CyberBlade;
Dosyanız üzerinde denedim 0 yazmıyor, hhücre boş görünüyor.
 
Alttaki formülün aynısını kopyala yapıştır yapıyorum otomatik olarak 0 atıyor. hücre biçimlendirmesine bakıyorum Genel görünüyor. Ben bir yerde yanlış yapıyorum ama...
 
Syn. CyberBlade;
Ekte Dosya ekledim. Tomlam-ortalama sayfasındaki ilk iki satırı düzenledim.
Kopyala yapıştırla olmaz. Hepsinin 0' larını "" yapın.
 

Ekli dosyalar

Syn ynmcany,
Gerçekten teşekkür ederim. Aynen söylediğiniz gibi düzeltiyorum.
 
Syn. CyberBlade;
Silmek için Aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub ResetTest1()
Range("A15:G1000").Delete
End Sub
 
Sayın ynmcany;

Silmeyi yaptırabildim ve üstüne kenarlıkları da aşağıdaki kod ile kaldırabiliyorum. Şimdi bir sonraki adımım var o da; makromda gördüğünüz gibi butona basıldığında tarih tarih aşağı doğru ilerliyor. Şimdiki amacım ResetTest1 makrosunu ilk makroya monte edebilir miyim?

Yani silme butonuna bastığımızda aşağıdaki gibi A15:G25 aralığını değilde VeriAktar butonunun son eklediği hücreleri boşaltması. Sizce mümkün müdür?

Bu arada akşam akşam bu kadar sorumu yanıtlayıp bir şeyler öğretmeye çalıştığınız için de ayrıca teşekkürler.


Range("A15:G25").Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("H14").Select
 
Syn. CyberBlade;
Aşağıdaki şekilde kullanın.
Sub ResetTest1()
son = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & son - 10, "G" & son).Select

Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("H14").Select
End Sub
 
Sağolun sayın ynmcany,

Dosyamı tam istediğim gibi tamamlayabildim.
 
Geri
Üst