• DİKKAT

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

Makro İle Düşeyara

randzafer

Altın Üye
Katılım
24 Ekim 2007
Mesajlar
71
Excel Vers. ve Dili
Excel 2013 Türkçe
Merhaba, gider kalemlerine ait detay notları; gider kalemlerinin ilgili dönemlerindeki verilerine karşılık gelecek şekilde bir raporum var. Aslında yapmak istediğimi formül ile oluşturdum. Fakat notları okumak isteğimizde hücre içinde formül göründüğü için ve hücre genişliği çok olmadığı için notlar uzadıkça sadece hücrenin genişliği kadar olan not görünüyor ( formül çubuğuna baktığımızda da sadece formül göründüğü için işlevsiz olmuş oluyor ). Dolayısıyla formülün görünmemesini sağlamak için bu çalışmayı makro ile yapmak daha mantıklı olacak diye düşündüm. Örnek dosya ektedir.
Özetle; AF4 hücresinde kullandığım formülü makro ile uygulayarak AF sütunu boyunca gerçekleştirmek. Veriler satır olarak 1000. satırlarlara kadar geldiği için ben kısaca sadece 16 satırlık bir veri ekledim. Yani makronun kurgusunu oluştururken 1000. satırlara kadar gidecekmiş gibi düşünebiliriz.
Bu arada rapor kurgu olarak benim daha önce uyguladığım 3-4 şirkette çok başarılı bulundu. Belki bazı formülleri, rapor mantıklarını uzun yoldan yapmış olabilirim, değerli görüşleriniz ya da eleştirileriniz varsa seve seve dikkate alırım.
Bu makronun oluşturulması konusunda üstatlardan ve bilgili arkadaşlardan destek rica ederim.
Teşekkürler.
 

Ekli dosyalar

Konu biraz acil olup desteğinizi rica ederim, teşekkürler
 
Bu konuda destek verebilecek kimse yok mu ? Aslında uzmanlarımız için kolay olur düşüncesindeydim ama ? ...
 
Merhaba,
Sorununuzu anlamış olmakla birlikte yapmak istediğiniz tam olarak anlaşılmıyor. En azından ben anlayamadım.

> Özetle; AF4 hücresinde kullandığım formülü makro ile uygulayarak AF sütunu boyunca gerçekleştirmek.

Eğer sadece bunu yapmak istiyorsanız bir düğme ekleyin ve şu kodları atayın.
Kod:
açıklama = "AF5:AF1000"
Sheets("Artan Gider Kalemleri").[AF4].Copy
Range(açıklama).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
 
Merhaba,
Sorununuzu anlamış olmakla birlikte yapmak istediğiniz tam olarak anlaşılmıyor. En azından ben anlayamadım.

> Özetle; AF4 hücresinde kullandığım formülü makro ile uygulayarak AF sütunu boyunca gerçekleştirmek.

Eğer sadece bunu yapmak istiyorsanız bir düğme ekleyin ve şu kodları atayın.
Kod:
açıklama = "AF5:AF1000"
Sheets("Artan Gider Kalemleri").[AF4].Copy
Range(açıklama).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Öncelikle ilginiz için teşekkür ederim; yapmak istediğim hücre içerisinde yani mesela ilk hücre olan AF4'te formülün kendisinin ( =EĞERHATA(DÜŞEYARA(BİRLEŞTİR($C4;"-";$B4;"-";$AF$2);'Notlar Veri'!$A:$V;21;0);"") görünmesi yerine sonucun ( Hill İnt. 1,2k - Genel Müdürlük / Şirket Ortağım 1k - Genel Müdürlük / Hatko GMBH 18,3k - Yönetim Müşterek ) görünmesi çünkü açıklamalar sütun genişliğinden fazla olduğu zaman okunmuyor ve sütunu genişletmek gerekiyor ( her defasında sütun genişliği yapmamak için yukarıda formül çubuğuna baktığımızda formül yerine sonucun kendisi görünürse sürekli sütun genişliği yapmak gerekmez )
 
Hem yukarıdaki formülü hem de açıklama satırının genişlemesi ile ilgili sorunu da şu kodlarla çözebilirsiniz.
Kod:
Sheets("Artan Gider Kalemleri").[AF4].Value = "=IFERROR(VLOOKUP(CONCATENATE(RC3,""-"",RC2,""-"",R2C32),'Notlar Veri'!C1:C22,21,0),"""")"
açıklama = "AF5:AF1000"
Sheets("Artan Gider Kalemleri").[AF4].Copy Range(açıklama)

genişlikçözümü = "AF4:AF1000"
Range(genişlikçözümü).Copy
Range(genişlikçözümü).PasteSpecial Paste:=xlPasteValues
Columns("AF:AF").EntireColumn.AutoFit
Application.CutCopyMode = False
 
Hem yukarıdaki formülü hem de açıklama satırının genişlemesi ile ilgili sorunu da şu kodlarla çözebilirsiniz.
Kod:
Sheets("Artan Gider Kalemleri").[AF4].Value = "=IFERROR(VLOOKUP(CONCATENATE(RC3,""-"",RC2,""-"",R2C32),'Notlar Veri'!C1:C22,21,0),"""")"
açıklama = "AF5:AF1000"
Sheets("Artan Gider Kalemleri").[AF4].Copy Range(açıklama)

genişlikçözümü = "AF4:AF1000"
Range(genişlikçözümü).Copy
Range(genişlikçözümü).PasteSpecial Paste:=xlPasteValues
Columns("AF:AF").EntireColumn.AutoFit
Application.CutCopyMode = False
Evet makronun formül sonuçlarını getirmesi konusunda tam da istediğim buydu teşekkürler. Ama sütun genişlemesin yani genel sunum yaptığımız için sütun genişleyince sunum formu bozuluyor standar bir açıklama sütun genişliği kriterimiz var o yüzden sütun genişliği sabit kalsın. Rica etsem o haliyle güncelleyebilir miyiz.
 
Koddaki
Columns("AF:AF").EntireColumn.AutoFit
satırını silin.
 
Geri
Üst