Power Apps Uygulamalarında Departman Kontrolü ile Yetkilendirme

Uygulama ekranlarında kurallar oluşturarak interaktif akış sağlayabilir ya da görsel anlamda işlem yapabilirsiniz. Uygulama senaryosundaki duruma göre departman , kullanıcı maili, lokasyon, unvan, medeni durum, ya da çoktan seçmeli işlemlerde kullanıcı seçimlerine göre nesneleri ya da işlemleri koşullara bağlayabilirsiniz.

Genellikle belirlenen nesneler için gizleme, gösterme, dondurma, düzenlemeye açma ya da renk, konum, boyut değişikliği yapılmakta. Bu kontrolleri tüm uygulama senaryolarında rahatlıkla ve çok esnek şekilde uygulayabilirsiniz.

Departman bilgisi İnsan Kaynakları olan kullanıcılar IK’ya ait  yönetim ve onay ekranını açabilecekleri IK butonunu görebilmeliler.

Bu kontrolleri yaparken işlemleri adım adım ve parçalı yapmakta fayda var. Daha önceki yazımda bahsettiğim gibi formül değerlendirmeleri ayrı Label’lar içerisinde kontrol edilmeli ve ürettiği sonuca göre isimlendirilmelidir.

Aşağıdaki örnekte ilk olarak kullanıcı departmanını tespit edeceğiz.

Mevcut Kullanıcı için Departman Tespiti

Bu işlem için uygulamayı açan kullanıcının mevcut oturum bilgilerini almamızı sağlayan Office365Users.MyProfile() formülünden faydalanacağız.

lbl_kullanici_departman adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak Departman bilgisi edinilmiş olur.

Office365Users.MyProfile().Department 

 

Tespit Edilen Departman İK mı?

lbl_kullanici_departmani_ik_mi

adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak mevcut kullanıcı İnsan Kaynakları departmanından biri mi diye kontrol edilir. Kullanıcı İnsan Kaynaklarından ise 1 sonucunu, değilse 0 sonucunu alacağız.

If(lbl_kullanici_departman.Text=”İnsan Kaynakları”;1;0)

 

Mevcut Kullanıcı İK ise Ekranda Hangi Aksiyonlar Olacak?

lbl_kullanici_departmani_ik_mi 

adlı labeldan gelecek olan 1/0 değerlerine göre İK Giriş butonunun Visible özelliği değiştirilecek.

Böylece buton, departman koşuluna göre gösterilip gizlenecek.

If(lbl_kullanici_departmani_ik_mi.Text=Value(1);true;false) 

 

Kontrol Formülleri

lbl_kullanici_departman 

ve lbl_kullanici_departmani_ik_mi labelları daha sonra revize etmesi kolay olması adına formüller ekranına taşınmalıdır. Formül ekranı oluşturma ve önemi hakkındaki makaleye göz atmak için linke tıklayın.

Kullanıcı bilgilerini Office365 üzerinden getirmek için kullanılan fonksiyonların detayına link üzerinden ulaşabilirsiniz.

Benzer Örnekler

Personeller için hazırlanmış Ad, Soyad, TC, Cinsiyet, Doğum tarihi, Medeni durum, Askerlik gibi bilgileri içeren kişisel bilgiler formu doldurulurken de aynı süreçlerden geçilerek benzer kontroller yapılabilir.

Cinsiyet alanı Kadın olarak işaretlendiğinde Askerlik ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Medeni durum bilgisi Bekar olarak işaretlendiğinde Eş ve Çocuk bilgileri ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Sayaç Tımer Kullanımı ile Otomatik Sayfa Yönlendirmeleri

[vc_row][vc_column][vc_column_text]

Ekran Geçişleri

PowerApps mobil uygulamalarında ekran geçişleri için Navigate fonksiyonu kullanılmaktadır. Ekran geçişleri, ekrandaki nesnelere dokunulduğunda/tıklandığında (kullanıcı tetiklemesi ile) ya da belirli süreler çerçevesinde (sayaç ile) otomatik gerçekleşmesi sağlanabilir. Bir önceki yazımızda, bir butonun OnSelect özelliğine formül yazarak geçiş işlemini yapmıştık. Bu yazıda belirli bir süre sonra otomatik sayfa geçiş işlemini yapacağız.

Sayaç / Timer

Süreye bağlı olarak gerçekleşecek her işlem için Sayaç (Timer) nesnesi kullanılabilir. Böylece süre başladığında ya da tamamlandığında belirlediğiniz işlemler uygulanmak üzere çalıştırılacaktır. Sayaç burada bir tetikleyici (Power Automate yazılarımızda sıkça kullandığımız bir kelime) görevi görmektedir. Sürenin dolmasını bekler ve akışı başlatır.

Timer nesnesinin OnTimerStart, OnTimerEnd, Duration, Repeat, Reset gibi özellikleri vardır ve bu özellikler kullanılarak işlemler gerçekleştirilir. Timer Nesnesinin genel özelliklerine link üzerinden ulaşabilirsiniz.

Örneğin OnTimerStart ile ekrana yükleniyor/kaydediliyor/bekleyiniz gibi bir yazı ve görsel gösterebilir, OnTimerEnd olduğunda sayfa yönlendirmesini başlatabilirsiniz.

OnTimerStart ya da OnTimerEnd olduğunda bir koleksiyonu oluşturabilirsiniz. Koşullar oluşturabilir ya da karşılaştırabilirsiniz.

Navigate

Bu örnekte, kayıt işleminden sonra “Kaydınız başarı ile gerçekleşti” yazısını içeren bir ekran görmeyi ve süre tamamlandığında ana sayfaya dönmeyi sağlayan çalışmayı gerçekleştirelim.

Bu işlem için uygulama içerisine iki ekran eklenmeli. Ekranlardan birine SCR_AnaSayfa, diğerine SCR_Islem_Basarili adını verelim.

Timer nesnesi SCR_Islm_Basarili sayfasına eklenecek.

Timer nesnesinin Duration özelliği milisaniye cinsinden yazılmaktadır, zamanlayıcının çalışma süresini ifade eder. Bir Timer eklediğinizde standart Duration 60 000 olarak gelir ve bu da 60 saniye anlamına gelen bir değerdir. Yani Sayaç 1’den başlayarak 60′ a kadar sayacak bittiğinde işlemlere başlayacak 

 

İşlemlerin sonuçlarını hızlıca görmek ve çok beklememek için Duration değerini 3000 olarak belirleyerek 3 saniyelik bir çalışma gerçekleşmesini sağlayalım.

Duration: 3000

Belirlenen 3 saniyelik süre dolduğunda AnaSayfa yönlendirmesi yapılacak.

OnTimerEnd: Navigate(SCR_AnaSayfa)

Sayacın otomatik olarak başlaması için true yapılmıştır.

AutoStart: true

Bu işlemlerin ardından sayaç aktif şekilde çalışmaktadır. Dilerseniz Visible özelliğini false yaparak sayacı gizleyebilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

FIELDVALUE Fonksiyonu

Bu yazımızda sizlere Bağlantılı Veri Türleri ile kullanılan FIELDVALUE Fonksiyonu hakkında bilgi veriyor olacağız. Hisse Senetleri veya Coğrafya veri türleri gibi bağlantılı veri türlerinden alan verilerini almak için FIELDVALUE fonksiyonunu kullanabilirsiniz.

bağlantılı veri türleri

Veri türlerine başvuran formüller yazmanın daha kolay yöntemleri vardır, bu nedenle FIELDVALUE fonksiyonu ağırlıklı olarak bağlantılı veri türlerini temel alan koşullu hesaplamalar oluşturmak için kullanılmalıdır.

 

YAZIM KALIBI / SÖZ DİZİMİ

fieldvalue fonksiyonu söz dizimi

Bu fonksiyon bizden 2 argüman ister.
İki argümanın da girilmesi gereklidir.

FIELDVALUE fonksiyonunun söz diziminde aşağıdaki bağımsız değişkenler bulunur:

  • değer – Bağlantılı veri türünü içeren hücre adresi, tablo sütunu veya adlandırılmış aralık.
  • alan_adı – Bağlantılı veri türünden ayıklamak istediğiniz alanın veya alanların adı.

Açıklama

  • FIELDVALUE işlevi, değer bağımsız değişkeninde belirtilen bağlantılı veri türünden tüm eşleşen alanları döndürür.
  • FIELDVALUE işlevi, Arama ve Başvuru işlev ailesinin bir parçasıdır.

 

Örnekler
Aşağıdaki temel örnekte =FIELDVALUE(A2; “Area”) formülü Turkey için Coğrafya veri türünden Area alanını ayıklar.

fieldvalue fonksiyonu örnek

Bir de şehirlerle ilgili dinamik alan seçimine göre ilgili alandaki verilerini listeletelim.

fieldvalue fonksiyonu örnek

 

Notlar
Var olmayan bir veri türü alanından veri almaya çalışırsanız, FIELDVALUE işlevi #ALAN! hatası döndürür. Örneğin, asıl veri türü alanının adı “Area” olmasına rağmen siz alan adı olarak “Alan” girmiş olabilirsiniz. Geçerli bir alan adı kullandığınızdan emin olmak için formülü bir kez daha denetleyin. Kaydın alan adlarının listesini görüntülemek istiyorsanız, kaydın bulunduğu hücreyi seçin ve Ctrl+Shift+F2 tuşlarına basın.

Dilerseniz daha detaylı bilgiye Microsoft Support‘tan da erişebilirsiniz.

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Raporlarınızı Tek Tek Değil Rapor Filtresi Sayfaları ile Açın

Konuya  başlamadan öncede PivotTable‘ dan kısaca bahsedelim istiyorum. Tablo ya da listelerden raporlama yapmak istediğimizde genelde PivotTable oluşturmakla işe başlarız. PivotTable ana veriye hiç dokunmadan kendi isteğimize göre şekillenen tablolar oluşturmamız konusunda bize çok yardımcı olur. PivotTable; raporlama, hesaplama, tabloları kolayca yeniden düzenleme, biçimlendirme, filtreleme gibi birçok işi kolaylıkla yapmamızı sağlıyor. Bu makalede anlatacağımız konu ise Rapor Filtresi Sayfaları.

Aşağıdaki örnekte Şirket Adı, Personel Ad Soyad gibi örnek verilerin bulunduğu bir listeden PivotTable oluşturulmuştur. PivotTable Alanları‘ nda Filtre alanına eklenen sütun başlıkları, tablo üzerinde filtreleme yapılacak kriter haline gelirler ve bu bilgiler üzerinden filtreleme yaparız. Aşağıdaki örnek PivotTable’da, Filtreler alanına Şehir sütunu eklenmiştir, Satırlar alanına ise Personel Ad Soyad ve Şirket Adı sütunları eklenmiştir. Bu tabloda şehirlere göre filtreleme ile şehir bazlı raporlamalar yapacağız.

Uzun Yöntem

Filtreden seçilen her bir şehir için tablonun değişimini tek tek gözlemleyebiliriz. Birkaç sayfayı incelerken sorun yaşamayabiliriz fakat daha fazla sayfa üzerinde raporlama yapmak istediğimizde bu yöntemi genellikle tercih etmeyiz.

Rapor Filtresi Sayfaları

Filtre alanında yer alan Şehir kriteri için tek tıklama ile her bir şehrin raporu Rapor Filtresi Sayfaları işlevi kullanılarak hızlı ve pratik bir şekilde açılacaktır.

Bu işlem için PivotTable Alanları’ na Filtre eklendikten sonra Çözümle sekmesinde şeridin en solundaki Seçenekler tıklarız ve açılan listeden Rapor Filtresi Sayfalarını Göster… işlevini seçeriz. Bu işlemle birlikte filtre alanında yer alan Şehir seçilir. Ek olarak birkaç farklı filtre kriteri daha olsaydı, hangisine göre rapor almak istiyorsak onu seçerek işlemimizi yapabilirdik.

Ardından tüm personellerin satış yaptığı şehir bilgilerinin filtrelenmiş halleri ayrı sayfalarda hızlıca açılır.

Açılan sayfalarda Şehir bilgilerini görmekteyiz, A’dan Z’ye kadar birçok şehir olduğundan ismi sığmayan şehirler … ile temsil edilmiştir.

Siz de Rapor Filtresi Sayfaları ile pratik raporlar alın.

Değişken Türleri

[vc_row][vc_column][vc_column_text]Power Apps içerisinde kullandığımız her bir nesne ya da özellik değişken olarak kullanılabilir. Örneğin bir TextBox içindeki değeri TextBox1.Text olarak çağırabiliriz, böylece bu nesne, içerisinde metinsel ifade taşıyan bir değişkenmiş gibi kullanılmış olur. Bir nesnenin rengini, içindeki yazıyı, kenarlık bilgisi gibi tüm değerler bu mantıkla çağrılarak kullanılabilmektedir. Bu açıdan bakıldığında tüm nesnelere ve özelliklere değişken gözüyle bakabiliriz. Bu konuda yazılmış diğer makalemizi okumak için linke göz atabilirsiniz.

Temel manada her nesne değişken gibi kullanılabiliyor olsada, esasında değişken olmak üzere tasarlanmış gerçek fonksiyonlar da mevcut. Değişken atama ve kullanma konusunda alanında uzman bu fonksiyonlar Power Apps için 3 kategori altında incelenmiştir diyebiliriz. Bu değişkenler, statik bir Label’ın sayfalar arası veri taşımasından ziyade, bir değeri artan ya da azalan şekilde hesaplamak gibi daha dinamik işlemlerde kullanılmaktadır.

Power Apps Değişken Türleri

1-Genel Değişkenler:

Set

  • Global/genel bir değişkendir, uygulamanın tüm ekranlarından başvurulabilir.
  • Uygulamanın herhangi bir yerinden oluşturulabilir ve başvurulabilir değişken türüdür.
  • Sayı, Metin dizesi, Boole, Kayıt ve Tablo gibi veri türlerinde değer alabilir.
  • Set(değişken_adı; değer)

2-Bağlam Değişkenleri:

UpdateContext

  • yalnızca bir ekrandan başvurulabilir değişkenlerdir.
  • tek bir değer, bir kayıt, bir tablo, bir nesne başvurusu, bir formüldeki herhangi bir sonuç
  • UpdateContext({değişken_adı : değer })

3-Koleksiyon:

Collect & ClearCollect

  • Uygulamanın herhangi bir yerinden oluşturulabilen ve başvurulabilen tablo tutar.
  • Daha sonra kullanılmak üzere yerel cihaza kaydedilebilir.
  • Bir tablo içinde kolon bazında ya da satır bazında farklı veriler girilebilir.
  • Collect her oluşturulduğunda veriyi tekrar tekrar üstüste yazar
  • ClearCollect var olan tabloyu her defasında temizleyerek sıfırdan oluşturur.
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”; kolon3: “değer3” ;…})
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”}; { kolon1: “değer1” ; kolon3: “değer3”} ; {…})

Koleksiyon kullanımı hakkında yazılan diğer makaleye link üzerinden ulaşabilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

RASGDİZİ Fonksiyonu – RANDARRAY

[vc_row][vc_column][vc_column_text]Bu yazımızda yeni dinamik dizi fonksiyonlarından Rasgdizi Fonksiyonu ‘ndan bahsedeceğim.
Bazen rastgele verilerle doldurulmuş bir veri tablosuna ihtiyacımız olur. Bu fonksiyonla istediğiniz satır ve sütun sayısınca sayısal verileriniz hızlıca doldurabilirsiniz. Diğer fonksiyonlarla ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz.

 

NE İŞE YARAR

Rasgdizi Fonksiyonu

; belirtilen satır ve sütun sayısınca, yine belirtilen minimum ve maksimum sayı arasında ondalıklı veya tam sayılardan oluşan rastgele sayı dizisi elde etmenizi sağlar. Argüman girmeden fonksiyonu tamamlarsanız 0 ile 1 arasında ondalıklı bir sayı döndürür. Örneğin; 20 satır ve 5 sütundan oluşan 50 ile 500 arasına tam sayıların olduğu bir tabloyu birkaç saniye ile hızlıca oluşturabilirsiniz. Aşağıda örneğini göreceksiniz.

 

YAZIM KALIBI
rasgdizi sözdizimi

Fonksiyonda 5  argüman bulunuyor.Bu 5 argüman da opsiyonel/isteğe bağlıdır.Şimdi bu argümanların anlamlarına, yani fonksiyonun bizden ne isteğine ve bizim ona ne vereceğimize bakalım.rasgdizi fonksiyonu argümanlar listesi

 

ÇALIŞMA KOŞULLARI

  • Satır veya sütun bağımsız değişkeni girmezseniz Rasgdizi fonksiyonu 0 ile 1 arasında tek bir değer döndürür.
  • Minimum veya maksimum bağımsız değişkenini girmezseniz RASGDİZİ varsayılan olarak sırasıyla 0 ve 1’i alır.
  • Minimum bağımsız değişkeni maksimumdan küçük olmalıdır; aksi takdirde RASGDİZİ #DEĞER! hatasını döndürür.
  • Tamsayı bağımsız değişkenini girmezseniz RASGDİZİ varsayılan olarak YANLIŞ veya ondalık değer kullanır.
  • RASGDİZİ fonksiyonu bir dizi getirir; dizi bir formülün nihai sonucuysa yan hücrelere geçer. Yani, ENTER tuşuna bastığınızda, Excel uygun boyutta bir dizi aralığını dinamik olarak oluşturur. Destek verileriniz bir Excel tablosundaysayapılandırılmış başvurular kullanıyorsanız dizi aralığınıza veri eklediğinizde veya dizi aralığınızdan veri çıkardığınızda dizi otomatik olarak yeniden boyutlandırılır. Daha fazla bilgi için geçmiş dizi davranışı ile ilgili makaleyi inceleyin.
  • RASGDİZİ S_SAYI_ÜRET işlevinden farklı, S_SAYI_ÜRET işlevinin bir dizi döndürmemesi nedeniyle S_SAYI_ÜRET ‘in tüm aralığa kopyalanması gerekir.
  • Diziler, bir değer sırası, bir değer sütunu ya da değer sırası ve sütunlarının bir kombinasyonu olarak düşünülebilir. Yukarıdaki örnekte, RASGDİZİ formülümüzün dizisi D2:F6 aralığıdır ve 5 satıra 3 sütundur.
  • Excel, çalışma kitapları arasındaki dinamik dizilere yönelik olarak sınırlı destek sunar ve bu senaryo yalnızca her iki çalışma kitabının da açık olması durumunda desteklenir. Kaynak çalışma kitabını kapatırsanız bağlantılı tüm dinamik dizi formülleri yenilendiğinde #BAŞV! hatası döndürür.

 

FONKSİYON KULLANIMI

Şimdi 3 farklı örnekle fonksiyonun nasıl çalıştığını görelim. Önce sadece satır ve sütun belirteceğiz, sonraki örnekte satır, sütun, min ve maks sayı değerlerini verip geriye bir dizi döndüreceğiz. Sonra olarak da geri dönmesini istediğiniz sayısal verinin tam sayı olmasını isteyeceğiz. Elde edeceğimiz görüntü bu şekilde olacak.

 

excel rasgdizi farklı örnekler

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Sıralı Fonksiyonu – SEQUENCE

[vc_row][vc_column][vc_column_text]Bu yazımızda yeni dinamik dizi fonksiyonlarından SIRALI Fonksiyonu ‘ndan bahsedeceğim.
Bazen sütunda bir sıra numarası vermek istediğimizde veya belirttiğimiz satır ve sütun aralığında bir başlangıç sayısı verip, artış değerini de belirttiğimizde o hücre aralığında sıralı sayı dizisi oluşturabileceğimiz bir fonksiyondur. Hızlı bir veri kümesi oluşturmanız gerektiği durumlarda da kolayca kullanabiliriz. Diğer fonksiyonlarla ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz.

 

NE İŞE YARAR

SIRALI

Fonksiyonu ; yukarıda da biraz bahsettiğim gibi, Excel’deki mevcut Doldur kısmında yer alan Seri Doldur seçeneği ile benzer özelliklere sahip bir fonksiyondur. Örneğin; 1’den 20’ye kadar bir sıra numarası vermek istediğimizde =SIRALI(20) dememiz yeterli olacaktır. Ya da 10 satır ve 5 sütunlu sayısal bir veri tablosu oluşturacaksınız diyelim, bu sayılar da belli bir sayıdan başlasın ve belirttiğimiz artış değerinde üzerine eklenerek diziyi doldursun istediğimizde kullanabiliriz. Bu fonksiyon bize geri döndürdüğü sayısal verilerle ekstra özel işlemler de yapabiliriz. Son bölümde bununla ilgili bir örnek veriyor olacağım.

 

YAZIM KALIBI

sıralı fonksiyon argümanları

Fonksiyonda 4  argüman bulunuyor.
Bu 4 argümandan 1. si gerekli, diğer 3 argüman da opsiyonel/isteğe bağlıdır.

Şimdi bu argümanların anlamlarına, yani fonksiyonun bizden ne isteğine ve bizim ona ne vereceğimize bakalım.

sıralı fonksiyon argümanları listesi

 

ÇALIŞMA KOŞULLARI

  • Tüm eksik isteğe bağlı bağımsız değişkenler için varsayılan olarak 1 kullanılır.
  • Diziler, bir değer sırası, bir değer sütunu ya da değer sırası ve sütunlarının bir kombinasyonu olarak düşünülebilir.
  • SIRALI işlevi bir dizi getirir; dizi bir formülün nihai sonucuysa yan hücrelere geçer. Yani, ENTER tuşuna bastığınızda, Excel uygun boyutta bir dizi aralığını dinamik olarak oluşturur. Destek verileriniz bir Excel tablosundaysayapılandırılmış başvurular kullanıyorsanız dizi aralığınıza veri eklediğinizde veya dizi aralığınızdan veri çıkardığınızda dizi otomatik olarak yeniden boyutlandırılır. Daha fazla bilgi için geçmiş dizi davranışı ile ilgili makaleyi inceleyin.
  • Excel, çalışma kitapları arasındaki dinamik dizilere yönelik olarak sınırlı destek sunar ve bu senaryo yalnızca her iki çalışma kitabının da açık olması durumunda desteklenir. Kaynak çalışma kitabını kapatırsanız bağlantılı tüm dinamik dizi formülleri yenilendiğinde #BAŞV! hatası döndürür.

 

FONKSİYON KULLANIMI

Dilerseniz bir sütunda sıra numarası vermeyi deneyebilirsiniz. Belirtilen satır ve sütun sayısınca 1’den başlayıp Sıralı bir sayı dizisi elde edebiliriz, dilersek artış değerini kullanarak step step artmasını sağlayabilirsiniz. Şimdi fonksiyonun nasıl kullanıldığını görelim.

sıralı fonksiyonu kullanımı

 

VERİLERİ SÜTUNLARA KOLAYCA BÖLÜN

Şimdi de yukarıda bahsettiğimiz ekstra özel işlemlerde kullanımına bir örnek verelim..
A sütununda onlarca, yüzlerce, binlerce satır veri olduğunu varsayalım, bu verileri de birkaç sütuna bölmek istiyorsunuz, işte o zaman bu fonksiyonun kullanım mantığı ile geri döndürdüğü sayılardan faydalanarak listeyi kolayca oluşturabiliriz. Aşağıdaki örnekte, A sütununda 16 satır veri var, biz bu verileri, birer satır ara ile A ve B sütunlarına eşit miktarda yazdıralım.

 

sıralı function farklı kullanımı

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

coder by[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

EXCEL ile OUTLOOK ÜZERİNDEN TOPLU MAİL GÖNDERME

Bu yazımızda, birçok kullanıcının ihtiyacı olduğunu bildiğim, Excel Eğitimlerinde de nasıl yapabiliriz denilen bir konuyu sizlere aktarıyor olacağım. Vakit kaybetmeden Excel ile Outlook üzerinden toplu mail nasıl gönderebiliriz ona biraz bakalım.

excel toplu mail

Öncelikle Excel ile Outlook üzerinden toplu mail gönderme işini VBA‘nın, yani herkesin bildiği isimle makroların gücüyle yapıyor olacağız. O yüzden az biraz makro bilginiz olursa iyi olur fakat konuyu basit anlatacağım ve birçok kod satırı klişe olduğundan, makro bilginizin olması çok da şart değil diyebilirim. Ayrıca her bir kod satırının da ne anlama geldiğini belirtmiş olacağım. Önce tüm kodları size vereceğim. Sonra da tek tek o kodların açıklamalarını yapacağım. Çok daha geliştirilebilir elbette fakat şu an için basit bir şekilde toplu mail nasıl gönderilir onu aktarıyor olacağım. İlaveten yazının sonunda uygulama örnek dosyasını da ekleyeceğim.

Hadi başlayalım. 👍🏻

 

İlk etapta şöyle bir tablomuz olduğunu varsayıyorum.
Gönder butonuna bastığımızda 2. satırdan başlayarak son satıra kadar tüm mailleri göndermesini sağlayacağız.

excelvba mail listesi

 

Excel ile OUTLOOK Üzerinden Toplu Mail Gönderme – TÜM KODLAR

Sub PEAKUP_Mail_Gonder()
   Dim Outlook As Object, yeni As Object, i As Long
   Set Outlook = CreateObject("Outlook.Application")
   For i = 2 To Cells(Rows.Count, "A").End(3).Row
      Set yeni = Outlook.CreateItem(0)
      With yeni
         .To = Range("B" & i).Value
         .Subject = Range("C" & i).Value
         .Body = Range("D" & i).Value
         .Display
         '.Send
     End With
   Next i
   Set Outlook = Nothing: Set yeni = Nothing: i = Empty
   MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName
End Sub

Evet.. ihtiyacımız olan kodlar aslında bu kadar. Şimdi her bir kod satırının ne iş yaptığına geçelim. Yukarıda da belirttiğim gibi, aslında yukarıdaki tüm kodları bir kalıp/klişe olarak düşünebilirsiniz. Bu kodları alıp, kime, konu ve açıklama kısımlarını sizin dosyanıza göre uyarlamanız yeterli olacaktır.

 

Sub PEAKUP_Mail_Gonder()

Makromuza/Prosedürümüze PEAKUP_Mail_Gonder ismini veriyoruz.

Dim Outlook As Object, yeni As Object, i As Lon

Kullanacağımız değişkenlerimizi tanımlıyoruz. Değişken tanımlamak zorunlu değil fakat faydalıdır diyebiliriz. Detayları değişkenler ve tanımlama yöntemleri yazımızda aktarıyor olacağım.

Set Outlook = CreateObject("Outlook.Application")

Late Binding

metodu ile Outlook uygulamasını oluşturuyoruz. (İki metot var; Early Binding ve Late Binding)

For i = 2 To Cells(Rows.Count, "A").End(3).Row

2. satırdan A sütunundaki dolu olan son satır numarasına kadar bir For döngüsü oluşturuyoruz. Teker teker tüm satırlardaki adreslere mail göndermesi için kullanıyoruz.

Set yeni = Outlook.CreateItem(0)

Outlook

‘ta Yeni butonuna basar gibi, set ederek yeni bir mail oluşturulmasını sağlıyoruz.

With yeni

Aşağıdaki kodlar Yeni oluşturulan maildeki alanları ifade ettiği için, her seferinde yeni kelimesini yazmamak adına bir kereliğine With yeni diyerek altındaki satırların yeni ile ilgili olduğunu belirtiyoruz ve alttaki kodlarda dikkat ederseniz .To  – .Subject şeklinde devam eder. Yani hepsi Yeni oluşturulan mail ile ilgili satırlar.

.To = Range("B" & i).Value

Kime mail göndereceğimizi belirtiyoruz. Burada B sütunundakilere gideceğini belirttik.

.Subject = Range("C" & i).Value

Konunun ne olacağını belirtiyoruz. Konular C sütunundakiler demiş olduk.

.Body = Range("D" & i).Value

Mail gövdesine de D sütunundakileri yazmasını istiyoruz.

.Display

Maili göndermeden önce ekrana getirip görüntülemenizi sağlar.

.Send

Maili gönderir.

End With

With

deyimini End With ile mutlaka kapatıyoruz.

Next i

Döngüde bir sonraki satıra geçmesini söylüyoruz.

Set Outlook = Nothing: Set yeni = Nothing: i = Empty

Oluşturulan değişkenlerin içlerini boşaltıyoruz. Şart değil fakat hafızada yer kaplamaması için bu şekilde belirttik.

MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName

MesajBox (MsgBox) ile mail gönderiminin bittiğini belirten bir bilgi penceresi alıyoruz.

End Sub

Makromuzu/Prosedürümüzü sonlandırıyoruz.

 

 

MAİLE EK BİLGİLER EKLEMEK

Dosya Eklemek

İsterseniz mail gönderirken, bilgisayarınızdaki herhangi bir konumda bulunan dosyayı da bu kodlarla maile eklenmesini sağlayabilirsiniz. Aşağıdaki kod satırını, .To – .Subject ifadelerinin altına yazabilirsiniz.

.Attachments.Add "dosya konumu"

Mesaj Gövdesindeki Metni HMTL Görünüme Kavuşturmak

.Body

kullanıp mesaj gövdesine düz bir metin yazmak yerine isterseniz .HtmlBody yazarak html tagları ile mesaj gövdesindeki metni düzenleyebilir, görselleştirebilirsiniz.

Örneğin;

.HTMLBody = "

CC ve BCC EklemekEğer göndereceğiniz maile başka kişileri de CC veya BCC ‘ye koymak isterseniz. Kodlardaki .To satırının altına bu kodları ilave edebilirsiniz..CC = “CC ‘ye eklenecek mail adresi .BCC = “CC ‘ye eklenecek mail adresiMail Önceliği BelirlemekMailinizi yüksek öncelikli olarak göndermek isteyebilirsiniz o zaman da bu kod satırını ilave edebilirsiniz..Importance = 2
Evet.. şimdiye kadar yazdıklarımı inceleyip öğrendiysek artık uygulayabiliriz. 😃
Kodları çalıştırdığımızda aşağıdaki gif resimdeki gibi tüm adreslere hızlı bir şekilde mailler gönderilecektir.
Not: Kodlardaki .Display yerine .Send ‘i aktif ederseniz, maili görüntülemeden direkt olarak gönderir.excelvba outlook ile mail göndermek
Uygulama dosyasını buradan 👉🏻 indirebilirsiniz.
Başka bir örneği de bu adreste bulabilirsiniz.
Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Merhabalar,
” & Range(“D” & i).Value & “

IF KARAR YAPISI İLE ŞARTA GÖRE İŞLEMLER

Bu yazımızda sizlere; makro tarafında olmazsa olmaz bir karar/koşul yapısından bahsediyor olacağım. Yazının sonunda IF Karar yapısı nedir, ne zaman ve nasıl kullanılırı öğrenmiş olacağız.

 

IF KARAR YAPISI NEDİR?

Bu

koşul yapısı; bütün programlama dillerinde olan, bazı şartların gerçekleşmesi veya gerçekleşmemesi durumunda ayrı-ayrı kod bloklarının çalıştırılmasına imkân veren yapıdır.

Belirtilen koşuldan geri dönen True/False Boolean değerine göre işlemler yapabilmenizi sağlar.
Eğer koşulun True Doğru olduğu söylenirse, belirtilen koşul(lar)ın altında bulunan ifadeler uygulanır.
Koşulun False Yanlış olduğu söylenirse, IF yapısından sonra belirtilen ifadeler uygulanır. İlaveten, duruma göre Else veya ElseIF ifadelerini belirttiysek o satırların da kontrolünü sağlar ve ne zaman sonuç True dönerse orada belirtilen komutlar uygulanır.

 

NE ZAMAN KULLANILIR? 

Kod yazarken, Eğer ile başlayan bir düşüncemiz/şartımız varsa ve bir veya birden fazla şarta göre işlemler yaptırmak istiyorsak genellikle bu yapıyı kullanırız. Bu yapıdan başka birkaç Karar/Koşul yapısı daha mevcuttur, bunlar; Select Case, IIF, Choose ve Switch yapılarıdır. Bu yapılara da hâkim olmak kod yazarken sizi rahatlatacaktır.

 

NASIL KULLANILIR?

Öncelikle yazım kalıbı veya söz dizimi dediğimiz durumu, yani bu IF yapısını VBA tarafında nasıl yazabiliriz ona bir bakalım.

 

YAZIM KALIBI

Yazım kalıbı Syntax aşağıdaki gibidir..
Mavi renkli kısımlar sabittir.
Kırmızı renkli kısımlar değişkendir.

If koşul(lar) Then
‘Kodlarınız
End If

Mantık olarak kabaca şöyle düşünebilirsiniz; “Eğer bu sayı 10’dan büyükse bunları yap.” gibi..

Eğer tek bir koşulumuz şartımız varsa, yukarıdaki kalıbı bu şekilde de kullanabilirsiniz.
If koşul(lar) Then ‘Kodlarınız
Tek şart varsa, End If ifadesini kaldırıp, koşulu Then ifadesinin yanına yazabilirsiniz.
If ve Then arasındaki koşulumuz da, duruma göre birden fazla olabilir.
Yani örneğin; A sütunundaki hücrelerdeki sayılar 10‘dan büyükse ve boş değilse gibi, And, Or, Xor vb. Mantıksal operatörleri de kullanabilirsiniz.

Şimdi bu kısmı tam olarak anlamanız için ufak bir kod örneği verelim..

If sayi > 10 And sayi < 20 Then

Tek bir If .. Then kalıbı arasında mantıksal operatörler kullanarak, koşulumuzu kendi içinde 2-3-4…’e çıkarabilirsiniz. Diyelim ki; A2:A10 hücre aralığında bazı sayılarımız var ve bu sayılardan 10‘dan büyük olanların B sütununa büyük ifadesini yazdıralım.

Bunun için bize gerekli olan kodlar bu şekildedir;

Sub IF_Kosul_Yapisi()
    For i = 2 To 10
        If Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodların nasıl çalıştığını gif resimde görerek daha iyi anlayabilirsiniz.

IF yapısı

 

BİRDEN FAZLA KOŞUL VE ELSE

Eğer birden fazla koşulumuz var ise ve mantık olarak, Eğer böyleyse bunu yap, değilse şunu yap gibi, iki farklı duruma göre işlem yapmak istiyorsanız, bunu da yine tek bir satırda bu şekilde yazabileceğiniz gibi;

If Cells(i, "A") > 10 Then Cells(i, "B") = "Büyük" Else Cells(i, "B") = "Küçük"

alt alta Else ifadesiyle birlikte de yazabilirsiniz. O zaman kalıbımız bu şekilde olacaktır.
If koşul(lar) Then
‘Doğruysa Kodlarınız
Else
‘Yanlışsa Kodlarınız
End If

Örnek kodlarımız..

If Cells(i, "A") > 10 Then
    Cells(i, "B") = "Büyük"
        Else
    Cells(i, "B") = "Küçük"
End If

Yukarıdaki kod, 10‘dan büyük olan hücrelerin sütununa Büyük, küçük olanların da sütununa Küçük yazar.

 

ELSEIF

Şimdi de ElseIf DeğilseEğer ifadesini dahil ederek koşullarımızı artıralım.
Bu kalıpta da mantığı kabaca şöyle düşünebilirsiniz; “Eğer bu böyleyse bunu yap, değilse eğer şöyleyse şunu yap, değilse eğer öyleyse onu yap.” gibi..

Yazım Kalıbı bu şekildedir..
If koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
End If

Sonuc sütununa sonuçlarımızı bu şartlara göre yazdıralım.

  • Eğer sayı sıfıra eşitse Sıfır yazsın.
  • Eğer sayı 10’a eşitse Eşit yazsın.
  • Eğer sayı 10’dan küçükse Küçük yazsın.
  • Eğer sayı 10’dan büyükse Büyük yazsın.

Belirttiğimiz bu şartlarımıza göre, bize gereken kodlar bu şekilde olacaktır..

Sub Eger_Kosul_Yapısı_2()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        ElseIf Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodları da gif resim üzerinde nasıl çalıştığını görerek daha net anlayabilirsiniz.

 

ELSEIF ve ELSE BİRLİKTE

Son olarak kodlarımıza, eğer yukarıda belirttiğimiz şartların hiçbirine uymuyorsa, o zaman End If satırından önce Else değilse ifadesi dahil edilerek, bu şekilde hücreye başka bir sonuç da yazdırılabilir.

Sub Eger_Kosul_Yapısı_3()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        Else
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

 

Daha fazla detay için Visual Basic’te Koşul Yapılarını buradan inceleyebilirsiniz.

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Hücreyi Resim Olarak Kopyalama Yöntemleri

Bu yazımızda, Excel’de Hücreyi resim olarak kopyalama yöntemlerinini aktarıyor olacağız. Bu işlem için kullanabileceğimiz üç yöntem bulunuyor. Yazımızda bu yöntemleri ve önerilerimizi göreceksiniz. Blog sayfamızda bu gibi birçok özelliği bulabilirsiniz, takip etmeyi ihmâl etmeyin. 👍🏻

 

NEDEN İHTİYAÇ OLUR?

Tablomuzdaki bir aralığın görüntüsünün kopyasını bazen resim olarak diğer office uygulamalarına ya da herhangi bir uygulamaya aktarmak isteyebiliyoruz. Örneğin; seçilen tablo aralığını kopyalayıp Outlook, Word vb. office uygulamalarına direkt yapıştır dediğimizde tablo olarak yapıştıracaktır. Bu şekilde tablonun üzerinde değişikliğe müsait olduğu için aslında hücreyi resim olarak kopyalama ya da kopyalanan veriyi resim olarak yapıştırmak daha uygun bir ilerleyiş olacaktır.

 

HÜCREYİ RESİM OLARAK KOPYALAMA YÖNTEMLERİ

İlk yöntemimiz; Giriş

menüsündeki Pano grubu içerisindeki Resim Olarak Kopyala seçeneğinden.

hücreyi resim olarak kopyalama

 

İkinci yöntemimiz; hücre aralığını seçip kopyaladıktan sonra Özel Yapıştırma Seçeneklerinden Resim seçeneğini seçerek.

özel yapıştırma seçeneği

 

Bu şekilde resim olarak yapıştırdığınızda, kopyaladığınız hücredeki veriler değiştiğinde resim üzerindeki verilerde bir değişiklik olmaz. Fakat özel yapıştırma seçeneklerindeki Bağlı Resim / Köprülü Resim olarak yapıştırdığınızda kopyaladığınız hücre aralığındaki verilerde bir değişiklik yaptığınızda, resim üzerinde de bağlı olduğu hücrelerin görüntüsünün değiştiğini görebilirsiniz. Bu bize dinamik bir görüntü sağlayacaktır.

Aynı şekilde başka bir Office uygulamasında, özel yapıştırma seçeneklerinden Bağlantılı Yapıştır seçeneğini seçerek de, Excel‘de kopyaladığınız veri aralığında bir değişiklik yapıldığında Word ve PowerPoint gibi diğer Office uygulamalarında da değişikliği aynı anda görüntüleyebilirsiniz.

 

Şimdi Bağlı Resim olarak yapıştırmaya bir örnek verelim. Kopyalanan tablodaki bir hücredeki veriyi değiştirdiğimizde resim üzerinde de değişikli olduğunu göreceksiniz.

 

bağlı resim

 

Üçüncü yöntemimiz; Excel’deki Kamera özelliğini kullanarak, seçilen hücre aralığının resmini çekip yapıştırmak istediğimiz hücreyi seçerek hafızadaki resmin o hücreye aktarılmasını sağlayabiliriz. Bunun için Hızlı Erişim Araç Çubuğuna Kamera özelliğini şu yolla ekleyerek kullanabilirsiniz.

  • Dosya
  • Seçenekler
  • Hızlı Erişim Araç Çubuğu
  • Şeritte Bulunmayan Komutlar
  • Kamera
  • Ekle
  • Tamam

Bu işlemleri gerçekleştirdikten sonra Hızlı Erişim Araç Çubuğunda bu şekilde hücreyi resim olarak kaydetme kamera özelliği Kamera ikonunu göreceksiniz. Kamera özelliğinin her zaman orada olmasını öneririm.

Şimdi bu özelliği kullanarak hücreyi resim olarak kopyalama ve yapıştırma işleminin ne kadar kolay olduğunu görelim.

hücreye resim eklemek

 

Sizlere aktarmış olduğumuz bu üç yöntemle hücre aralığını resim olarak kaydedebilirsiniz.  Dilerseniz Microsoft Support sayfasından da ilave bilgiler edinebilirsiniz.

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻