Excelde Seçili Alanın Resmini Çekmek

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Selam Arkadaşlar ;

Diyelimki Mouse ile A1:d5 aralığını seçtik Bir makro ile bu alanın resmini çekecek
ve
Ya kaydetmek istediğimiz konumu soracak, olmazsa Paintte yapıştıracak ben manuel kaydedeceğim.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba. Alt tuşuna basılı tutup PrintScreen tuşuna basarak o anda ekranda gmzüken tüm görünütünün fotoğrafının aktarabilirsin. Sadece belirli bir alanın fotoğraflanması ise Paint içinde yapılabilir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sn serdarokan o dediğiniz elbette biliyorum ama paintte istenilen alana kadar küçültme işi sıkıcı geliyor daha basiit varsa neden olmasın
 

EKREM1661

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
1,265
Excel Vers. ve Dili
Excel-2016
Altın Üyelik Bitiş Tarihi
03-02-2026
ilişikte eklediğim küçük bir prog.aracı sorunuzla ilgili tüm sorunlarınızı çözer.
kurulum gerektirmez, kullanımı basit ve pratiktir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkür ederim visdtadaki ekran alıntısı aracının aynısı
Grab Reculatuer Area diyerek sonuca ulaşabiliyorum. sağol
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Örnek dosyayı inceleyinz.
Kod:
Sub alan_kopyala()
[a1:d5].CopyPicture
End Sub

Sub yapıştır()
ActiveSheet.Paste
End Sub
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
seyit hocam teşekkür ederim.
istediğim kopyalanan alanın
Resim001.jpg,Resim002.jpg...........Resim100.jpg vs.
olacak şekilde kaydedilmesi

Kod:
Sub alan_kopyala()
On Error GoTo son
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
GoTo Atla
son:
MsgBox "Birleşik aralıkta bir seçim yapmalısınız"
Atla:
End Sub
Kod:
Sub yapıştır()
ActiveSheet.Paste
End Sub
Yani Yapıştır makrasunda Resim Sayfaya değil
jpg olarak
Thisworkbook.path\Thisworkbook.name & sırano & ".jpg"
olarak kaydedecek
sırano 001 den başlayacak eğer varsa 002 oda varsa 003 olarak gidecek
001 ve 003 var 002 silinmiş ise 002 adında kaydedecek gb.
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Örnek:
Kod:
Sub Test()
Dim Sayi%
'.
'.
'.
Sayi = CreateObject("Scripting.FileSystemObject").GetFolder("C:\").Files.Count
 
Export "Resim" & String$(3 - Len(Sayi), "0") & Sayi + 1
End Sub
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sub or fonction not defineded hatası alıyorum sn. hocam....
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bunu deneyin.
Kod:
Sub Range_ScreenShot()
'ActiveSheet.Add(Left, Top, Width, Height)
Dim Pic As Picture, graf As Chart, rg As Range
 
    Set rg = Range("A1:D5")
    rg.CopyPicture
 
    Set Pic = ActiveSheet.Pictures.Paste
 
    With Pic
        .Copy
        .Delete
    End With
 
Set graf = ActiveSheet.ChartObjects.Add(1, 1, rg.Width, rg.Height).Chart
Sayi = CreateObject("Scripting.FileSystemObject").GetFolder("C:\").Files.Count
 
    With graf
        .Paste
        .Export "C:\Resim" & String$(3 - Len(Sayi), "0") & Sayi + 1 & ".jpg"
        .Parent.Delete
    End With
 
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Teşekkürler hocam Aşağıdaki şekilde kodlarınızı değiştirdim.
Bu şekilde seçili olan hücreler veya metin kutusu ve otomatik şekilleri export ediyorum.

Sn Seyit Diken'in kodlarındaki yapıştır kodu ise seçili olan tüm nesnelerin resmini çekiyordu o şekilde geliştirirsek sevinirim.


Kod:
Sub Range_ScreenShot()
'ActiveSheet.Add(Left, Top, Width, Height)
'Excelwebtr/anemos
Dim Pic As Picture, graf As Chart, rg 'As Range
    Set rg = Selection
    rg.CopyPicture
 
    Set Pic = ActiveSheet.Pictures.Paste
 
    With Pic
        .Copy
        .Delete
    End With
 
Set graf = ActiveSheet.ChartObjects.Add(1, 1, rg.Width + 2, rg.Height + 2).Chart
Sayi = CreateObject("Scripting.FileSystemObject").GetFolder("C:\").Files.Count
 
    With graf
        .Paste
        .Export "C:\Resim" & String$(3 - Len(Sayi), "0") & Sayi + 1 & ".jpg"
        .Parent.Delete
    End With
End Sub
Ayrıca
Sayi = CreateObject("Scripting.FileSystemObject").GetFolder("C:\Resim").Files.Count


Satırında ilk beş Karakteri resim olanları say desek ve sayımız o olsa mümkünmüdür?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sonunda hallettim... Değişken tanımlamadan
Hata yapmışım bir yerde :( düzellttim.
Kod:
Sub Selection_ScreenShot()
'ActiveSheet.Paste
'Excel.Web.tr\Anemos&SeyitDiken
On Error GoTo hata
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture: GoTo islem
hata:
MsgBox "Birleşik aralıkta bir seçim yapmalısınız": GoTo Son
islem:
    Set Pic = ActiveSheet.Pictures.Paste

    With Pic
        .Copy
        .Delete
    End With
Set graf = ActiveSheet.ChartObjects.Add(1, 1, Selection.Width + 2, Selection.Height + 2).Chart
Sayi = CreateObject("Scripting.FileSystemObject").GetFolder("C:\Resim").Files.Count
 
    With graf
        .Paste
        .Export "C:\Resim\Resim" & String$(3 - Len(Sayi), "0") & Sayi + 1 & ".jpg"
        .Parent.Delete
    End With
Son:
End Sub
Yalnız Sayı değişkeni istediğim gibi değil
Sayi = CreateObject("Scripting.FileSystemObject").GetFold er("C:\Resim").Files.Count

Şu şekilde sayarsa sevinirim

Klasör c:\resim
Metin Thisworkbok.name (.xls si hariç) sayacak
yani c:\resim altında mesala kitap1 ile başlayan jpg leri sayacak
buda olursa tam istediğim kıvama gelmiş olur.
alakanız için tümünüze teşekkür ederim
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bazı ilaveler yaptım.
Sn. Seyit Tiken'in verdiği örnekle benzer değil midir?
Kod:
Sub Range_ScreenShot()
'ActiveSheet.Add(Left, Top, Width, Height)
'Excelwebtr/anemos
Dim Pic As Picture, graf As Chart, rg, s%
 
    Set rg = Selection
    rg.CopyPicture
 
    Set Pic = ActiveSheet.Pictures.Paste
 
    With Pic
        .Copy
        .Delete
    End With
 
Set graf = ActiveSheet.ChartObjects.Add(1, 1, rg.Width + 2, rg.Height + 2).Chart
 
'Dizindeki dosyalar..
Set fl = CreateObject("Scripting.FileSystemObject").GetFolder("C:\Resim").Files
 
For Each dosya In fl
    If Left$(dosya, 5) = "Resim" Then s = s + 1
Next
 
    With graf
        .Paste
        .Export "C:\Resim" & String$(3 - s, "0") & s + 1 & ".jpg"
        .Parent.Delete
    End With
End Sub
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam teşeküür ederim ama s sayısı artmadığı için daima sıfır buluyor ve hep resim0001.jpg olarak kaydediyor ?
Kod:
Set Dosyalar = CreateObject("Scripting.FileSystemObject").GetFolder("C:\Resim\").Files

For Each dosya In Dosyalar
MsgBox dosya
    If Left$(dosya, 5) = "Resim" Then s = s + 1
    MsgBox s
Next
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Önceki sorunuzdaki isteğinize göre sayacaktır.
Kod:
metin = Left$(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
 
Dosyalar = Dir("C:\Resim\" & metin & "*.jpg")
 
While Dosyalar <> ""
    s = s + 1: Dosyalar = Dir
Wend
 
MsgBox s
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sonunda
Kod:
Sub Selection_ScreenShot()
'ActiveSheet.Paste
'Excel.Web.tr\Anemos&SeyitDiken
On Error GoTo hata
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture: GoTo islem
hata:
MsgBox "Birle&#351;ik aral&#305;kta bir se&#231;im yapmal&#305;s&#305;n&#305;z": GoTo Son
islem:
    Set Pic = ActiveSheet.Pictures.Paste

    With Pic
        .Copy
        .Delete
    End With
Set graf = ActiveSheet.ChartObjects.Add(1, 1, Selection.Width + 2, Selection.Height + 2).Chart
'Klas&#246;r ve Dosyaad&#305; ba&#351;lang&#305;&#231; metni
StrKlasor = "C:\Resim\":                           uznKlsr = Len(StrKlasor)
Strmetin = ThisWorkbook.Name:                      uznMtn = Len(Strmetin)
'Dizindeki dosyalar..
Set Dosyalar = CreateObject("Scripting.FileSystemObject").GetFolder(StrKlasor).Files
say = CreateObject("Scripting.FileSystemObject").GetFolder(StrKlasor).Files.Count
    
    For Each dosya In Dosyalar
    Ara = Mid$(StrKlasor & Strmetin, uznKlsr + 1, uznMtn)
        If Ara = Strmetin Then s = s + 1
    Next

        With graf
            .Paste
            .Export StrKlasor & Strmetin & String$(3 - Len(s), "0") & s + 1 & ".jpg"
            .Parent.Delete
        End With

Son:
End Sub
tekrar te&#351;ekk&#252;rler sn. anameos ve sn seyitdiken
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sonunda
Kod:
Sub Selection_ScreenShot()
'ActiveSheet.Paste
'Excel.Web.tr\Anemos&SeyitDiken
On Error GoTo hata
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture: GoTo islem
hata:
MsgBox "Birleşik aralıkta bir seçim yapmalısınız": GoTo Son
islem:
    Set Pic = ActiveSheet.Pictures.Paste
 
    With Pic
        .Copy
        .Delete
    End With
Set graf = ActiveSheet.ChartObjects.Add(1, 1, Selection.Width + 2, Selection.Height + 2).Chart
'Klasör ve Dosyaadı başlangıç metni
StrKlasor = "C:\Resim\":                           uznKlsr = Len(StrKlasor)
Strmetin = ThisWorkbook.Name:                      uznMtn = Len(Strmetin)
'Dizindeki dosyalar..
Set Dosyalar = CreateObject("Scripting.FileSystemObject").GetFolder(StrKlasor).Files
say = CreateObject("Scripting.FileSystemObject").GetFolder(StrKlasor).Files.Count
 
    For Each dosya In Dosyalar
    Ara = Mid$(StrKlasor & Strmetin, uznKlsr + 1, uznMtn)
        If Ara = Strmetin Then s = s + 1
    Next
 
        With graf
            .Paste
            .Export StrKlasor & Strmetin & String$(3 - Len(s), "0") & s + 1 & ".jpg"
            .Parent.Delete
        End With
 
Son:
End Sub
tekrar teşekkürler sn. anameos ve sn seyitdiken
bu kod önceden çalışıyordu şimdi

Kod:
    With Pic
        .Copy
        .Delete
    End With
dizesinin copğy satırında hata veriyor neden kaynaklıdır.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
g&#252;ncel yard&#305;m edebilirmisiniz se&#231;ilmesi gereken bir referans falan varm&#305;yd&#305;?
 
Üst