• DİKKAT

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

Kapali dosyadan Msgboxa veri aktarma

  • Konbuyu başlatan Konbuyu başlatan zuzzu
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Şubat 2011
Mesajlar
57
Excel Vers. ve Dili
Excel 2007
Arkadaslar merhaba,

Cok basit bir sorum var ama malesef bir türlü beceremedim.

Kapali "C:\Book1.xls" diye bir dosyam var. Icinde A1'den I31'e kadar veriler var.
Ama bu dosyaya sonradan yeni satirlar eklenebilir (UBound ile tanimlamak dogru olur sanirim).

Userformdaki CommandButtona basinca, Msgbox icinde sadece A1:I31 arasi (ya da dolu olan hücreleri) degerleri tablo halinde görmek istiyorum.
Acilan MsgBoxta sadece Kapat buttonu olabilir.

Tek islev Book1.xls dosyasindaki deger tablosunu görüp ordan bilgileri görmek ve kapatmak.

* Book1 dosyasi hemen acilip verileri msgboxa aktardiktan sonra hemen kapanabilir.
* Bir de Book1 dosyasinda bazi hücreler renklerle boyanmis ve bir kac satirda kelimelerin üstü cizilmis. Font ayarlarini da aktarmak mümkün müdür?
Yardimlariniz icin simdiden tesekkür ederim.
 
Selamlar,

Ekteki örnek dosyayı incelermisiniz.

Rar içindeki Kitap1.xls isimli dosyayı "C:\" klasörü altına kopyalayınız.

Çalışmada Spreadsheet1 nesnesi kullanılmıştır. Bu nesne ile ilgili farklı örnekler forumda bulunmaktadır. Arama yaparak ulaşabilirsiniz.


UserForm Kodları;

Kod:
Option Explicit
 
Private Sub CommandButton1_Click()
    Unload Me
End Sub
 
Private Sub UserForm_Initialize()
    Dim Veri_Dosyası As Workbook, Alan As Range, Hücre As Range
 
    Application.ScreenUpdating = False
    
    Set Veri_Dosyası = Workbooks.Open(Filename:="C:\Kitap1.xls")
    Set Alan = Range("A1:I31")
    
    With Spreadsheet1
        With .ActiveSheet
            For Each Hücre In Alan
                .Range(Hücre.Address).Font.Bold = Hücre.Font.Bold
                .Range(Hücre.Address) = Hücre
                .Range(Hücre.Address).Interior.ColorIndex = Hücre.Interior.ColorIndex
                .Range(Hücre.Address).EntireColumn.AutoFit
            Next
        End With
    End With
    
    Veri_Dosyası.Close False
    
    Set Alan = Nothing
    Set Veri_Dosyası = Nothing
    
    Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

Korhan Bey,

Yardiminiz icin cok tesekkür ederim. Spreadsheet ile ilgili örneklere sansim oldukca bakabiliyorum cünkü sitede o kadar cok kullanici var ki, yogunluktan sayfalar acilmiyor :)))

Spreadsheeti sanirim tanimlamam gerekiyor...
 
Bir türlü spreadsheeti anlayamadim. Lütfen biraz daha aciklayabilir misiniz?
 
Selamlar,

Hangi bölümünü anlamadınız?
 
Merhabalar,

Forumda biraz arastirdim. Spreadsheet libraryde bulunmuyor hatasi veriyor.
Sanirim internetten bir dosya indirmem lazim. Ancak is yerinde dosyayi indiremiyorum.
Spreadsheet kullanmadan ayni islemi yapmanin bir yolu var midir acaba?
 
Korhan Bey,

Yanitiniz icin cok tesekkür ederim. Ancak is yerinde oldugum icin bu dosyayi indirmeme izin yok.
Bilgisayara kuramiyorum güvenlik acisindan izin verilmiyor.

Spreadsheetsiz yapmanin bir yolu var midir?
Tahminim spreadsheet daha kolay bir yöntem ancak, interntten ek bir dosya kurmak zorunda kalmadan istedigim yapilamaz mi?

Cok tesekkür ederim.
 
Selamlar,

Birde ekteki örnek dosyaları incelermisiniz.

Örnek ChartObject nesnesi ile hazırlandı.

Escape tuşuna basarak formu kapatabilirsiniz.
 

Ekli dosyalar

Korhan Bey,

Userform1.Show kisminda error code:9 hatasi veriyor. Malesef calistiramadim.
Benim gözüme carpan bir sey olmadi ama nedense calismiyor.
 
Selamlar,

Sn. zuzzu,

İlk mesajınızda hücrelerde biçimler var. Ve bu biçimlerde görüntülensin dediğiniz için bu örnekleri verdim. Zaten ilk verdiğim örnek bu iş için biçilmiş kaftandı. Fakat netten indirme yapamadığınızı belirttiğiniz için bu dosya otomatikman güme gitti. Aslında sistem yöneticinizden rica ederseniz ofisin sitesinde yayınlanmış olan bu ücretsiz yazılımı size kuracaktır. Sizde bu sıkıntıdan kurtulabilirsiniz.

İkinci verdiğim örnekte ise ChartObject nesnesi kullandım. Bu nesne ile ilgili bende daha önce problem yaşamıştım. Sanırım versiyon farklılıklarından kaynaklanan bir sorundu bu.

Eğer hücre biçimleri önemli değilse size iki çözüm daha önerebilim.

Verileri ListBox nesnesinde listelemek.
Ya da verileri ListView nesnesinde listelemek.

Bu iki çözümden birisini kullanmak isterseniz belirtirseniz size yardımcı olabilirim.

Bunun dışında ilk verdiğim örneği kullanmanız için eklentiyi yükleminizden başka bir çözüm şuan için aklıma gelmiyor.
 
Yöneticim ile görüstüm ancak izin vermiyorlar. Ama kendi bilgisayarimda bu kodlari deneyememistim. En azindan spreadsheetin nasil calistigini ögrenmis olurum.

Simdilik, excel dosyasini acip print screen aldim ve onu jpeg olarak kaydettim. Command buttona basinca o resim cikiyor ama hic uygun bir cözüm degil cünkü ileride excel dosyasinda 90 satir oldugu zaman sayfaya sigmayacak ve her seferinde birinin degistirmesi lazim.

Ekte veri dosyasini ekliyorum. Bazi satirlar renkli.

Valla Listview nedir bilmiyorum, listboxda nasil uygun olur mu bilmiyorum. sadece pop-up da gözükmesi lazim cünkü ana userformumum üstünde listeye ayiracak yerim kalmadi :)

Sanirim dosyayi gördükten sonra siz daha iyi karar verirsiniz nasil olmasi gerektigine.

Yanitlariniz icin cok tesekkur ederim, sizi baya ugrastirdim.
 

Ekli dosyalar

Selamlar,

Resim çekme ile ilgili bir dosya daha hazırladım. Birde bunu denermisiniz.

Eğer satır sayısı artarak devam edecekse ilk önerimin dışındaki çözüm önerilerim sağlıklı değildir.

Bunun yerine önceki mesajımda bahsettiğim ListBox ya da ListView nesnelerini kullanmanız daha sağlıklı olacaktır.
 

Ekli dosyalar

Korhan Bey günaydin,

Bu son gönderdiginiz kodlar calisti. Ancak dediginiz gibi 1. yöntem daha uygun olurdu fakat malesef o ek dosyayi bilgisayarima yükleyemiyorum.

Satir sayisi artarak devam edecek.

Peki fontlari almasak da, sadece hücre icindeki degerleri yazdirsak? O zaman örneklediginiz 3 yönteme de gerek kalmaz sanirim degil mi?
 
Geri
Üst