Userform Ekran Görüntüsü Alma,

Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Merhaba,
Userform ekranımdan sık sık ekran görüntüsü alarak maile ekliyor ve iletiyorum.
Userform üzerine copi al butonu ile userform ekranının ekran görüntüsünü alabilmemiz mümkün müdür?
Kod kısmında kıymetli desteklerinizi talep ederim.
Ekte örnek dosya mevcuttur.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şöyle bir konu buldum:

 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@YUSUF44 Hocam Merhaba,
Dönüşün ve ilgin için teşekkür ederim.
Bu konuyu okudum ve uyguladım bu konuda ki paylaşılan kod ekran görüntüsünü alıyor ve outlooku açarak ekliyor.
Burada ben outlooka yapıştırmasını ve outlooku açmasını istemiyorum.

Şöyle izah edeyim bana gelen maillere tümünü yanıtla diyerek cevap veriyorum ve ekran alıntısı aracı ile ekran görüntüsü alarak kendim ekliyorum. Fakat bahsi geçen uygulamada ayrıca bir mail oluşturuyor. Diğer sayfalardaki kodlarda ayrıca çalışmıyor hata veriyor.

Outlooku ve maili unutalım. Userformun ekran görüntüsünü alabilmemizin oluru var mıdır?
Var ise yardımlarınızı talep ederim.
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ordan anladığım Alt+PrintScreen tuş kombinasyonunun ekrandaki userformun görüntüsünü almayı sağlıyor ve orda da o işlemin kod hali paylaşılmış. Ancak ben o kodları nedense uygulayamadım. Declare kodlarını modüle ekleyip, command buttona diğer kodları ekleyince keybdevent kodunu bulamadığına dair hata veriyor. Declare kodlarını userforma ekleyince ise hiç çalışmıyor.

Ancak bu sitede bulduğum çözümü uygulayabildim. Tabi bazı kodlarda değişiklik yaptım ve userform görüntüsünü aynı sayfaya yapıştırabildim. Yapıştırma kısmını siz nasıl olsa istediğiniz gibi düzenleyebilirsiniz.

Bunun için dosyaya bir modül ekleyin ve aşağıdaki kodları modüle yapıştırın:

PHP:
Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Public Const VK_SNAPSHOT = &H2C

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1
Burdaki ptrsafe ifadesini 64 bit kullandığım için ben ekledim, eklemezsem hata veriyor.

Userformdaki commandbutton kodlarını da aşağıdakiyle değiştirin:

PHP:
Private Sub CommandButton1_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 0, _
KEYEVENTF_EXTENDEDKEY, 0 ' key down
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
DoEvents
'Workbooks.Add
'Application.Wait Now + TimeValue("00:00:01")
'ActiveSheet.PasteSpecial Format:="Bitmap", _
'Link:=False, DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
'ActiveWorkbook.Close False
End Sub
Kendinize göre güncellersiniz inşallah.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@YUSUF44 Hocam Selam,
İşlem tamam, desteğin için çok teşekkür ederim.
Bilgi amaçlı paylaşıyorum;

ActiveSheet.Range("A1").Select
ActiveSheet.Paste

Bu kısmı sildim. Butona tıkladığımda formun kopyasını alıyor ve sonrasında istediğin yere yapıştır.

Tekrardan teşekkür eder, hayırlı akşamlar dilerim.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,547
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sn. TiOr,

Merhabalar, rica etsem dosyanızın son şeklini eklemeniz mümkün mü?
İlgi ve yardımınız için önceden teşekkürler.

Saygılar,
Selim
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Sn. TiOr,

Merhabalar, rica etsem dosyanızın son şeklini eklemeniz mümkün mü?
İlgi ve yardımınız için önceden teşekkürler.

Saygılar,
Selim
Merhaba, Sn. @assenucler ;
Ekte örnek dosyamı paylaşıyorum.
CommandButton1 tıkladığınızda karşınıza gelecek olan userformda copi al butonuna tıklıyoruz. Userformun ekran görüntüsünü almaktadır. Akabinde userformdan çıkarak ctrl+v yaptığınızda excele ekran görüntüsünü yapıştırdığını göreceksiniz. Aynı şekilde mail gövdesine de yapıştırma işlemini rahatlıkla yapabilmekteyiz.
Bu vesile ile tekrardan @YUSUF44 hocama desteği için teşekkür ederim.
Çok basit ve saçma gibi görülen bazı uygulamalar ciddi bir zaman tasarrufu sağlamaktadır.
İyi günlerde kullanmanız temennisi ile, hayırlı günler ve şimdiden hayırlı bayramlar dilerim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu durumda aşağıdaki kodlarda işe yarayacaktır.

C++:
Option Explicit

Private Sub CommandButton1_Click()
    Application.SendKeys "(%{1068})"
    DoEvents
    Unload Me
End Sub
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@Korhan Ayhan Hocam Selam,
Bilgi için teşekkür ederim. Kod arşivime aldım :)
Şimdiden hayırlı bayramlar, sağlıcakla kalın.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,547
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
@TiOr


Paylaşımınız ve emeği geçen üstatlara teşekkür ederim. Allah razı olsun.


Ben de bugünden Ramazan Bayramınızı kutlar, sağlık ve afiyetler ile bol rızıklar dilerim.

Saygılar,
Selim
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,547
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
@sayın Korhan Ayhan,

Yukarıda 8. iletiye eklediğiniz kodu hangi durumda kullanabilirim?
Selam ve sevgiler.

Saygılar,
Selim
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Merhaba Selim Bey, @assenucler
@Korhan Ayhan hocama yardımcı olmak maiyetinde revize dosyayı ekledim.
Userformun kod kısmındaki kodu silip Ayhan hocamın paylaşmış olduğu kodu ekleyebilirsiniz.
Buradaki fark anladığım kadarıyla copi al dediğimizde userformu kapatıyor. Userform kapanınca excele bir kere tıklamanız gerekli yapıştırmak için tabi bu excel için geçerli. Farklı platformda da yapıştırma işlemini gerçekleştiriyor hiç bir problem yok.
Bildiğim kadarıyla paylaştım.
Hayırlı akşamlar...
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yusuf beyin paylaşımında api kullanılmış. Benim önerimde api yok. Tek fark budur.
 
Katılım
29 Ocak 2024
Mesajlar
76
Excel Vers. ve Dili
Office 2016
Bu durumda aşağıdaki kodlarda işe yarayacaktır.

C++:
Option Explicit

Private Sub CommandButton1_Click()
    Application.SendKeys "(%{1068})"
    DoEvents
    Unload Me
End Sub
Korhan Hocam yukarıda vermiş olduğunuz kod ile alınan ekran görüntüsünü;
Excel sayfası içerisinde bir hücreye yapıştırmak ve sonra bu görselin boyutunu ayarlamak konusunda bir çözüm öneriniz var mıdır?

teşekkürler,
iyi çalışmalar.
 
Katılım
3 Eylül 2024
Mesajlar
4
Excel Vers. ve Dili
Office 365 64bit
Ordan anladığım Alt+PrintScreen tuş kombinasyonunun ekrandaki userformun görüntüsünü almayı sağlıyor ve orda da o işlemin kod hali paylaşılmış. Ancak ben o kodları nedense uygulayamadım. Declare kodlarını modüle ekleyip, command buttona diğer kodları ekleyince keybdevent kodunu bulamadığına dair hata veriyor. Declare kodlarını userforma ekleyince ise hiç çalışmıyor.

Ancak bu sitede bulduğum çözümü uygulayabildim. Tabi bazı kodlarda değişiklik yaptım ve userform görüntüsünü aynı sayfaya yapıştırabildim. Yapıştırma kısmını siz nasıl olsa istediğiniz gibi düzenleyebilirsiniz.

Bunun için dosyaya bir modül ekleyin ve aşağıdaki kodları modüle yapıştırın:

PHP:
Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Public Const VK_SNAPSHOT = &H2C

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1
Burdaki ptrsafe ifadesini 64 bit kullandığım için ben ekledim, eklemezsem hata veriyor.

Userformdaki commandbutton kodlarını da aşağıdakiyle değiştirin:

PHP:
Private Sub CommandButton1_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 0, _
KEYEVENTF_EXTENDEDKEY, 0 ' key down
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
DoEvents
'Workbooks.Add
'Application.Wait Now + TimeValue("00:00:01")
'ActiveSheet.PasteSpecial Format:="Bitmap", _
'Link:=False, DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
'ActiveWorkbook.Close False
End Sub
Kendinize göre güncellersiniz inşallah.

Bu sorunun aynısını bende yaşamaktayım. Userform içerisinde günlük, haftalık, aylık kayıt yapılan verileri kopyalayamadıklarından dolayı sürekli ekran görüntüsü ile işlem yapılmakta. Paylaşmış olduğunuz kodu uygulamak istediğimde hata almaktayım. Nerede hata yapmaktayım yada ne düzeltmem gerekiyor yardımcı olabilirmisiniz?
Teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Korhan Hocam yukarıda vermiş olduğunuz kod ile alınan ekran görüntüsünü;
Excel sayfası içerisinde bir hücreye yapıştırmak ve sonra bu görselin boyutunu ayarlamak konusunda bir çözüm öneriniz var mıdır?

teşekkürler,
iyi çalışmalar.
Eki deneyiniz.
 

Ekli dosyalar

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Korhan Bey sizin hazırladığınız kod'a Userform'un tamamı değil de mesela iki adet "textBox" var. O ikisini kopyasını alacak şekilde ve UserForm kapanmadan "Yusuf44" Beyin kod mantığı ile düzenleyebilirmiyiz? Biz idtediğimiz yere yapıştırmak (hatta word dosyası) için.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benim önerimde form kapanmak durumunda..

Form kapanmasın istiyorsanız diğer çözümü kullanabilirsiniz.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Benim önerimde form kapanmak durumunda..

Form kapanmasın istiyorsanız diğer çözümü kullanabilirsiniz.
Korhan Bey ilginize teşekkür ederim.
Ama benim asıl istediğim kod'un komple ekran görüntüsünü almak değil de; formda iki tane TextBox var. O iki textbox daki görüntüyü kopyalaması.
Bu olabilir mi. Buna bağlı olarak form kapanmasın dedim. Yani TextBox lardaki görüntüyü kopyalayacak ve ben farklı uygulamaya yapıştırabileceğim.
Tekrar teşekkürler.
 
Üst