Arama butonu
Bu konudaki kullanıcılar: 1 misafir
77
Cevap
147861
Tıklama
1
Öne Çıkarma
VBA & Excel ve Makrolar Örnekler Sorunlar
S
19 yıl
Yarbay
Konu Sahibi

Makrolar

Microsoft Office paket programı içinde bulunan programların bazılarında, kullanıcıya kolaylık olsun diye, sürekli tekrar edilen (rutin) işlemleri otomatik hale getirmek için Makro komutu kullanıcıya sunulmuştur. Özellikle Excel’in bu komuta belki de diğer programlardan daha çok ihtiyacı vardı.

Makrolar hazırlanırken, Excel’in arka planında çalışan Visual Basic programlama dili de hazır halde beklemektedir. Herhangi bir kayıt yapıldığında bu programlama dili aktif hale gelir ve sizin yapmış olduğunuz herhangi bir makro komutunu programlama diline çevirir. Böylece daha sonra, hazırlamış olduğunuz makroyu düzenlemek istediğinizde, Excel bu imkanı size rahatlıkla sunar.

Makrolar yukarıda da belirttiğimiz gibi, sürekli tekrarlamak zorunda kaldığınız komutları, biçemleri vs.. sizin için otomatik hale getirir. Makro hazırlamadan yapmak istediğiniz işi eğer her defasında 100-150 komut vererek yapacaksanız, makroyu hazır hale getirdiğinizde, tek bir tıklama ile halledebilirsiniz.

Makroları kendiniz hazırlayabileceğiniz gibi, daha önce hazırlanmış makroları da kullanma imkanınız var. Bu hem kendi bilgisayarınızdan hem de başka bilgisayarlardan transfer şeklinde olabilir.

Burada uyarmadan geçmeyelim.

Dışarıdan transfer ederek kullanacağınız her makro sizin için ne kadar faydalı da olsa dikkatli olmanız gerekmektedir. Bunun nedeni çok basit. Makroların bir programlama dili ile desteklendiğini söylemiştik. İşte ipucu burada yatıyor. Dışarıdan transfer ettiğiniz her makro VİRÜS içerebilir.


Excel’de makro oluşturmanın üç yöntemi var

1- Makro Kaydetme: Makroları bir teyp kullanıcısı gibi kaydetmek. Makrolar bölümünün konusunu bu seçenek oluşturuyor.

2- VBA Kodlama: Makro olarak hazırlamak istediğiniz komutları modül olarak Visual Basic’de hazırlamak. VBA Kodlama bölümünün konusunu bu seçenek oluşturur.

3- Fonksiyon Hazırlama: Excel'in yerleşik fonksiyonları (işlevleri)'na benzer fonksiyonları modül sayfasını kullanarak hazırlayabilir. Uzun formüller yazmaktan kurtulursunuz. Fonksiyonlar bölümünün konusunu bu seçenek oluşturur.


http://www.excel.gen.tr/Makrolar_01.asp sitesinden alıntıdır.




Uzun zamandır böyle bir konu acmayı düsünüyordum. Excel günümüzde işletmelerce kullanılan en yaygın program. Bunun yanında işletmeler işlemlerini daha hızlı ve kolay bir şekilde halledebilmek için Excel içine kod yerleştirmeyi yapıyorlar. Yani Visual Basic Excel içine gömülüyor.

Burada amac Excelde makroları kullanarak visual basic kodu yazabilmektir. Eğer destek gelirse bu konuyu baya geliştirmeyi düsünüyorum.

Kısaca başlamak gerekirse Excel de Araçlar - Makra - Visual Basic Düzenleyicisini acarak ana pencereye ulaşabiliriz. Bunun yanında Excel de üst bölgede sağ tıklayıp Visual Basic seceneğini aktif hale getirerek Visual Basic arac cubugunu ekrana getirebiliriz. Bence ikinci yöntem simdilik daha kolay ve basittir.

Bu arac cubugunda simgelere bakacak olursak. Makroyu çalıştırma,kaydetme,güvenlik,VB düzenleyicisi,denetim araç kutusu, tasarım modu ve kod düzenleme simgeleri bulunur.Burada kullanıslı olan denetim arac simgesidir. Bilinen VB modüllerine ulasmamızı sağlar.

En basitinden bir command buttonunu bu düzenek sayesinde excel sayfasına ekleyebiliriz. Resimde görüldüğü gibi;

< Resime gitmek için tıklayın >

Şİmdi bu command butonu için basit bir kod yazalım. Diyelim bugunun tarihini öğrenmek istiyoruz. Bu butona basınca bir mesaj kutusu ile günü tarihi ekrana gelsin istiyoruz. Bunun için butona kod gömmeliyiz.Bunu için 7 simge içinde yer alan tasarım modunun acık olması gerekir. Bundan sonra aynı VB deki gibi butonu cift tıklayarak kod penceremizi acabiliriz. İlk anlattıgım kod peceresi yeri burasıydı. Neyse devam edelim burada bos olan sayfamıza

Sub Datefonk()
msgbox Date
End sub

yazalım ve dosyamızı kaydedelim. İsterseniz kod penceresi acık durabilir isterseniz kapatabilirsiniz. Excel ana sayfamıza gelelim ve tasarım modundan cıkalım. Artık kod hazır halde ve butona tıklama yapalım. İşte sonuç;

< Resime gitmek için tıklayın >

Böyle basit bir örnek ile giriş yaptık. İnsallah devamı gelir.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi serseri -- 28 Ağustos 2006; 1:45:22 >

F
19 yıl
Binbaşı

serseri hocam, bence çok güzel bir konu açmışsın. makroları ben de çok seviyorum.

staj yaptığım yerde 2 ay yoğun bir şekilde uğraşmıştım zamanında. hala da ara sıra ufak tefek şeyler yazarım.

o zaman izninizle size bir soru sorayım. excel'de öyle bir makro yazın ki, bilgisayar rastgele bir sayı tutsun, kullanıcı tahminde bulunsun.

eğer tahmin, rastgele olan sayının altında veya üstünde ise kullanıcıyı uyarsın. amaç en az tahminde sayıyı yakalayabilmek.(bu yarışma bir tv

programında vardı sanırım.)


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Merhaba öncelikle hemen cevabın gelmesi sevindirici.

Soruna gelirsek VB de böyle birşeyler yapmıstım.Çok da hoş olmuştu. Şimdi Excel de denedim ama sürekli sorunla karsılastım.Algoritmayı su sekilde düsündüm; a1 hücresine rassal sayı atanır 100 ile carpılır ve sayı yuvarlanır böylece 0-100 arasında sayı üretilir. Bu sayı A1 hücresine sabitlenir ki bunun yapamadım kodta $ işaretini koyacak yer kafamı karıstırdı. Daha sonra Excele bir textbox atadım ve buna girilen değer ile a1 değerini kıyaslama yaptım. ama a1 hücresindeki üretilen sayı sürekli 100 oldu. İlk satır "Range("a1") = (Round(rnd(), 0)) * 100" hatalı gibi ama bence sorun yok Oradaki sorunuda çözemedim.
Kodları yazmam gerekekirse

 
Private Sub CommandButton1_Click()

Range("a1") = (Round(rnd(), 0)) * 100

If TextBox1.Text > 100 Then
MsgBox "Sayı 0-100 aralığında"
End If

If TextBox1.Text > ("a1") Then
MsgBox "Aşağıya"
Else

MsgBox "Yukarıya"
End If

If TextBox1.Text = ("a1") Then
MsgBox "Tebrikler sayıyı buldunuz"

End If

End Sub


Sanırım gece gece ancak bu kadar oluyor


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Excelin neden önemli olduğu konusuna değinmek gerekirse;

"Başka bir forumdan alıntıdır"

MICROSOFT EXCELL HAKKINDA BILMEDIKLERINIZ


1-OTOMATİK KAYDETME:
Excel'de çalışırken belgelerimizin belirli aralıklarla otomatik olarak kaydedilmesini sağlayabilir miyiz?
Araçlar*İçine Ekle (Tools*Add-Ins) komutunu çalıştırın. Ekrana gelen diyalog kutusunda Otomatik Kaydet (AutoSave) seçeneğini işaretleyip Tamam düğmesine basın. Artık Araçlar (Tools) menüsünü açtığınızda Otomatik Kayıt (AutoSave) seçeneğinin eklendiğini göreceksiniz. Bu komutu çalıştırınca ekrana Otomatik kaydetme ayarlarını yapabileceğiniz bir diyalog kutusu gelecektir. Otomatik kaydetme aralığı ve buna benzer diğer bir sürü seçeneği buradan ayarlayabilirsiniz.


2-ÜST VE ALT BİLGİ:
Excel tablolarımı kağıda dökerken üstbilgi ve altbilgi alanlarında değişik, kendime özel bilgiler yazdırmak istiyorum. Örneğin basılan sayfanın başlığı, sayfayı hazırlayan kişinin adı vs.. gibi. Bunu nasıl başarabilirim?
Excel5.0 ile çalışma sayfalarınızı kağıda dökerken alt tarafa özel bilgiler yazdırmak istiyorsanız, Dosya*Sayfa Yapısı (File*Page Setup) komutunu çalıştırın. Ekrana gelecek olan diyalog kutusunun Üstbilgi/Altbilgi (Header/Footer) sekmesine gidin. Burada üstbilgi (header) ve altbilgi (footer) alanlarını özelleştirebilir, bu alanlara yazılacak olan bilgileri aşağı doğru açılan listelerden seçebilirsiniz. Excel 95 sizin için bir dizi seçenek hazırlamıştır. Bu seçenekler arasında kendinize uygun olan seçeneği bulamazsanız Özel Üstbilgi (Custom Header) veya Özel Altbilgi (Custom Footer) düğmelerinden birine basıp ekrana gelecek olan diyalog kutusunda istediğiniz özel ayarı yapabilirsiniz.


3-SAYILARI BİÇİMLEME:
Bir hücreye yazdığımız rakamlar bazen ondalık kesir basamaklı, bazen TL eklenmiş olarak görünüyor. Bazen de yazdıklarım tarihe dönüşüveriyor. Bunun nedeni nedir?
Bunun nedeni, seçtiğiniz hücrelerin biçiminin kullanma amacınızdan farklı biçimlenmiş olması. Bu durumu düzeltmek için, hücre veya hücreleri seçin, sağ fare tuşu ile üzerine tıklayıp Hücreleri Biçimle (Format Cells) komutuna tıklayın. Karşınıza gelen diyalog kutusunun Sayı (Number) bölmesindeki listede, Genel, Sayı, Para Birimi, Tarih, Zaman gibi seçenekler göreceksiniz. Bunlar hücrenin biçimini belirler. Bu diyalog kutusunun sağındaki pencere içinde ise bu biçimlerin farklı türleri yer alır. Her birinin üzerine geldiğinizde açıklaması diyalog kutusunun üzerinde görünür, ama bir örnek vererek konuyu daha iyi açıklayalım: Hücreye yazdığımız rakamın ondalık kesirden sonra iki hanesinin görünmesini istiyorsak, Hücreleri Biçimle diyalog kutusunda Sayı seçeneğini seçin; Ondalık Yerleri (Decimal places) kısmına 2 yazın. Excel ondalık kesrini virgül (,) olarak gösterir. Buradaki 1000 Ayracı Kullan (Use 1000 Seperator) seçeneğini işaretlerseniz, rakam sondan itibaren üçer hanede bir nokta (.) ile ayrılacaktır (örneğin 345 bin, 345.000,00 olarak gösterilir).


4-PARA BİRİMİNİ DEĞİŞTİRME:
Para birimi girdiğimiz hücrelerde hep. Bazen para birimi olarak ABD doları da ($) kullanıyoruz. Hücre biçimlerini kendimiz belirleyemez TL çıkıyor miyiz?
Default para birimini Windows 95 belirler. Bunu Denetim Masası*Bölgesel Ayarlar*Para Birimi (Control Panel*Regional Settings*Currency) bölmesinden değiştirebilirsiniz. Ancak yapacağınız değişiklik tüm belgelerinizi etkiler. Bazı hesap tablolarında TL, bazılarında $ işareti kullanacaksanız, Excel size hücreleri özel olarak biçimleme seçeneği sunar. Özel biçimlemek istediğiniz hücreleri seçip üzerlerine sağ fare tuşu ile tıklayın ve Hücreleri Biçimle*Sayı (Format Cells) komutunu çalıştırın. Karşınıza gelen diyalog kutusunun Sayı (Number) bölmesine girip listeden İsteğe Uyarlanmış'ı (Custom) seçin. Tür (Type) kısmının altındaki listede bazı hazır rakam formatları göreceksiniz. Bunlardan sizin için uygun olanını seçin. Örneğin seçtiğiniz hücrede 3455 yazıyorsa ve listeden #.##0,00 seçeneğini işaretlemişseniz, gerçek ra kam 3.455,00 olarak görünecektir. Rakamınızın nasıl görüneceğini diyalog kutusunun Örnek (Sample) kısmında görebilirsiniz. Son olarak Tür kısmında görünen biçimin sonuna bir boşluk bırakıp $ işaretini yazın. Tamam düğmesine tıkladığınızda hücrede 3.455,00 $ yazdığını göreceksiniz.


5-DEFAULT AYARLARINI DEĞİŞTİRMEK:
Excel'i her açtığımda yazıtipi, üstbilgi ve altbilgi alanları, kenar boşlukları, kılavuz çizgileri default olarak geliyor. Bu default değerleri değiştiremez miyiz?
Bu ayarların bazılarını Araçlar*Seçenekler (Tools*Options) komutu ilke açılan diyalog kutusunun çeşitli bölmelerinden değiştirebilirsiniz, ancak hepsini değil. Bunun daha değişik bir yolu var: Excel'de yeni bir kitap (workbook) açın ve yazıtipinden, altbilgi ve üstbilgi alanlarına, kenar boşluklarından kılavuz çizgilerinin görünüp görünmeyeceğine her şeyi istediğiniz gibi düzenleyin. Sonra bu kitabı Excel programınızın bulunduğu klasörün altındaki XLStart klasörüne KİTAP.XLT adıyla kaydedin. (İngilizce Excel 95 kullanıyorsanız bu dosyayı BOOK.XLT adıyla kaydedin.) Artık Excel'i her açtığınızda kendi belirlediğiniz default değerlerle karşılaşacaksınız.


6-Excel Sayfasız Açılsın.
Excel'i her açtığınızda, karşınıza boş bir kitap sayfası gelir. Mevcut bir Excel dosyasını açacaksanız, bu sayfa boşu boşuna açılmış olur. Excel'in sayfasız olarak açılmasını istiyorsanız, masaüstünde bir Excel kısayolu yaratın. Bu kısayola sağ fare tuşu ile tıklayıp Özellikler (Properties) komutunu çalıştırın. Kısayol (Shortcut) bölmesinin Hedef (Target) kısmında yazılı program yolunun sonuna /E parametresini ekleyin.


7-ONDALIK VE BASAMAK AYRAÇLARI.
Excel'de ondalık ayracı default olarak virgül (,), binlik hane ayracı nokta (.) işaretleri ile gösterilir. Aslında bunu Windows 95 belirler. Ondalık ayracının nokta, binlik basamak ayracının virgül olmasını istiyorsanız, Windows 95'te Denetim Masası*Bölgesel Ayarlar*Sayı (Control Panel*Regional Settings*Number) bölmesine girin. Aradığınız ayarları burada bulacaksınız.


8-SAYFALARA İSİM VERMEK:
Bir Excel çalışma kitabının sayfaları Sayfa1, Sayfa2,… olarak isimlendirilmiştir. Bunlara özel bir isim vermek istiyorsanız sayfa sekmesinin üzerine çift tıklayın, yeni sayfa ismini girip Tamam düğmesine tıklayın.


9-ÖZEL DÜĞMELER EKLEMEK.
Excel araç çubuklarında bulamadığınız düğmeleri arıyorsanız, araç çubuğuna sağ fare tuşu ile tıklayıp Özelleştir (Customize) komutunu çalıştırın. Her bir kategoriyi seçtiğinizde, yan tarafta kullanabileceğiniz düğmeleri göreceksiniz. Bu düğmelerin üzerine tıkladığınızda, diyalog kutusu üzerinde açıklaması belirecek. Bu düğmeleri fare ile araç çubuğuna sürükleyip bırakabilirsiniz.


10-EXCEL’İN DOSYA AÇ KLASÖRÜYLE AÇILMASI:
Excel ile hazırladığınız belgeleri belirli bir klasör altında tutuyorsanız, Dosya*Aç komutuyla direkt karşınıza bu klasörün çıkmasını isteyebilirsiniz. Bunun için Araçlar* Seçenekler*Genel (Tools*Options*General) bölmesine girin. "Varsayılan dosya yeri" (Default file location) bölmesine Dosya Aç komutu ile açılmasını istediğiniz klasörün yolunu yazın.


11-BULUNAN DEĞERLERİ BAŞKA HÜCRELERDE KULLANMA:
Hücrelerde formüller kullanarak hesaplama yaptırıyoruz. Bulunan değerleri başka sayfaların başka hücrelerinde de kullanmanın pratik bir yolu var mı?
Diyelim ki, Sayfa1'in D sütununa mart ayı giderlerini kalem kalem girdiniz ve sütun sonunda tüm giderleri toplayıp mart ayı giderlerini buldunuz. Bu toplamı başka hücrelerde kullanacaksanız kopyalayıp yapıştırmak yetmez; çünkü formülde hücre adresleri yeni hücrenin konumuna göre değişir; yani bir anlamda değerler değil formül kopyalanır. Yapılacak iş, formülü değil hücre adresini kopyalamaktır. Örneğin mart ayı toplamı, Sayfa1'in D5 hücresinde ise bunu başka bir sayfadaki başka bir hücreye kopyalarken =Sayfa1!D5 formülünü kullanmanız gerekir. Bunun pratik yolu ise, kaynak alınacak hücrelere bir ad vermektir. Örneğin, orijinal mart ayı toplamının bulunduğu hücreyi seçip Ekle*Ad*Tanımla (Insert*Name*Define) komutunu çalıştırırsanız, karşınıza Ad Tanımla (Define Name) diyalog kutusu çıkar. Çalışma kitabındaki adlar (Names in workbook) kısmına bir ad girin (örneğin mart_toplam). Burada sözcükler arasında boşluk bırakmamaya dikkat edin. Tamam düğmesine tıkladığınızda o hücrenin bir ismi olur. Artık o çalışma kitabının herhangi bir sayfasında herhangi bir hücreye =mart_toplam yazdığınızda, orijinal hücredeki mart ayı toplamı görünecek.


12-HATA MESAJLARININ ANLAMI:
Excel'de formüller kullandığımızda, hücrelerde bazen hata mesajları çıkıyor. Bunların anlamı nedir?
O halde size hata mesajlarının anlamını açıklayalım.
#SAYI/0! (#DIV /0!) Formülünüz bir sayıyı sıfıra bölmeye veya bölme işlemi için boş bir hücreye göndermeye çalışıyor. Bildiğiniz gibi bir sayı sıfıra bölünemez.
#AD? (#NAME?) Formül, çalışma tablosunda bulunmayan bir alan adına başvuru yapıyor. Hücrelerinizi adlandırdıysanız, yazım yanlışı yapmış ta olabilirsiniz.
#YOK! (#NULL?) Formülde hücre başvurularını bağımsız değişkenlerden ayırmak için virgül veya noktalı virgül kullanmanız gereken yerlerde boşluk kullandığınızı gösterir.
#SAYI! (#NUMBER!) Formülünüzde bir sayı ile ilgili bir sorunla karşılaştığınızı gösterir. Bu, Excel formülünde yanlış türde bir bağımsız değişken veya hesaplama sonucu, çalışma sayfasında görüntülenemeyecek kadar büyük veya küçük bir değer olabilir.
#REF! Excel, geçersiz bir hücre başvurusu ile karşılaştığında belirir. Bu, formül içinde başvurulmuş bir hücreyi sildiğinizde veya üzerine başka bir hücre yapıştırdığınızda olabilir.
#DEĞER! (#VALUE!) Bir formülde yanlış türde bir bağımsız değişken, yanlış tür bir işlem kullandığınızda veya metin girişi içeren hücrelere başvuru yapan matematik işlemler yapmaya kalkıştığınızda belirir.


13-BÜYÜK KÜÇÜK HARF DEĞİŞİMİ:
Word'de büyük harflerle yazdığımız sözcükleri küçük, küçük harflerle yazdıklarımızı büyük yapmayı öğrenmiştik. Excel'de bunun için bir kısayol tuş kombinasyonu yok mu?
Bunun için bir klavye kombinasyonu yok ama yaratacağınız iki ufak makro ile bu işi kendiniz halledebilirsiniz.
Metni büyük harfli yapmak için şu makroyu kullanın:

Sub BuyukHarf()
For Each c In Selection.Cells
c.Value=Ucase$(c.Value)
Next c
End Sub
Metni küçük harf yapmak içinse şu makroyu kullanın:
Sub KucukHarf()
For Each c In Selection.Cells
c.Value=Lcase$(c.Value)
Next c
End Sub

Bu makroları kullanmak için, içindeki sözcükleri değiştirmek istediğiniz hücreleri seçin ve makroyu çalıştırın. İsterseniz bu makroları araç çubuğuna düğme olarak da atayabilirsiniz. (Makro yaratmayı bilmiyorsanız, bkz. 95 no'lu püf noktası.)


14-OTOMATİK DOLDURMA:
Excel, haftanın günlerini, ayları ve rakamları otomatik doldurabilir. Örneğin bir hücreye Ocak yazın; bu hücreyi seçili duruma getirip sağ alt köşesindeki noktayı fare ile çekiştirerek seçili alanı sütunun altına doğru 4-5 hücre genişletin. Diğer hücrelerin (Şubat, Mart, Nisan,…) olarak dolduğunu göreceksiniz. Rakamlarda ise en az iki veri girişi gerekir. Örneğin bir sütunda ilk hücreye 1, ikinci hücreye 2 yazıp aynı işlemi yaparsanız, geri kalan hücreler (3, 4, 5,…) olarak dolar. Bu tür verilerde ilk iki hücreye birer atlamalı doldurma yaparsanız (örneğin 1 ve 3 ya da Ocak, Mart) otomatik doldurma işlemi de birer atlamalı devam eder (1, 3, 5, 7, 9… veya Ocak, Mart, Mayıs,… gibi). Sadece gün, ay ve rakamlarla da sınırlı değilsiniz. Otomatik doldurulacak serileri kendiniz tanımlayabilirsiniz. Bunun için Araçlar*Seçenekler*Özel Listeler (Tools*Options*Custom Lists) bölümüne girip YENİ LİSTE seçeneğini işaretleyin ve Liste Girdileri (List entries) kısmına serinizi yazıp Ekle (Add) düğmesine tıklayın.


15-SEÇİLİ SÜTUNU BAŞKA SÜTUNA TAŞIMA:
Excel'de seçili bir sütunu nasıl başka bir sütuna taşırım?
Excel'de belirli bir hücre alanını seçtiyseniz, bu alanın etafında bir kontur çizgisi oluşur. Fare imlecini bu kontur çizgisinin üzerine getirdiğinizde, imleç ok işareti halini alır. Bu imleçle bir hücre alanını boş bir alana sürükleyip bırakabilirsiniz. Böylece veriler bir alandan başka bir alana taşınmış olur. Ama sürüklediğiniz alan dolu ise, buradaki verilerin silineceği uyarısı ekrana gelir. Bu işlemi yaparken <Shift> tuşunu basılı tutarsanız, seçili alan kopyalanır, yani ayni alandan iki tane olur. Burada da sürüklediğiniz alan dolu ise, buradaki verilerin silineceği uyarısı ekrana gelir. Aynı işlemi <Ctrl>+<Shift> tuşlarına basarak gerçekleştirirseniz, taşıma yaptığınız alanda yeni bir sütun oluşur ve komşu hücrelerdeki veriler bozulmadan verileriniz araya girer.


16-BİRİM DÖNÜŞTÜRME:
Elimizde pound, Fahrenhaeit, galon gibi metrik sistemde kullanılmayan birimler cinsinden değerler var. Bunları Excel'de kolayca metrik sisteme dönüştürebilir miyiz?
Evet. Ama önce Araçlar*İçine Ekle (Tools*Add-Ins) komutu ile çıkan diyalog kutusundan Çözümleme Araç Paketi'ni (Analysis ToolPak) işaretleyip bu modülün yüklenmesini sağlamalısınız. Bu işlem tamamlandıktan sonra ÇEVİR (CONVERT) fonksiyonunu kullanarak birimleri dönüştürebilirsiniz. Aşağıda sırasıyla libreyi kilograma, Fahrenheit'ı Celcius'a, litreyi galona, watt'ı beygirgücüne dönüştürmek için verdiğimiz 4 örnek fonksiyonlara bakabilirsiniz. Bunlarda rakam yerine hücre adresi yazarsanız o hücredeki rakama göre işlem yapılır. Diğer birimlerin nasıl kullanılacağını Excel Yardım dosyalarında ÇEVİR (CONVERT) sözcüğünü aratarak bulabilirsiniz.
=ÇEVİR(1; "lbm"; "kg")
=ÇEVİR(78; "F"; "C")
=ÇEVİR(C12; "lt"; "gal")
=ÇEVİR(30; "w"; "h")


17-HÜCRE ORTASINA ÇİZGİ ÇİZMEK:
Bir sayının iptal edildiğini göstermek için Bir Excel hücresinin üzerini bir köşeden bir köşeye çizmemiz gerekiyor. Ama hücrenin boyutunun değiştiğinde çizginin de boyunun buna göre hizalanmasını istiyoruz.
Çizim (Drawing) araç çubuğunu açın. Bu araç çubuğu üzerindeki Çizgi (Line) düğmesine tıklayın. Fare imleci bir artı işaretine dönüşecektir. Diyagonal olarak çizeceğiniz hücrenin üzerine gelin, klavyeden <Alt> tuşuna basın ve basılı tutun; çizginizi çizin. <Alt> tuşuna basıp bu çizgiyi çizince çizgi bu hücreye yapıştırılır. Artık hücre bir yere taşınırsa ya da boyutu değişirse çizginin boyutları da otomatik olarak buna göre değişecektir. Çizginin renk, kalınlık gibi özelliklerini ayarlamak için çizginin üzerine çift tıklayın ve açılan diyalog kutusundan gerekli ayarları yapın.


18-HÜCREYİ METNE UYDURMAK.
Excel'de yazdığınız bir metnin yazıldığı hücreye tamı tamına uymasını sağlamak için Biçim*Sütun*En Uygun Genişlik (Format*Column*AutoFit) komutunu kullanabilirsiniz. Bu işlemin en pratik yolu ise, metni girdikten sonra fare imlecini hücrenin bulunduğu sütunun başlığına götürüp, sağ hücre sınırı üzerine çift tıklamaktır. Aynı şey satırlar için de geçerlidir.


19-ÇOK UZUN SAYFALAR.
Excel durum çubuğu tüm sayfaları aynı anda görüntülemeye yetmez. Tüm sayfaları görmek için durum çubuğunun sağındaki sola sağa kaydırma düğmelerinin üzerine sağ fare tuşu ile tıklayın ve istediğinizi seçin.


20-OTOMATİK TOPLAM.
Bir sütundaki tüm değerleri toplamını o sütunun altındaki hücreye yazdırmak istiyorsanız, bu hücreye gelip araç çubuğundaki Otomatik Toplam (üzerinde sigma simgesi var) düğmesine tıklayabilirsiniz. Klavyeyi tercih edenler ise <Alt>+<Shift>+0 tuşuna basabilir.


21-ENTER TUŞUNU KONTROL EDİN.
Excel'de bir hücreye yazdıktan sonra <Enter> tuşuna basarsanız, etkin hücre seçicisi bir alt hücreye, <Shift>+<Enter> tuşuna basarsanız bir üst hücreye geçer. Ama genelde alt alta hücreleri değil yan yana hücreleri dolduruyorsanız bu düzeni değiştirebilirsiniz. Araçlar*Seçenekler*Düzen (Tools*Options*Edit) bölmesine girin, Yön bölmesini Sağ olarak belirleyin. Artık <Enter> tuşuna bastığınızda bir sağdaki hücre seçilecek.


22-HIZLI KOPYALAMA.
Bir hücrenin içeriğini bir alttaki hücreye kopyalamak istiyorsanız, alt hücreye gidip <Ctrl>+<"> tuşlarına basın.


23-FORMÜL KOPYALAMA.
Aynı formülü aynı anda birden fazla hücreye girmek için, hücrelerin tümünü seçin, formülü yazın ve <Ctrl>+<Enter> tuşuna basın.


24-BÜYÜK ALANLARI SEÇMEK.
Büyük bir veri alanını fare ile kaydırarak seçmek yerine bir anda geniş bir seçili alan oluşturabilirsiniz. Bunun için <Ctrl>+* tuşlarına basmanız yeterli. Excel sizin için bu büyük alanı seçecektir.


25-EXCEL'DEN WORD'E TABLO AKTARMA:
Bunun üç yolu var: Basit Yapıştırma (bkz. Bunları da Bilin!; xx. Tablo Yapıştırma); Gömme; ve Bağlama. Basit yapıştırma hesap tablosunun sadece bir görüntüsünü yapıştırır. Excel'de bu hesap tablosunu açıp yapacağınız değişiklikler, Word'e yapıştırılmış tabloya yansımaz. Gömme (Embedding) işleminde ise, Excel tablosunda yapacağınız değişiklikler Word'e yapıştırılmış tabloya yansımaz, ancak Word'deki tablo üzerine çift tıkladığınızda, tablo ile birlikte Word'ün araç çubuğu ve menüleri Excel'inki gibi olur ve tablo üzerinde gerekli değişiklikler yapılabilir. Gömme işlemi için şu adımları izleyeceksiniz: Excel'deki tabloyu seçip <Ctrl>+C tuşlarıyla kopyaladıktan sonra Word'e geçin ve Düzen*Özel Yapıştır (Edit*Paste Special) komutunu çalıştırın. Açılan diyalog kutusunda Yapıştır (Paste) ve Microsoft Excel Çalışma Sayfası Nesne'yi ( Microsoft Excel Worksheet Object) seçin. Tamam düğmesine tıklayın.
Bağlama (Linking) işlemi ise Excel'deki tabloda sonradan yaptığınız değişikliklerin, Word'e yapıştırdığınız tabloya yansımasını sağlar. Bağlama işlemi için şu adımları izleyeceksiniz: Excel'deki tabloyu seçip <Ctrl>+C tuşlarıyla kopyaladıktan sonra Word'e geçin ve Düzen*Özel Yapıştır (Edit*Paste Special) komutunu çalıştırın. Açılan diyalog kutusunda Bağ Yapıştır (Paste Link) ve Biçimlendirilmiş Metin'i (Formatted Text) seçip Tamam düğmesine tıklayın. Word'deki tablo üzerine sağ fare tuşu ile tıklayıp açılan menüden Bağlantıyı Güncelleştir (Update Link) komutuna tıklarsanız, tablonuz Excel'de yapılan değişikliklere göre güncellenir. Bu menüde Excel'de bağlantı kurulmuş dosyayı açmak için de komutlar vardır.


26-Bazı tablolarımız, sayfayı yatay konuma getirsek bile sayfaya sığmıyor. Ne yapmalıyız?
Önce araç çubuğundaki Sayfa Önizleme (Print Preview) düğmesine tıklayarak sayfanın baskıdan önceki görünümüne geçin. Üstteki Kenar Boşluğu (Margins) düğmesine tıklayın. Hücrelerin ve sayfanın sınırları belli olacak; bunları çekiştirerek hem hücrelere sığmayan metinleri düzeltebilir, hem de sayfada yazılabilecek alanın boyutlarını genişletebilirsiniz. Tablonuz bir sayfaya yine sığmıyorsa Ayarla (Setup) düğmesine tıklayın. Karşınıza sayfa yapısını ve diğer sayfa ayarlarını yapabileceğiniz bir diyalog kutusu gelecek. Burada sayfanın yatay dikey ayarlarını yapabileceğiniz gibi, Sığdır (Fit to) seçeneğini işaretleyerek, tablonuzu enine ve boyuna kaç sayfaya sığdırmak istediğinizi belirleyebilirsiniz. Gerekirse Küçültme/Büyütme (Adjust to) alanına yüzde cinsinden değerler girerek tablonuzu büyütüp küçültebilirsiniz. Bu işlemler hücreleri ve yazıtipin i uygun boyutlarsa getirecektir. Tabii fazla uzun bir tablo hazırlamışsanız, bunu tek sayfaya sığdırmak, yazıların okunamayacak kadar küçülmesine yol açacaktır. Fazla zorlamayın ve tablonuzu birden fazla sayfada sunmanın yollarını arayın. Ne de olsa bir kağıdın boyutları sınırlıdır.


27-Hücrenin içinde birden fazla satır kullanmanın yolu nedir?
Sütun başlıklarınızın birinci satırda yer aldığını varsayalım. Satırın başındaki satır numarasına bir kere tıklayın ve tüm satırı seçili duruma getirin. Biçim*Hücreler (Format*Cells) komutunu çalıştırın. Ekrana gelecek olan diyalog kutusundan Hizalama (Alignment) bölümüne gidin. Bu bölümde de hücre içerisindeki metnin yatay ve dikey olarak nasıl yerleştirileceği ayarlanabilir. Bunun hemen yanındaki Metni Sar (Wrap Text) seçeneğini aktif hale getirirseniz, hücre içerisinde istediğiniz kadar satır kullanabilirsiniz. Excel hücre içerisindeki satırları otomatik olarak bir alta kaydırır. Eğer satırı istediğiniz yerde alta geçirmek istiyorsanız hücre içerisinde satırı yazarken <Enter> yerine <Alt+Enter> tuşlarını kullanarak satırı bir alta kaydırabilirsiniz.


28-İki farklı sayfadaki hesap tablolarımı raporumuzun tek sayfasına nasıl bastırabiliriz?
Diyelim ki Excel kitabınızın ilk sayfasında (Sayfa1- "Sheet1") aşağıdaki gibi bir tablo var.
Sayfa2'de ise çok benzer, ancak B Grubu olarak adlandırılmış birtakım veriler olsun. B Grubu verileri A Grubu verilerinin tam altına taşınmış halde yazıcı çıkışı almak istiyorsunuz. O halde Sayfa2'ye (Sheet2) gidin. Görünüm*Araç Çubuğu*Özelleştir (View*Toolbars*Customize) düğmesine tıklayın. Kategoriler (Categories) listesinde Yardımcı (Utility) seçeneğinin üzerine gelin. Sağ tarafta, üzerinde fotoğraf makinesi simgesi olan düğmeyi araç çubuğuna sürükleyip bırakın. Bu kamera düğmesidir. Diyalog kutularını kapattıktan sonra Sayfa2'de veri girilmiş alanı seçin (Burada A1:D6) ve kamera düğmesine tıklayın. Sayfa1'e geçip bu sayfanın altındaki uygun bir hücreye (örneğimizde A8) tıklayın. Sayfa2'deki verilerin bir görüntüsü Sayfa1'in üzerine yapıştırılacaktır. <Alt> tuşunu basılı tutarak yapıştırılan görüntüyü uygun bir konuma sürükleyin. Yapıştırdığınız alanın çerçevesini silmek için üzerine sağ fare tuşu ile tıklayıp menüden Nesneyi Biçimle (Format Object) komutunu çalıştırın. Desen (Pattern) bölmesinde Hiçbiri (None) seçeneğini işaretleyip Tamam düğmesine tıklayın. Aşağıdaki gibi bir tablo elde edeceksiniz. Sayfa2'deki değerleri değiştirirseniz, Sayfa1'e yapıştırdığınız alan içindeki değerler de değişecek.


29-SEÇİMİN VAZİYETİ.
Bir Excel çalışma sayfasında bir dizi hücreyi seçtikten sonra bu seçim alanındaki bazı bilgileri Excel penceresinin hemen altındaki durum çubuğunda bulunan Otomatik Hesaplama kutusundan alabilirsiniz. Bu kutuda normalde seçtiğiniz hücredeki sayıların toplamı görüntülenir. Ancak bu kutunun üzerine gidip sağ fare düğmesine bastığınızda bir menü açılır. Bu menüden seçimle ilgili ortalama, sayı adedi, en büyük ve en küçük değerleri ve elbette sayıların toplamını ekrana getirebilirsiniz.


30-BAŞLIK ORTALAMA.
Çalışma tablosunun bir satırında belirli hücreler arasına ortalanmış bir başlık yazmak istiyorsanız, ilk hücreye başlığınızı yazın. Sonra o satırda ilk hücre ile birlikte ortalama yapılacak tüm hücreleri seçin ve araç çubuğunda Sütunlar Arasında Ortala (Merge and Center) düğmesine tıklayın.


31-TABLO YAPIŞTIRMA.
Excel'de hazırladığınız tabloyu bir Word belgesine, Word tablolarına benzer bir şekilde yapıştırmak istiyorsanız, tabloyu Excel'de seçip <Ctrl>+C tuşlarına basın. Daha sonra Word belgesine geçip Düzen*ÖzelYapıştır (Edit*Paste Special) komutunu çalıştırın. Türü (As) kısmında Biçimlendirilmiş Metin'i (Formatted Text) seçip Tamam düğmesine tıklayın.


32-WORD'DEN EXCEL'E TABLO.
Word'de hazırladığınız bir tablo varsa bunu Excel'e kes/yapıştır yöntemi ile biçimi bozulmadan aktarabilmeniz için o tablonun Word'ün tablo yaratma fonksiyonları ile değil, aralarına sekme (Tab) verilerek hazırlanmış olması gerekir. Bu sekmeler, Excel'de verinin bir sağdaki hücreye yazılacağını belirtir.


33-EXCEL'DE BİR GRAFİĞİ NASIL ÇİZDİRİRİZ?
Bunu basit bir örnek üzerinde açıklayalım. Diyelim ki aşağıdaki gibi bir veritabanımız var. Bu veritabanında belirtilen kamyonların her ay taşıdıkları yük miktarı grafik olarak gösterilmek isteniyor.
Önce bu tablonun tamamını seçin ve araç çubuğundaki Grafik sihirbazı (Chart Wizard) butonuna tıklayın. İmleç artı işaretine dönüşecektir. Bu imleç ile hesap tablosunun boş bir alanına bir dikdörtgen çizin. Karşınıza Grafik sihirbazının 1. adımı çıkacak. Tablonun tamamını önceden seçtiğiniz için Aralık (Data range) kısmında değişiklik yapmanız gerekmez; İleri (Next) düğmesine tıklayın. 2. ve 3. adımlarda grafiğinizin biçimini seçeceksiniz; bu tercih size kalmış. 4. adımda satır veya sütunlardaki verilerin grafik üzerindeki yerleşimi ile ilgili ayarlar var. Örneğimizde bu diyalog kutusunda bir değişiklik yapmak gerekmiyor; ama diyalog kutusunda görünen örnek grafiğe göre bu seçeneklerin ne işe yaradığını kolayca görebilirsiniz. 5. adımda göstergeyi (lejand) ekleme seçeneğinin yanı sıra, grafik başlığını ve eksen başl ıklarını yazabileceğiniz alanlar bulunur. Bunları doldurun. Son düğmesine tıkladığınızda grafiğiniz oluşacak. Grafiğin renklerini, çizgi ve kenarlık kalınlıklarını değiştirmek için, Grafiğin üzerine çift tıklayın; daha sonra biçimini değiştirmek istediğiniz öğenin üzerine çift tıklayın. Karşınıza biçimle ilgili her tür değişikliği yapabileceğiniz bir diyalog kutusu gelecek.


34-RAKAMLARIN EN YAKIN TAM SAYIYA YUVARLANMASI:
Bunun için Excel'in YUVARLA (ROUND) fonksiyonundan yararlanabilirsiniz. Ancak, fonksiyonlar verilerin bulunduğu hücrelerde kullanılamazlar; yoksa fonksiyon döngüye girer. Bu yüzden, bir sütuna sayıları girdiyseniz, yanındaki sütuna YUVARLA fonksiyonu ile yuvarlatılmış hallerini yazmalısınız. Sonra gerekirse gerçek rakamların bulunduğu sütunu seçip, sağ fare menüsünden Gizle (Hide) komutu ile bu sütunu gizleyebilirsiniz. Şimdi YUVARLA fonksiyonunun nasıl kullanıldığını anlatalım: =YUVARLA(A5;-1) gibi bir değer A5 sütunundaki rakamı bir basamak yuvarlar. Örneğin rakam 3456 ise 3460 yapar. -1 yerine -2 kullansaydık yuvarlanmış rakam 3500 olacaktı. Burada eksi (-) işareti sizi şaşırtmasın: Burada 1, 2 gibi pozitif bir değer kullansaydık, varsa ondalık kesirden sonrasını yuvarlayacaktı. Örneğin 3456,45 gibi b ir rakam
için =YUVARLA(A5;1) fonksiyonunu kullanırsanız, yuvarlanmış rakam 3456,5 olur.


35-Raporumuzda matrisler kullanacağız. Bu matrislerin çarpımını Excel'de otomatik yaptırabilir miyiz?
Excel bu özelliğe sahip. Örneğin çalışma tablonuzun A1:C3 alanında 3x3'lük bir matris ile F1:G3 alanında 3x2'lik birer matris olsun. (İki matrisin çarpılabilmesi için, ilk matrisin sütun sayısının, ikinci matrisin satır sayısına eşit olması gerektiğini hatırlatalım.) 3x3'lük (mxn formatındaki) matris ile 3x2'lik (nxp formatındaki) iki matris çarpılırsa, 3x2'lik (mxp formatında) yeni bir matris oluşur. O halde çalışma tablomuzun boş ve uygun bir yerinde 3x2'lik bir alan seçin ve bu alana =DÇARP(A1:C3; F1:G3) formülünü girip (İngilizce Excel kullanıyorsanız DÇARP yerine MMULT fonksiyonunu kullanın) <Shift>+<Ctrl>+<Enter> tuşlarına basın. İşte matris çarpımınız karşınızda…


36- Makroları tüm kitaplarda geçerli kılmanın yolu:
Bu, Excel'i yaratanların bir azizliği. Excel'de makrolar Word'den farklı bir şekilde kaydedilir. Makrolarınızı tüm belgelerde geçerli kılmak için şu yolu izlemelisiniz: Excel'de bir kitap (workbook) açın. Araçlar*Makro Kaydet*Yeni Makro Kaydet (Tools*Record Macro*Record New Macro) komutuna tıklayın. Karşınıza gelen diyalog kutusuna yeni makronuzun adını girin ve Seçenekler (Options) düğmesine tıklayın. Saklama Yeri (Store in) kısmında Kişisel Makro Çalışma Kitabı (Personal Macro Workbook) seçeneğini işaretleyin. Tamam düğmesine tıklayarak açılan Modül sayfasında yeni makronuzu yazın. (Bu şekilde makro yazmak için Visual Basic for Applications dilini bilmeniz veya elinizde makro örneklerinin olması gerekir.) Dosyayı PERSONAL.XLS adıyla EXCEL\XLSTART dizinine kaydedin. Bundan böyle her Excel'i açtığınızda bu dosya karşınıza gelecek, yarattığı nız her yeni makro bu dosyaya eklenecek ve üzerine açtığınız tüm dosyalarda tüm makrolarınız geçerli olacak. Tabii, Excel'i her açtığınızda PERSONAL.XLS dosyasının görünmesini istemeyebilirsiniz. Öyleyse bu dosya açıldığında Pencere*Gizle (Windows*Hide) komutunu çalıştırın. Yeni bir makro yaratacağınız zaman bu dosyayı Pencere*Göster (Window*Unhide) komutuyla görünür hale getirmeniz gerektiğini de unutmayın.


37-Formül (işlev) kullanarak yaptığım hesapların, formül olarak değil, rakamsal değer olarak görünmesini istiyorum.
Bir hücrede formül kullanarak yaptığınız hesabı başka bir hücreye kopyalayacaksanız, bu hücreyi seçin ve Ctrl+C tuşları ile kopyalayın. Sonra kopyalama yapacağınız hücreye geçerek Düzen*ÖzelYapıştır (Edit*Paste Special) komutunu çalıştırın. Ekrana gelen diyalog kutusunda Değerleri (Values) seçeneğini işaretleyip Tamam düğmesine tıklayın. Ama bir hücre veya hücre grubundaki formülleri rakamsal değere çevirmek istiyorsanız, şu makroyu da kullanabilirsiniz:
Sub Form2Deger()
For Each c In Selection.C ells
c.Formula=c.Value
Next c
End Sub


38-DİKİNE BAŞLIKLAR KULLANMAK:
Excel tablonuzda dikine başlıklar kullanmak istiyorsanız, başlığın yer aldığı hücreyi seçin, üzerine sağ fare tuşu ile tıklayıp Hücreleri Biçimle (Format Cells) komutunu çalıştırın. Hizalama (Alignment) bölmesine geçip Yönelim (Orientation) kısmından dikine başlık formatını seçip Tamam düğmesine tıklayın.


39-OTOMATİK BİÇİM.
Excel'de hazırladığınız tablolara şık bir görünüm vermek istiyorsanız, tabloyu seçip Biçim*Otomatik Biçim (Format*AutoFormat) komutunu çalıştırın. Karşınıza gelen diyalog kutusunda pek çok tablo biçimini örnekleri ile birlikte bulacaksınız.


40-ROMEN RAKAMLARI.
Bir sayının Romen rakamları ile görünmesini istiyorsanız, ROMEN() formülünü kullanabilirsiniz. B2 hücresinde 1996 sayısının olduğunu varsayalım. Eğer A2 hücresinde bu sayıyı Romen rakamı ile görmek istiyorsanız, bütün yapacağınız şey A2 hücresine ROMEN(B2) formülünü girmektir.


41-HÜCRE DEĞERİNİ ARTTIRIP AZALTACAK DÜĞMELER:
Hesap tablonuza bir hücrenin değerini artırıp azaltacak düğmeler eklemek için Fırıldak (Spinners) özelliğini kullanabilirsiniz. Bu düğmeyi kullanmak için herhangi bir hücreye herhangi bir değer girin. Forms (Formlar) araç çubuğundan Fırıldak aracının düğmesine basın. Farenizi kullanarak hesap tablosunda istediğiniz yere istediğiniz boyutta bir fırıldak çizin. Fırıldak üzerine sağ fare tuşuyla basın; Nesne Biçimle (Format Object) komutunu çalıştırın. Diyalog kutusunun Hücre Bağlantısı (Cell Link) bölmesinde sayının etkileyeceği adresi girin (örneğin B3 için $b$3). Bu diyalog kutusundan ayrıca hücrenin alabileceği minimum ve maksimum değerleri, artış miktarını ayarlayabilirsiniz. İşte bu kadar. Artık arttırma/azaltma düğmenizi kullanabilirsiniz.


42-EXCEL İÇİNDE HESAP MAKİNASI
BASİT hesaplamalar yapmak için de Excel'in formülleri ile uğraşmaya değmez ki. Excel araç çubuğuna bir hesap makinesi simgesi ekleyip bu düğmeye basılınca Windows 95'in basit hesap makinesinin açılmasını sağlayarak işlerinizi kolaylaştırabilirsiniz. Bunu yapmak için aşağıdaki adımları takip etmeniz yeterli:
• Herhangi bir Excel araç çubuğunun üzerine sağ fare düğmesi ile tıklayın ve Özelleştir komutunu çalıştırın.
• Komutlar bölümüne gelin.
• Kategoriler bölümünde Araçlar seçeneğine gelin.
• Sol taraftaki listeden Özel seçeneğine gelin, yan tarafında minik bir hesap makinesi simgesi olması lazım. Bu seçeneği sürükleyip istediğiniz bir araç çubuğunun üzerine bırak.
• Kapat düğmesine basarak diyalog kutusunu kapatın. Bundan sonra Excel içinde mini bir hesaplama yapmak istediğiniz zaman bütün yapacağınız araç çubuğuna eklemiş olduğunuz hesap makinesi düğmesine basmak. Hesap makinesi programı açılacaktır.


43-EXCEL SAYFALARINI BİRLEŞTİRMEK
Bir Excel çalışma kitabının içerisinde bulunan bir veya daha fazla çalışma sayfasını başka bir çalışma kitabına almak istiyorsanız, bütün yapacağınız önce hedef, daha sonra da kaynak Excel çalışma kitabını açmak. Daha sonra Pencere menüsünden Yerleştir * Yatay komutunu çalıştırarak iki dosyanın da içeriğinin ekranda görünmesini sağlayın.
Kopyalamak ya da taşımak istediğiniz çalışma sayfalarının alt tarafında bulunan sayfa TAB'larından fare ile tutun ve hedef Excel çalışma kitabının üzerine bırakın.
Bu işlemi yaptığınızda sayfayı taşımış olacaksınız. Eğer sayfayı kopyalamak, yani orijinalini kaynak çalışma kitabında bırakmak istiyorsanız sürükle ve bırak işlemi sırasında CTRL tuşuna basın ve basılı tutun. Sürüklenen simgenin yanında bir + (artı) işareti belirecektir. Bu işaret sayfanın "kopyalandığını" gösterir.


44-SÜTUNLARI SATIR OLARAK KOPYALAMAK:
Excel'de Sayfa1 de hazırladığım bir formun başlığı A1 ile A10 hücreleri arasında bulunmaktadır. Sayfa1 de A sütununa yazılmış bu verileri Sayfa2 de 1. satıra kopyalamak istiyorum. Bu işlemi yapabileceğim en kısa yol hangisidir?

Excel'de bu olay çok hızlı bir şekilde gerçekleştirilebilir. Tablonuza girmiş olduğunuz veri başlıkları Şekil1 deki gibi Sayfa1 de olup Ayları içersin. Veri girilmiş olan bu hücreleri seçin ve Kopyala komutunu kullanarak kopyalayın. Sonra Sayfa2'ye geçin, veriyi yapıştırmak istediğiniz satırın ilk hücresini seçin ve Düzen (Edit) menüsünden Özel Yapıştır (Paste Special) seçeneğini tıklayın. Ekrana Özel Yapıştır (Paste Special) penceresi gelecektir. Bu pencerenin sağ alt kısmında bulunan Devrik (Transpose) seçenek düğmesini tıklayın ve Tamam düğmesine basın. Şekil2 deki görüntüyü elde etmiş olacaksınız.


94-VERİLERİ FORM HALİNDE DÜZENLEMEK:
Excel'de girdiğimiz verileri bir form halinde düzenlemek, bu forma yeni veriler girmek ve istediğimiz verileri aratmak mümkün mü?
Elbette. Örneğin elimizde firma isim ve telefonlarının bulunduğu bir veritabanı olsun. Bu veritabanın tümünü seçip Veri*Form (Data*Form) komutuna tıklayın. Karşınıza aşağıdaki gibi bir form kutusu gelecek. Bu formu dBase tarzı gerçek bir veritabanı formu olarak kullanabilirsiniz.
Yeni (New) komutuna tıklayarak ilgili alanlara yeni veriler eklerseniz, bunlar Excel tablonuzda en alt satıra eklenecektir. Bu şekilde büyük bir veritabanı oluşturduysanız, Ölçüt (Criteria) komutuna tıklayarak istediğiniz gibi arama yaptırabilirsiniz.


95-ZAMAN GRAFİĞİNİN EĞİLİMİ:
Excel'de bir zaman serisine göre girdiğimiz verilerle bir çubuk grafik hazırladık. Bu çubuk grafik üzerinde serinin genel gidişini (trendini) gösterebilir miyiz?
Bunun için EĞİLİM (TREND) işlevini kullanacaksınız. Örneğin elimizde aşağıdaki gibi bir veritabanı olsun. Satış Trendini (eğilimini) hesaplamak için, A3 alanına Satış Trendi yazdıktan sonra B3:G3 alanını seçin. Hemen ardından =EĞİLİM(B2:G2) formülünü yazıp <Ctrl>+<Shift>+<Enter> tuşlarına aynı anda basın. Böylece satış trendi
değerlerini bulmuş oldunuz. Bunu grafiğe dönüştürmek içinse, A1:G3 arasındaki hücreleri seçin, Grafik Sihirbazı (Chart Wizard) düğmesine tıklayıp çalışma sayfası üzerinde bir grafik alanı yaratın. Grafik Sihirbazı'nın 2. adımında tipi olarak karma (çizgi-çubuk) grafik türünü, 3. adımda ilk seçeneği işaretleyin. Böylece aşağıdaki gibi, hem aylık satışları hem de satış trendini gösteren bir grafik elde edeceksiniz.


Bu mesaja 1 cevap geldi.
F
19 yıl
Binbaşı

Serseri hocam kusura bakma geç cevap veriyorum. Ben şu şekilde yaptım. Bir fonksiyon rastgele sayı üretiyor. bir diğer fonksiyon ise excelden gelen bilgiyi sınayarak, kullanıcıyı doğru sayıya yönlendiriyor. acele yazdığım için kod düzgün olmadı, bilgisayarın bulduğu sayı A1 hücresinde saklanıyor ki, hiç mantıklı değil aslında ama idare edin.
örnek excel dosyasını indirebilirsiniz:http://rapid share.de/files/28120310/macro.xls.html

Sub sayi_tahmin() 

Dim rastgele
rastgele = Int(Rnd() * 1000)
Cells(1, 1).Value = rastgele
Cells(4, 8).Value = ""
End Sub

Sub tahmin_et()
Dim gelen, rastgele, i
rastgele = Cells(1, 1).Value
gelen = Cells(4, 5).Value
If gelen = rastgele Then
MsgBox ("Tebrikler doğru sayıyı buldunuz")
ElseIf gelen < rastgele Then
Cells(4, 8).Value = "Yukarı"
ElseIf gelen > rastgele Then
Cells(4, 8).Value = "Aşağı"
Else
Cells(4, 8).Value = "Tahminde hata var"
End If
End Sub


bu arada ikinci fonksiyona parametre aktarmayı başaramadım. hani c'de fonksiyon çağırırız:

fonksiyon(parametreler) şeklinde. excelde bunu yapamadım. neyse :)





< Bu mesaj bu kişi tarafından değiştirildi Finney -- 4 Ağustos 2006; 10:20:57 >
Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Merhaba hocam anlatmak istediğini biraz anladım mantık olarak dogru. Ama gönderdiğin programı acıkcası calıstıramadım.



Bu arada devam edelim. VBA da aynı VB de olduğu gibi döngüler söz konusu. Döngü dediğimiz kavram bir defa yazılan bir olayı tekrar yazmak için kullanılan sistem. Bunun için yazılan kodlar sürekli aynı olacak şekilde elbette yazılmıyor. İşte döngülerin de zaten amacı bu

Bir örnek üzerinde gösterelim. Diyelim 1'den 15'e kdar sayıları hücrelere yazdıracagız. Excel;'de basit olarak düşünürsek A1=1, A2=2..falan diye el ile girebiliriz elbette bu bir çözüm yolu ama uzun vadede düşündüğümüzde bu bir eziyet halini alır.

Döngü kullanılmadan yapılan kodlar ise şu şekilde olacaktır.

Range("A1").Value=1
Range("A2").Value=2
Range("A3").Value=3
Range("A4").Value=4
Range("A5").Value=5
Range("A6").Value=6
Range("A1").Value=7
....
Range("A15").Value=15

Acıkcası klavye basında copy-paste yaptıgım halde bana zor geldi Bu sekilde kodta işe yarar. SOnucta işe yarar. Ama 1000 tane ID için bu zor iş olur. Programcılıkta amaç problemi en kısa ve öz sekilde aktarıp çözebilmektir. herneyse eğer bu işlemi döngü ile yapmak istersek sonuc asagıdaki ekran görüntüsü gibi olacaktır;

< Resime gitmek için tıklayın >

Kodlarda 15 yazan yere 100 yazarsak 100'e kadar gidecektir.

Kodlarda ben bir commadnd butonu kullandım kullanımayabilirdi de....

Private Sub CommandButton1_Click()
Dim i As Integer

For i = 1 To 15
Cells(i, 1).Value = i
Next i
End Sub

Kodlamalarda genelde hücreler (x,y) şeklinde yazılır. yani A1 hücresi (1,1) şeklinde adlandırılır. Kdolarda görüldüğü gibi For döngüsü ile 1 den baslayarak istediğimiz yere kadar aynı olayı tekrar ettiriyoruz. Eğer Cells (Cells ingilizce hücre demektir) (1,i) şeklinde kod yazsaydık bu sefer sayılar yatayda sıralanacaktı.





< Bu mesaj bu kişi tarafından değiştirildi serseri -- 23 Ağustos 2006; 15:31:01 >
Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Döngüleri tek başına kullanabildiğimiz gibi iç içe birden fazla olacak şekilde de kullanabiliriz. Yalnız iç içe giren döngülerde önemli ve dikkat edilmesi gereken nokta ilk çalıştırılan döngünün en son biten döngü olacağıdır. Buna dikkat edilmesi gerekir.

Bir örnek üzerinde göstermek gerekirse.

Private Sub CommandButton1_Click()
Dim i As Integer
Dim t As Integer
For i = 1 To 10
For t = o To 5
Cells(i + t, i).Value = "serseri"
Next t
Next i

End Sub

İlk döngü j sütunu kadar olan bölgeyi birer satır atlayarak ifade ederken ikinci döngü "serseri" yazısının 5 kere yazılmasını istemektedir. Bütün bu işleride bir butona tıklayarak yapmak isteniyor.

Ekran görüntüsünde göstermek gerekirse;

< Resime gitmek için tıklayın >

Çeşitli örneklerle bu kodları geliştirebiliriz. Örneğin bir satır ya da birer sütun atlayara ( step kodu ) ya da satır sütun değişiklikleri gibi değişiklikler yapılabilir...


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Excelde Menü Hazırlamak

Burada anlatılmak istenen Excel sayfasındaki menü çubuğa kişisel eklentiler yapabilmektir.Bunu yapmaktaki en önemli sebeb kişinin ihtiyacına göre farklı yerlerdeki durumları tek bir çatı altında toplayabilmek kullanımda ve kolaylık sağlamaktır.

Bunun için şu an Excelin icinde yer alan özellikleri kullanıyoruz. Fakat ikinci bir yol olarak makro kodları ile de yapabilirsiz.

Neyse konumuza dönelim yeni bir menü için öncelikle Araçlar -- Özelleştir seciyoruz karsımıza cıkan pencerede komutlar içinde YENİ MENU seciyoruz pencerenin sol tarafına YENİ MENU eklenmiş olacktır. Bunu sürükleyerek menu sırasına ekleyebilirsiniz.

Bundan sonra Komutları Yeniden Düzenle tusundan YENİ MENÜ secili olacak şekilde pencere acıyoruz. Açılan pencerede Ekle butonu ile Excelde yer alan bütün menülere ulaşabilir ve hazırladıgımız YENİ MENU ye bu komutları yerleştirebiliriz.

Buraya istediğimiz komutları ekleyebiliriz. Resimde görüldüğü gibi ve Yeni Sayfa Aç ile Makro Kaydet seceneklerini ekledim. Örneğin Düzen - sil; Görünüm yakınlaştır, artan sırala, kök alma ve bunun gibi istediğiniz Excel komutunu secebilirsiniz.


< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >

Dediğimiz gibi bu işlem daha kolay ve kullanıslı yapılabirli. Bunun yoluda iyi bir kod ve makro bilgisinden gecer.
İyi çalışmalar


Bu mesaja 2 cevap geldi.
A
19 yıl
Er

İYİ GECELER
SİZDEN BİR RİCAM OLACAK BEN HİÇ KODLAMA BİLMİYORUM AMA VBA DA MAKRO YAZMAM İÇİN ONLARI BİLMEM ŞART EĞER SİZDE YENİ BAŞLAYANLAR İÇİN KOD YAZMAYA YARAYACAK DÖKÜMAN VARSA BANA GÖNDEREBİLİRMİSİNİZ
TEŞEKKÜRLER


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:

Orjinalden alıntı: ayset

İYİ GECELER
SİZDEN BİR RİCAM OLACAK BEN HİÇ KODLAMA BİLMİYORUM AMA VBA DA MAKRO YAZMAM İÇİN ONLARI BİLMEM ŞART EĞER SİZDE YENİ BAŞLAYANLAR İÇİN KOD YAZMAYA YARAYACAK DÖKÜMAN VARSA BANA GÖNDEREBİLİRMİSİNİZ
TEŞEKKÜRLER




VBA dili diğerleri arasında biraz arka planda kaldıgı için bu konuda döküman bulmak cok zor ve zahmetli nette olanlar genelde örneklerdir -ki bu örnekler genelde anlasılmaz olur-.

Aslında bu acıklamam türkçe siteler için eğer yabancı dil biliyorsan daha fazla kaynak bulabilirsin. Yukarıda bahsettiğim örnekler genelde yabancı kaynaklardan alıntılar üzerine kuruludur.

Ve benim fikrim kod kısmı ikinci plandadır. Önemli olan programın kurulum asamasıdır. nasıl yapabilirim? hangi yoldan gitmeliyim? hangi kod ifadelerini kullanmalıyım? gibi soruların cevabını bulmaktır. Kod kısmı bir şekilde çalışmayla hallolur.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Secili belirli bir alanda yer alan değer içeren bütün hücre değerlerini 0 yapan kod;

10 ve 5 değerleri örnek olarak yazılmıstır...

Sub CheckValues1()
Dim rwIndex As Integer
Dim colIndex As Integer
For rwIndex = 1 To 10
For colIndex = 1 To 5
If Cells(rwIndex, colIndex).Value <> 0 Then _
Cells(rwIndex, colIndex).Value = 0
Next colIndex
Next rwIndex
End Sub

--------------------------------------------------------------------------------------------------

İstenilen sayfayı gizleme kodu;

Sub Hide_WS1()
Worksheets(3).Visible = Hide
End Sub


------------------------------------------------------------------------------------------------------

Girilen iki zaman dilimi arasını hesplayan kod;


Sub FindDates()
On Error GoTo errorHandler
Dim startDate As String
Dim stopDate As String
Dim startRow As Integer
Dim stopRow As Integer
startDate = InputBox("Başlama Zamanını Giriniz: (mm/dd/yy)")
If startDate = "" Then End
stopDate = InputBox("Bitiş Zamanını Giriniz: (mm/dd/yy)")
If stopDate = "" Then End
startDate = Format(startDate, "mm/??/yy")
stopDate = Format(stopDate, "mm/??/yy")
startRow = Worksheets("Table").Columns("A").Find(startDate, _
lookin:=xlValues, lookat:=xlWhole).Row
stopRow = Worksheets("Table").Columns("A").Find(stopDate, _
lookin:=xlValues, lookat:=xlWhole).Row
Worksheets("Table").Range("A" & startRow & ":A" & stopRow).Copy _
destination:=Worksheets("Report").Range("A1")
End
errorHandler:
MsgBox "Bir hata oluştu: " & Error() & Chr(13) _
& "Ending Sub.......Lütfen Tekrar Deneyiniz", 48
End Sub





< Bu mesaj bu kişi tarafından değiştirildi serseri -- 26 Ağustos 2006; 1:56:54 >

A
19 yıl
Er

cevap verdiğiniz için çok teşekkürler
benim sorunum kod ifadelerinin anlamını bilmiyorum ve nette bulamadım. onları öğrensem yapmam daha kolay olur heralde. size zahmet vermezsem bu kodların anlamları ve nerelerde kullanıldığına dair biraz bilgi verirseniz sevinirim.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:

Orjinalden alıntı: ayset

cevap verdiğiniz için çok teşekkürler
benim sorunum kod ifadelerinin anlamını bilmiyorum ve nette bulamadım. onları öğrensem yapmam daha kolay olur heralde. size zahmet vermezsem bu kodların anlamları ve nerelerde kullanıldığına dair biraz bilgi verirseniz sevinirim.




Kodlar içinde yer alan operatör ve fonksiyonların anlamlarını detaylı bir şekilde zaman buldugumda yazacagım. Bunun haricinde Visual Basic bakarız biraz daha detaylı bilgi sahibi olabilirsin.

http://resim.donanimhaber.com/m_2734140/tm.htm Bu adreste VB örnekleri bulabilirsin.

Ayrıca kafana takılan sorular varsa mümkün oldugunce yardımcı olmaya calısırız.Kolay gelsin


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Koşullar (IF)

Buradaki amac belirli bir kosula baglı isteklerin yerine getirilmesidir. Bu genelde IF komutu ile gerçekleştirilir.

IF şart THEN istek

Sub Ornek_makro()
If Range("A1").Value = 100 Then Range("B1").Value = 1000
End Sub


Bu makroyu yazıp calıstırdıgınızda A1 hücresinde 100 değeri var ise B1 hücresinde 1000 değeri olacaktır.

Eğer istenilen durum saglanmıyorsa olaya ELSE komutu ile devam edilir. Ve ikinci gidişat belli olur.

Sub Ornek_makro()
If Range("A1").Value = 100 Then
Range("B1").Value = 1000
Else
Range("B1").Value = 0
End If
End Sub

Görüldüğü gibi A1 hücresi 100'den farklı bir değere sahip ise B1 hücresi 0 değerini alacaktır.


Daha farklı örnekler hazırlanabilir. Örneğin bir sınıfta 50 puanın altının kaldıgını düsünelim. Öğrenci listende 50 den düsük alanlar kırmızı renkle gösterilebilir.

Ya da yazılı bir alan için 5 ten kücük olana hücrelere "serseri" yazdırabilirsiniz.


Bu mesaja 1 cevap geldi.
D
19 yıl
Çavuş

merhabalar,
Yaptıgınız çalışmalar için teşekkür ederim öncelikle, devamının gelmesinide diliyorum.
Benimde basit bir iki sorum olacak;
**Excel kullanıyorum, fakat macro bilmiyorum. Bunun uygulamalrını rahat yapabileceğim, anlayabileceğim bir kitap önerebilirseniz memnun olurum.
***Örneğin bir çalışma kitabında bir çok calışma sayfasından ( bu çalışma sayfa sayfa sayısı 15'den fazla) her calışma sayfası ayrı bir firma olarak duşunulurse, örneğin nisan ayına ait her firmanın satış toplamlarını ayrı bir çalışma kitabınının calışma sayfasına / içinde çalışılan kitabın yeni bir çalışma sayfasına yazılmasını saglayan bir macro hazırlamak istiyorum. bu konu hakkında yorum ve yardımlarınızı rica ederim.


Çalışmalarınızda başarılar.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

@discretion hocam öncelikle hosgeldin. Kitap tavisyesi için daha önce su konuya bişeyler yazmıstım.

http://forum.donanimhaber.com/m_8591706/mpage_1/key_//tm.htm#8592779

Buradaki Muhammed Temel Korkmazın kitabını mutlaka tavsiye ederim. Kendim de o kitabı kullanıyorum.


İkinci soruna gelince evet böyle bir makro hazırlanır. Ve bu iş birden cok yolla yapılır ama en basit ve kullanıslı yolu görebilmelisin. Kişisel fikrim FORM kullanarak yapmaktır. Bütün firmaları tek bir form altında toplayabilirsin. Form içinde firma bilgileri, satıs bilgileri ve aylar gibi yer alabilir. Forma bir de KAYDET butonu koyarak yeni bir Excel sayfasına form içerindeki bilgileri kaydedebilirsin.

Farklı bir yol ise hücre satır ve sutun yerlerinden gitme. Diyelim Nisan ayı bilgileri her firma icin A50 ile F60 alanında yer alıyor. Burada bir makro kaydedip. Bu alandaki bilgileri kopyala yapıstır yolu ile yeni bir sayfaya gönderebilirsin. Tabi bu söylediğim biraz daha basit ve düz mantıklı.

Bunlardan farklı yol veya yollarda olabilir.Gerisi size kalmıs. Kolay gelsin


Bu mesaja 1 cevap geldi.
D
19 yıl
Çavuş

serseri hocam, ilk önerdiğinizi denemeye calışcam...
yardımlarınız ve kitap önerileriniz için de ayrıca teşekkür ederim...

çalışmalarınızda başarılar.


Bu mesaja 1 cevap geldi.
D
19 yıl
Çavuş

Yazdıgım soruma farklı bir yoldan cevabı buldum, aslında cok basit bir ayrıntıyı göz ardı etmişim.. Burada bahsedilen soru için ETOPLA işlevini kullandım.
Sadece paylaşmak istedim.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:

Orjinalden alıntı: discretion

Yazdıgım soruma farklı bir yoldan cevabı buldum, aslında cok basit bir ayrıntıyı göz ardı etmişim.. Burada bahsedilen soru için ETOPLA işlevini kullandım.
Sadece paylaşmak istedim.



Hallolduguna sevindim dediğim gibi cok fazla çözüm yolu olabiliyor önemli olan en kolay ve anlasılır çözüm


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Userform Kullanımı

VBA önemli noktalardan biriside userform kullanımıdır. Nasıl Visual Basicte userformlarla çalışılıyorsa Excel içine de userformu ekleyerek kod yazıp form yapabiliriz.

Yeni bir form tasarlayabilmek için Visual Basic Düzenleyicisinden Insert bölümünden Userform'u seçebiliriz. Karsımıza bir form gelecektir. Bu form bilinen boş bir Visual Basic sayfasıdır. Buraya yine text box,command button gibi visual basice hitap eden kontroll menülerini koyabiliriz.

örnek olarak basit bir liste hazırlayacagız. Bunun için formumuza Kaydet,Formu Temizle ve Çıkış butonları ekledik. Liste olarak ben öğrenci listesi düşündüm. Siz personel listesi,malzeme listesi gibi farklı (ihtiyaca göre) listeler tasarlayabilirsiniz.

Programın çalışır haldeki ekran görüntüsü şu şekildedir;

< Resime gitmek için tıklayın >

Görüldüğü gibi forma öğrencileri ait bilgileri girmek üzere Adısoyadı,doğum tarihi ve yeri gibi (bunlar çoğaltılabilir) bilgilerin girişi için textboxlar eklenmiştir.

Program adımında ilk userforma giriş yapmamızı sağlayan bir command butonu ekliyoruz. Öğrenci Bilgileri isimli bu buton ile frmogrenci adını verdiğimiz userforma ulasabiliyoruz. Bu butonu kodları ise

Private Sub CommandButton1_Click()
Sheets("deneme").Select
frmogrenci.Show
End Sub


şeklindedir. Burada excel çalışma sayfasını ben "deneme" ismiyle kaydettiğim için böyledir.

Daha sonra formda yer alan üç butonun kodları ise şu şekildedir. (Bu kodları VB düzenleyici içinde kodlar sayfasının solunda yer alan menüde FORMS içinde bulunan "frmogrenci" formunun içindeki yerlere yazıyoruz)

Yeni Kayıt Ekle ;

Private Sub cmdkayit_Click()
Range("a2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("a2").Value = "" Then
Range("a2").Value = 1
Range("a2").Select
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
ActiveCell.Offset(0, 1).Value = txtogradi
ActiveCell.Offset(0, 2).Value = txtdtarihi
ActiveCell.Offset(0, 3).Value = txtdyeri

aciklama = "Kayıt İşlemi Başarıyla Tamamlandı"
dugme = vbOKOnly + vbInformation + vbDefaultButton1
baslik = "kayit"
MsgBox aciklama, dugme, baslik
End Sub


Yeni verilerin a2 hücresinden baslayacagı düsünülerek tasarlanmıştır. A2 bos ise "textogradi" değeri B' hücresine eklenmektedir. Mantık bu şekildedir. Bunun için DO WHILE döngüsü kullanılmıştır.

Kayıt sonundda İşlem tamamlandı uyarısını içeren MsgBox eklenmiştir.

Formu Temizle;

Private Sub cmdtemizle_Click()
txtogradi = ""
txtdtarihi = ""
txtdyeri = ""
End Sub


Bu buton daha önceki kayıttan kalan bilgilerin temizlenmesini sağlamaktadır.

Çıkış;

Private Sub CommandButton3_Click()
Unload frmogrenci
End Sub


Formdan çıkışı sağlamaktadır.



Basit ve kısa zamanda hazırlanmış birşey oldugundan sorun çıkabilir. Örneğin aynı isim yanlıslıkla iki kere eklenebilir. (Bunun için ayrı kod gerekir) ya da hücrelerde gereksiz doluluklar sistemin bütünlüğünü bozabilir.

Elbetteki çeşitli kodlarla bütün bu aksaklıklar düzeltilebilir ve hatta genişletilebilir bu da VBA meraklılarına kalmış bir iştir....


Bu mesaja 2 cevap geldi.