Açık Çalışma Kitaplarını Comboboxta listeleme

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Arkadaşlar bir kod üzerinde çalışıyorum
excelde açık çalışma kitaplarını comboboxta listelemek nasıl mümkün olur?
seçilen
sayfayı Set TsKitAd = Combobox1.value değerine atayacak.
mümkünmüdür
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şöyle olabilir. (Kendinize uyarlayınız)

Kod:
Dim wkb As Workbook
For Each wkb In Application.Workbooks
    Combobox1.AddItem wkb.Name
Next
Bu kodlar, açık çalışma kitapları Combo'ya yükler.

Daha sonra, Combobox'da seçilene göre, bir değişkene, seçilen kitabı set edebilirsiniz. Örneğin:

Kod:
Dim SecilenWkb as Workbook
Set SecilenWkb=Workbooks(Combobox1.Value)
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam zahmet verecem ama comboxda seçilen çalışma kitabındaki çalışma sayfalarınıda listboxa alsak ?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şunu deneyiniz.

Kod:
Dim SecilenWkb as Workbook
Dim sh As Worksheet[LEFT]Set SecilenWkb=Workbooks(Combobox1.Value)
For Each sh In Secilenwkb.Sheets
     Listbox1.Additem sh.Name
Next
Set wkb = Nothing
[/LEFT]
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()
Dim wkb As Workbook
For Each wkb In Application.Workbooks
    ComboBox1.AddItem wkb.Name
    Next
[B]burada comboboxa [color="red"] "(yenikitap)" değeri nasıl eklenir?[/color][/B]

ComboBox1.Value = ThisWorkbook.Name
End Sub
Kod:
Private Sub CommandButton2_Click()
[B][color="Red"] if combobox1.value = "(yenikitap)" Then
tek sayfalı YeniWorkbook ekle
Dim SecilenWkb As Workbook
SecilenWkb = yeniworkbook.name [/B][/color] 
else
Dim SecilenWkb As Workbook
Set SecilenWkb = Workbooks(ComboBox1.Value)
end if 
MsgBox SecilenWkb.Sheets.Count, , SecilenWkb.Name & "Sayfa Sayısı"
End Sub

Kırmızı satırlar nasıl düzenlenmeli
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Şunu deneyiniz.

Kod:
Dim SecilenWkb as Workbook
Dim sh As Worksheet[LEFT]Set SecilenWkb=Workbooks(Combobox1.Value)
[color="red"][B]ListBox1.Clear[/color] 'bu satır kullanılmazsa sayfalar hep alta ekler[/B]
For Each sh In Secilenwkb.Sheets
     Listbox1.Additem sh.Name
Next
Set wkb = Nothing
[/LEFT]
burada en baştaki değer nasıl seçilir
teşekkürler hocam buda tamam sıra geldi comboboxa manuel değer eklemeye ve comboboxun değeri manuel değere eşitse yeni kitap açmaya
 
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
Kod:
[color=red]'1)
[B]Private Sub ComboBox1_Change()[/B][/color]
ListBox1.Clear

If ComboBox1.Value = "(Yeni)" Then
    [color=red]'2) MsgBox "Tek sayfalı Yeni kitap oluştur" [/color]
Else
    Dim SecilenWkb As Workbook
    Dim sh As Worksheet
    Set SecilenWkb = Workbooks(ComboBox1.Value)
    For Each sh In SecilenWkb.Sheets
        ListBox1.AddItem sh.Name
    Next
    ListBox1.ListIndex = 0                                                   'ikinci olan       '||
    Set wkb = Nothing
End If
End Sub

Private Sub CommandButton2_Click()
Dim SecilenWkb As Workbook
Dim sh As Worksheet
Set SecilenWkb = Workbooks(ComboBox1.Value)
'MsgBox SecilenWkb.Sheets.Count, , SecilenWkb.Name & "Sayfa Sayısı"
MsgBox ListBox1.Value & " " & SecilenWkb.Name & " Kitabının " & ListBox1.ListIndex + 1 & ".sayfadır"
End Sub

Private Sub UserForm_Initialize()
Dim wkb As Workbook
For Each wkb In Application.Workbooks
    ComboBox1.AddItem wkb.Name
    Next
ComboBox1.AddItem "(Yeni)"
ComboBox1.Value = ThisWorkbook.Name
End Sub
'1)Private Sub ComboBox1_Change()
satırında combobox1. value Çalışma sayafası adlatrından biri veya (yeni) değilse hata: exit sub olsun
'2) MsgBox "Tek sayfalı Yeni kitap oluştur"
msgbox zaten açık
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Combobox'a önce "Yeni Kitap" adında bir eleman ilave etmek ve daha sonra açık çalışma kitaplarını listelemek için;

Kod:
Dim wkb As Workbook
Combobox1.AddItem "Yeni Kitap Oluştur"[LEFT]For Each wkb In Application.Workbooks
    Combobox1.AddItem wkb.Name
Next


kodunu kullanabilirsiniz. Eğer Combo'dan seçilene göre yeni çalışma kitabını açtırmaya çalışıyorsanızda aşağıdaki bloğu prosedürünüze monte edebilirsiniz.

Kod:
If Combobox1.ListIndex=0 Then[LEFT]   Workbooks.Add
End If
[/LEFT]
[/LEFT]
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()
Dim wkb As Workbook
For Each wkb In Application.Workbooks
    ComboBox1.AddItem wkb.Name
    Next
[B]ComboBox1.AddItem "(Yeni)"[/B]
ComboBox1.Value = ThisWorkbook.Name
End Sub
ben baştan for each in arasına yazıyordum gına gelmişti sonradan farkettim...
düzelttim

Kod:
If Combobox1.Value = "(yeni)" Then
Workbooks.Add 
End If
[code]

ise kitap ekleyecek aktif sayfayı listboxda seçili sayfanın ardına kopyalayacak... ama içinde ilk baştaki sayfa1,2,3 olmayacak falan bir uğraşayım kalanını yaparım galiba

Teşekkür ederim hocam
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Şöyle olabilir. (Kendinize uyarlayınız)

Kod:
Dim wkb As Workbook
For Each wkb In Application.Workbooks
    Combobox1.AddItem wkb.Name
Next
hocam bir sorum daha olacak tı comboboxta kitab adı kitap1.xls olarak gözüküyor onu kitap1 olarak göstyerip kitap1.xls olarak seçtirme nasıl olmalı ?
 
Üst