• DİKKAT

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

SpecialCells konusu

Katılım
30 Nisan 2008
Mesajlar
73
Excel Vers. ve Dili
2007 tr
Merhaba,

Bir aralıktaki örneğin formüllü, boş, sabit değerli ya da en son vs hücrelerin seçimi için SpecialCells(xltype....) gibi bir formülün kullandığnı görüyorum.

SpecialCells komutunun hangi durumlarda ve hangi değişkenlerle kullanılacağını bulabileceğim toolu bir liste ya da makale var mı?
 
Merhaba,
DÜZEN>GİT>ÖZEL bölümünden bu menülere ulaşabilirsiniz.
Makro kaydet yöntemini kullanarak bunların kodlarını elde edebilirsiniz.
 
Sayın hamitcan, gönderdiğiniz bağlantıyı daha önce incelemiştim fakat malesef bilgiler yetersiz, örneğin Selection.SpecialCells(xlCellTypeFormulas, 23)'daki 23 sayısı neyi temsil ediyor, diğer kullnılabilecek sayılar nelerdir, buna cevap getirmiyor.

Sayın leumruk, düzen komutunu yeni excel'de nerede bulabilirim acaba?
 
Bu bağlantıda da yine anlamadığım çeşitli rakamlar var. "xlcelltype" kısmındaki "constants" herhangi bir açıklama içermiyor ne yazık ki. Yine de vakit ayırıp yanıtlayan herkese teşekkür ederim.
 
uzmanı değilim ama benim de ilgi duyduğum bir konu olduğu için arada bir vesile olursa araştırıyorum.

ms'un sitesine bakarsak:
XlCellType
Constant Value
xlCellTypeAllFormatConditions -4172
xlCellTypeAllValidation -4174
xlCellTypeBlanks 4
xlCellTypeComments -4144
xlCellTypeConstants 2
xlCellTypeFormulas -4123
xlCellTypeLastCell 11
xlCellTypeSameFormatConditions -4173
xlCellTypeSameValidation -4175
xlCellTypeVisible 12

şimdi aşağıdaki 2 kod da aynı işi yapar. yani A1:A250 aralığında boş bir hücre varsa o hücreninin tüm satırını siler.

Kod:
[A1:A250].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Kod:
[A1:A250].SpecialCells(4).EntireRow.Delete


aşağıdaki 2 kod da aynı işi yapar. yani A1:A250 aralığında formül içeren ve formül sonucu hata veren bir hücre varsa o hücreninin tüm satırını siler.
Kod:
[A1:A250].SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
Kod:
[A1:A250].SpecialCells(-4123, 16).EntireRow.Delete
 
Son düzenleme:
Hımm, şimdi bağlantılardaki sayıları anladım, ama [A1:A250].SpecialCells(-4123, 16).EntireRow.Delete satırındaki 16 sayısının nereden alındığını, bu sayıların listesinin nerede olduğunu bilmem gerekiyor. Teşekkürler.
 
yukarıdaki link'e bakarsanız, sonlara doğru göreceksiniz

XlSpecialCellsValue
--------------------------------------------------------------------------------

Constant Value
xlErrors 16
xlLogical 4
xlNumbers 1
xlTextValues 2
 
Selamlar,

Sn. patdizz,

Bu uygulamadaki sonuçları öğrenmek için MAKRO KAYDET yöntemini kullanabilirsiniz.

Örnek bir dosya oluşturun. Dosyanızda formüller, boş hücreler, koşulu biçimlendirmeler kullanın. Özellikle kullandığınız formüllerin bazılarının hata vermesini sağlayın. Daha sonra bu dosya üzerinde makro kaydet yöntemi ile F5-ÖZEL menüsünü kullanarak sayfada işlemler yapın. Ve makroyu durdurup oluşan kodları tek tek inceleyin. Bu şekilde o menüdeki işlevlerin kodlarını rahatlıkla öğrenmiş olursunuz.
 
SpecialCells(xlCellTypeFormulas, 23)'deki 23'ü bulamadım mesela. Bunları açık açık yazan, örnekler veren bir döküman ya da bir site sanırım yok. Kitapları da karıştırdım ama orada da yok. Yine de teşekkürler.
 
ayrıca:

SpecialCells(xlCellTypeFormulas, 23).Select 'All formulae
SpecialCells(xlCellTypeFormulas, 16).Select 'All formulae with errors
SpecialCells(xlCellTypeFormulas, 2).Select 'All formulae with text
SpecialCells(xlCellTypeFormulas, 4).Select 'All formulae with logic
SpecialCells(xlCellTypeFormulas, 6).Select 'All formulae with text or logic


http://www.mvps.org/dmcritchie/excel/proper.htm
 
XlSpecialCellsValue Constants:

xlErrors = 16

xlLogical = 4

xlNumbers = 1

xlTextValues = 2


the 3 is a combination of xl numbers and xltextvalues

23 is the default as it is sum of all of the cellsvalue constants.

Highlight SpecialCells with your mouse, then press F1 to view help and a bit more on how it's used.

yazmışlar. yani bu rakamları ister tek tek, ister toplayarak kullanabiliyoruz.. Enteresan. Sanırım şimdi anladım. Teşekkürler mancubus :)
 
rica ederim.

aşağıdaki gibi de oluyor.

Kod:
Selection.SpecialCells(xlCellTypeFormulas, xlNumbers + xlTextValues).EntireRow.Delete
=
Kod:
Selection.SpecialCells(xlCellTypeFormulas, 1 + 2).EntireRow.Delete
=
Kod:
Selection.SpecialCells(xlCellTypeFormulas, 3).EntireRow.Delete

yani 23 (ki, kullanmaya da gerek yokmuş aslında, default olduğu için) formül sonucu rakam ise, text ise, mantıksal ise, sabit ise vb siliyor.



ayrıca şuraya da bakmakta fayda var:
http://www.rondebruin.nl/specialcells.htm
 
Sn mancubus

Verdiğiniz linkler gerçekten çok faydalı bilgiler içeriyor. Araştırmaya zaman ayırıp paylaştığınız için teşekkür ederim.
 
Sn mancubus

Verdiğiniz linkler gerçekten çok faydalı bilgiler içeriyor. Araştırmaya zaman ayırıp paylaştığınız için teşekkür ederim.

rica ederim.

sizin okyanus kadar katkılarınızın yanında bir damla katkım oldu ise ne mutlu bana. :)
 
Geri
Üst