DOKUMANISTAN

Seçilen Aralığı Koşullu Biçimlendirme ile Renklendirme

Soru Cevap Bölümü

Kadir sordu

Excel Soruları

Merhabalar Mustafa Bey
Öncelikle emeğinize sağlık. Soruma internette çözüm ararken bloğunuza denk geldim ve Koşullu Biçimlendirmeyi görünce sorumu sorayım dedim. Soruya gelecek olursak;
Aşağıdaki gibi sayılardan oluşan bir tablo var

Aşağıdaki şekilde de Veri Doğrulama ile Sol ve Üst başlık başlık numaralarını seçiyorum. Seçtiğim değerler arasında kalan alanları koşullu biçimlendirme ile boyamak istiyorum.

Örneğin yukarıdaki şeçimde D10:H15 arası oluyor. Bu arayı boyamasını istiyorum.

Seçimde dikkat edilmesi gereken; Sütun seç-2 sütun seç-1’den, satır seç-2 ise Satır seç-1’den küçük olmamalı.

Bu işlemi Koşullu Biçimlendirme ile nasıl seçebilirim. Yardımcı olabilir misiniz.

 

Excel Cevapları

Kadir Bey Merhabalar;

Koşullu Biçimlendirme çalışabilmesi için D10:H15 arasındaki değerlere göre çalışır. Hücredeki başka kaynaktan gösterdiğiniz değerlerle Koşullu Biçimlendirme çalışmayacaktır. Bunun için Makro ile yapabiliriz.

 

Satır Sütun Değerlerini Tespit Etmek

Sizin sütun seçim ekranınızdaki seçtiğini değerlere göre aşağı kısmına sizinde kullandığınız KAÇINCI Fonksiyonu ile Satır ve Sütunların kaçıncı hücrede olduğunu buldum. Amacım seçilen hücrenin başlangıç ve bitiş noktasını bulmak.

Liste Veri Seçi Alanı

Formülleri aşağıdaki şekildedir.

M8 Hücresinde Başlangıç Hücresi Satır :
=KAÇINCI(O2;A2:A15;0)+1

N8 Hücresinde Başlangıç Hücresi Sütun :
=KAÇINCI(M2;B1:K1;0)+1

O8 Hücresinde Bitiş Hücresi Satır :
=KAÇINCI(P2;A2:A15;0)+1

P8 Hücresinde Bitiş Hücresi Sütun:
=KAÇINCI(N2;B1:K1;0)+1

 

Sayıların Anlamı

Formüllü Sayıların Anlamı

Öncelikle bu sayıların ne anlama geldiğini anlatıyım.

Başlangıç Hücresi Satır 10 Sütun 4

10.Satır zaten bildiğimiz 10. Satır. 4. Sütun ise A’dan saymaya başlarsak D sütununa denk geliyor. Yani İlk tespit ettiğimi hücre D10 hücresidir.

Başlangıçta Verinin Konumu

Bitiş Hücresi Satır 15 Sütun 8

15. Satır 8. Sütun ise soldan saydığımızda H14 hücresidir.

Bitişte Verinin Konumu

 

Hedef Hücrelere Makro ile Boyama İşlemi Yapıyoruz

Şimdi M8, N8, O8, P8 hücrelerindeki değerlerden yararlanarak Makro ile Hedef hücreleri boyama işlemi yapacağız.


Sub ConditionalFormat()
Dim baslangicHucreSatir As Integer
Dim baslangicHucreSutun As Integer
Dim bitisHucreSatir As Integer
Dim bitisHucreSutun As Integer
Call bicimleriTemizle
baslangicHucreSatir = Range(“M8”).Value
baslangicHucreSutun = Range(“N8”).Value
bitisHucreSatir = Range(“O8”).Value
bitisHucreSutun = Range(“P8”).Value
With Worksheets(1).Range(Cells(baslangicHucreSatir, baslangicHucreSutun), Cells(bitisHucreSatir, bitisHucreSutun)).Interior
Range(“a1”).Select
End Sub


Sub bicimleriTemizle()
Range(“B2:K15”).Select
Selection.ClearFormats
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub

Son olarak tablonun yanına buton ekleyerek makronun çalışmasını sağlıyoruz.

 Kodu kopyaladıktan sonra ( ” ) Çift tırnaklar farklı Karakter oluyor. Bunları klavyedeki Tab tuşunun üstündeki Çift tırnak ile karakterleri ile değiştiriniz.

 

 

Excel Dosya DownloadYazıda kullandığım dosyayı buradan indirebilirsiniz

 

 

 Güvenlik Nedeni ile Makro Dosyalarını paylaşamıyorum. Cevabınızda kullandığımız çalışma kitabını buradan indirip Alt + F11 tuşuna basarak Mako kısmına geçip yukardaki kodu yapıştırın. Sonra da Farklı Kaydet diyerek xlsm olarak kaydedin

 

Excelde KAT Formülü Nedir

Soru Cevap Bölümü

Esra Sözer sordu

Excel Soruları

Merhaba google da ne kadar araştırdıysam bir türlü bulamadım.

Ürün aldığımız yurtdışı firması bize bir excel gönderdi. Excelde çizimlere formül yazmışlar formülde şu =KAT(“PDF”;””)

Bu küçük çizimlere çift tıklayınca adobe readarda pdf olarak açılacakmış fakat açılmıyor “bu nesne için ana uygulama başlatılamıyor.” hatası veriyor. Bu formülüde ilk defa duydum.

Umarım derdimi anlatabilmişimdir. Yardımcı olabilirseniz çok sevinirim.

 

Excel Cevapları

Merhaba,

Excel’de KAT Formülü bende bulamadım. Office 365’de yeni formüller geliyor be de 365 kullanıyorum ama kat formülü bu alanda da yok. Yabancı sitelerde ki fonksiyon listelerinde araştırdım göremedim.

İki ihtimal var gibi. İşlem gönderen kişi’de Excel’in Adobe eklentisi olabilir. Onun için kullanılan özel bir formül üretmiş olabilirler. Yüksek ihtimal.

 

Ya da kullanıcı özel bir formül yazmış olabilir.

Makroda olan koda Yeni Kod Eklemek

Soru Cevap Bölümü

FATİH ASLAN sordu

Excel Soruları

merhaba!
Aşağıdaki konu için yardımınıza ihtiyacım var.

Yardımcı olursanız sevinirim. Şimdiden ilginize teşekkür ederim.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = “M11” Then
hafıza.Range(“B16”).Value = Range(“A3”).Value
hafıza.Range(“C16”).Value = Range(“A3”).Value

End If
End Sub

Excel Sayfa1 de yukarıdaki kodun yapmış olduğu işleve ilave olarak aşağıdaki kodu nasıl ilave edebilirim. Aşağıdaki kodu yukardaki koddan kopyalayarak düzenledim ve yapıştırdım fakat hata veriyor.

 

If Target.Address(0, 0) = “R11” Then
Sayfa1.Range(“S16”).Value = Range(“R3”).Value
Sayfa1.Range(“T16”).Value = Range(“R3”).Value

Selamlar

Excel Cevapları

Merhabalar;

Yoğunluktan geç dönüş yaptım kusura bakmayın.

Eğer iki if işlevi birbiri ile bağlantılı ise aşağıdaki şekilde yapabilrisiniz


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = “M11” Then
hafıza.Range(“B16”).Value = Range(“A3”).Value
hafıza.Range(“C16”).Value = Range(“A3”).Value

ElseIf Target.Address(0, 0) = “R11” Then
Sayfa1.Range(“S16”).Value = Range(“R3”).Value
Sayfa1.Range(“T16”).Value = Range(“R3”).Value
End If

End Sub

Birbirinden farklı if işlevi ise aşağıdaki şekilde yapabilirsiniz.


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = “M11” Then
hafıza.Range(“B16”).Value = Range(“A3”).Value
hafıza.Range(“C16”).Value = Range(“A3”).Value
End If

If Target.Address(0, 0) = “R11” Then
Sayfa1.Range(“S16”).Value = Range(“R3”).Value
Sayfa1.Range(“T16”).Value = Range(“R3”).Value
End If

End Sub

Altışarlı Sayı Yazmanın Kolay Yolu

Soru Cevap Bölümü

Özgür sordu

Excel Soruları

Merhaba, ben tez çalışmam için gireceğim veriler altışarlı şekilde artması gerekiyor bunu Excel dosyasına girmenin kolay bir yolu var mıdır?

Teşekkürler…
1
1
1
2
2
2
3
3
3

Excel Cevapları

Merhaba;
Boş bir Excel açın. Alt + F11 tuşuna basarak makro kısmına geçin ve aşağıdaki kodu yapıştırın. Kodda kacaKadar kısmını ne kadar ilerletmek istiyorsanız sayı yazın. Ben 20 yazdım. F5 ile kodu çalıştırdığınızda istediğiniz şekilde 6’şar tekrar yapacaktır.


Sub sayiUret()

Dim i As Integer
Dim j As Integer
Dim say1 As Integer
Dim say2 As Integer
Dim kacaKadar As Integer
say1 = 1
say2 = 1
kacaKadar = 20

For j = 1 To kacaKadar

For i = 1 To 6
Range(“A” & say1).Value = say2
say1 = say1 + 1
Next

say2 = say2 + 1

Next

End Sub

Excel Sayfalar Arası Geçiş

Soru Cevap Bölümü

 

Excel Soruları

İyi günler.

Birden fazla sayfası olan bir Excel çalışma kitabında, sayfalar arası otomatik geçişi nasıl yapabilirim?

Ctrl-PgDn veya Ctrl-PgUp şeklinde olanı sormuyorum. Sadece bir komutla sayfalar (mesela 5 sn aralıklarla) kendiliğinden değişecek.

Sorum bu şekilde. Teşekkürler…

 

Excel Cevapları

Merhabalar;

Bu işlemi makro ile yapmak gerekiyor. Makro Sayfasını açıp aşağıdaki kodu yapıştırın.
Kod 5 sayfalık Excel Kitabında 2 saniyelik bekleme ile sayfalar arasında geçiş yapacaktır.

Sub SayfalarArasiGecis()

For i = 1 To 6

Worksheets(“Sayfa” & i).Activate
Application.Wait (Now + TimeValue(“0:00:05”))
Next i
End Sub

Kapalı Dosyadan Veri Aktarma

Soru Cevap Bölümü

Murat sordu

Excel Soruları

Merhaba
Sizden bir konu hakkında yardım talep edecektim. Zaman ayırıp bakabilirseniz çok memnun olurum.
Personel işlerinde çalışıyorum. Her personel işe giriş yaptığı tarih itibari ile adına özel excel dosyam ve bunları ay ve yıl olarak klasörledim.

Benim sizden ricam ekte gönderdiğim Personel Veri.xlsx dosyasında sarı renge boyadığım alandaki verileri nasıl Veri Tabanı.xlsx dosyasına aktarabilirim.

Excel Cevapları

Merhabalar;
Verilerinizi inceledim. Aslında exceldeki kurgu ters olmuş. Mevcut hali ile Makro ile her alanı ayrı ayrı yazmak gerekir. Alan çok fazla olduğundan çok fazla kodlama demektir.
Bunun yerine size 3 farklı bir yöntem sunabilirim.

Personel Tablosu

Şöyle ki;

1 .Yöntem – PivotTable

Veri ilk giriş işlemini Form olarak tasarladığınız Personel Veri.xlsx yerine Veri Tabanı.xlsx dosyasında kaydetmenizi öneriyorum.  Burada tüm kayıtları tüm satırda kaydediyor olacaksınız.

Artık elinizde ham veri şeklinde veriniz olacak. Ham Verilerinizi de Form şeklinde görüntülemek için ise Pivot Table kullanmalısınız.  PivotTable ile elinizdeki form gibi tasarlamak gerekiyor. Biraz uğraşarak PivotTable Tasarım Sekmesindeki araçlarla tasarladığınız forma benzer veriler yapabilirsiniz.  Tasarım uğraşırsınız ama sonrasında rahat edersiniz.

 

2. Yöntem – Microsoft Access

Diğer bir alternatif ise Excel yerine Micosoft Access kullanmak. Exceldeki formların aynısını Access Form’da tasarlayıp ona uygun tablolar eklenir.

3. Yöntem – Excel Makro İle…

Eğer Excelde kalsın derseniz de Makro yazmak gerekiyor. Her değer farklı hücrede olduğu için makro ile aşağıdaki gibi hücreleri tek tek bir değişkene aktarılır.

adsoyad= Worksheets(“09-Personel_Envanteri”).Cells(9, 3)

sonra Veri Tabanı sayfasına (Veri Tabanı sayfasını form ile aynı dosyaya alınız) ilgili kolona yazmak üzere aşağıdaki şekilde kod yazarsınız.

sat = Cells(65536, “B”).End(3).Row + 1
Worksheets(“Sayfa1”).Range(“B” & sat).Value = adsoyad

Anlamı

  • En son boş satıra gider.
  • Form Hücresinden aldığınız değeri satıra yazar.

Umarım Yararlı olmuştur.