• DİKKAT

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

ComboBox1.RowSource?

  • Konbuyu başlatan Konbuyu başlatan prtkl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
19 Şubat 2010
Mesajlar
62
Excel Vers. ve Dili
2003-TR
Kod:
Sub UserForm_Activate()
ComboBox1.RowSource = "Sayfa2!B5:B39"
End Sub

Arkadaşlar yukarıdaki kodu, C:\Belgelerim\Klasör1\Excell1 de bulunan UserFormun ComboBox1 ine, Sayfa2 nin B5:B39 hücrelerinin içeriğini aktarmak için kullanıyorum.

Eğer bu Sayfa2 sayfası

C:\Belgelerim\Klasör2\Excell2
dosyasında ve kapalı olsaydı; Excell1 de bulunan UserFormun ComboBox una, bu kapalı Excell2 dosyadaki Sayfa2 nin B5:B39 hücrelerindeki verileri almak için yazmam gereken kodu
güncelleyebilir misiniz?
 
rowsource değilde additem ve excel4 makro ile olur.Kodlar aşağıdadır.:cool:
Kod:
Dim i As Byte
klasor = CreateObject("wscript.shell").SpecialFolders(16) & "\Klasör2\"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
 
çok çok teşekkürler.

Daha sonra bir karar verip dosya yerleri değiştirilse.

Örneğin, Excell2 dosyası C:\Belgelerim\Klasör2\Excell2 yerinden

D:\Yedek\Excell2

ya da başka bir yere taşınmış olsa; ben bu değişimden dolayı kodun hata vermemesi için verdiğiniz kod da nereleri değiştirmem gerekir?

özellikle

Kod:
CreateObject("[B][COLOR="Red"]wscript.shell[/COLOR][/B]").SpecialFolders([B][COLOR="Red"]16[/COLOR][/B]) & "\Klasör2\"
Application.ExecuteExcel4Macro("[B][COLOR="Red"]'[/COLOR][/B]" & klasor & "[Excell2]Sayfa2'![B][COLOR="Red"]R[/COLOR][/B]" & i & "[B][COLOR="Red"]C2[/COLOR][/B]")

Bu kısıların çalışma mantığını rica etsem biraz açıklayabilir misiniz?
Bu konuda kendimi yeni yeni geliştirmeye çalışıyorum ve öğretici tek kaynağım forumda bir kullanıcının hazırladığı "userform ve kodlar" adlı döküman ki bu tip gelişmiş kodları anlayabilmem için yeterli olmuyor
 
Son düzenleme:
çok çok teşekkürler.

Daha sonra bir karar verip dosya yerleri değiştirilse.

Örneğin, Excell2 dosyası C:\Belgelerim\Klasör2\Excell2 yerinden

D:\Yedek\Excell2

ya da başka bir yere taşınmış olsa; ben bu değişimden dolayı kodun hata vermemesi için verdiğiniz kod da nereleri değiştirmem gerekir?

özellikle

Kod:
CreateObject("wscript.shell").SpecialFolders(16) & "\Klasör2\"
Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")

Bu kısıların çalışma mantığını rica etsem biraz açıklayabilir misiniz?
Bu konuda kendimi yeni yeni geliştirmeye çalışıyorum ve öğretici tek kaynağım forumda bir kullanıcının hazırladığı "userform ve kodlar" adlı döküman.

O zaman klasörün adını belirteceksiniz yine.:cool:
Kod:
klasor = [B][COLOR="Red"]"D:\Yedek\Excell2\"[/COLOR][/B]
 
Kod:
Sub UserForm_Initialize()
Dim i As Byte
klasor = "D:\Yedek\Excell2\"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
End Sub

bu şekilde değiştirip kullanıcı formunu açan butona basınca

Güncelleştirilecek Değerler:Excell2
adında bir menü açılıyor ve Excell2 nin D: klasöründeki yerini döngüdeki değerin sayısı kadar tek tek seçmem gerekiyor. Buda epey zaman alıyor ki 35 kere yolu göstermem gerekti. :) Her hangi bir menü açılmadan bilgileri combobox a okutamaz mıyız?

afedersiniz imzanızı yeni gördüm :)
 
Son düzenleme:
Kod:
Sub UserForm_Initialize()
Dim i As Byte
klasor = "D:\Yedek\Excell2\"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
End Sub

bu şekilde değiştirip kullanıcı formunu açan butona basınca

Güncelleştirilecek Değerler:Excell2
adında bir menü açılıyor ve Excell2 nin D: klasöründeki yerini döngüdeki değerin sayısı kadar tek tek seçmem gerekiyor. Buda epey zaman alıyor ki 34 kere yolu göstermem gerekti. :) Her hangi bir menü açılmadan bilgileri combobox a okutamaz mıyız?

Aşağıdaki yolunuzu kontrol ediniz.Ve tabii ki dosya adınınıda kontrol etmelisiniz.
"D:\Yedek\Excell2\"
Aşağıdaki koddada dosya uzantısı ile birlikte verdim onu kullanınız.
Kod:
ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2.xls]Sayfa2'!R" & i & "C2")
 
Selam Evren,Ben aşağıdaki gibi bir kod kullanmıştım. belki sizinkine uyarlanabilir.kodunuz benimde işime yaradı teşekkürler.Sub OpenExcelFile() Dim vFile As Variant vFile = Application.GetOpenFilename("Excel Files (*.xl*)," & _ "*.xl*", 1, "Select Excel File", "Open", False) If TypeName(vFile) = "Boolean" Then Exit Sub End If 'Seçili dosyayı açıyor 'Workbooks.Open vFile'dosya yolunu sayfa3 te a1 hücresine kaydediyor.Range("Sayfa3!a1").value=vFileEnd Sub
 
Pardon, copy paste yaparken saçmaladım

Sub OpenExcelFile()
Dim vFile As Variant
vFile = Application.GetOpenFilename("Excel Files (*.xl*)," & "*.xl*", 1, "Select Excel File", "Open", False)
If TypeName(vFile) = "Boolean" Then
Exit Sub
End If
'Seçili dosyayı açıyor
'Workbooks.Open vFile
'dosya yolunu sayfa3 te a1 hücresine kaydediyor.
Range("Sayfa3!a1").Value = vFile
End Sub
 
Kontrol ettim ama bir hata göremedim :(

webplayer.php
 

Ekli dosyalar

  • prtkl.jpg
    prtkl.jpg
    91 KB · Görüntüleme: 9
  • prtkl2.jpg
    prtkl2.jpg
    99.3 KB · Görüntüleme: 7
Kod:
Sub UserForm_Initialize()
Dim i As Byte
klasor = "[B]D:\Yedek\[/B]"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
End Sub

en son bu şekilde denedim ama durum aynı. Yine mi yanlış? :(
 
Kod:
Sub UserForm_Initialize()
Dim i As Byte
klasor = "[B]D:\Yedek\[/B]"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
End Sub

en son bu şekilde denedim ama durum aynı. Yine mi yanlış? :(
Aşağıdaki gibi deneyiniz.
Kod:
Dim i As Byte
klasor = "D:\Yedek\"
For i = 5 To 39
    ComboBox1.AddItem Application.ExecuteExcel4Macro("'" & klasor & "[Excell2.xls]Sayfa2'!R" & i & "C2")
Next
ComboBox1.ListIndex = 0
 
Merhaba.

Dün vaktim olmadığı için kodu deneyememiştim.
Son değişiklikten sonra aldığım hata.
 

Ekli dosyalar

  • prtkl.JPG
    prtkl.JPG
    79.1 KB · Görüntüleme: 10
Merhaba.

Dün vaktim olmadığı için kodu deneyememiştim.
Son değişiklikten sonra aldığım hata.
O kodları bir prosedürün içine koymanız lazımdı.
Kodlar ancak bir prosedürün içinde olurlarsa çalışırlar.
Bir prosedür sub ile başlar ve bir boşluk bırakılarak prosedüre bir isim verilir.
end sub ilede biter.
Bir prosedür oluşturun ve kodları onun içine koyun.
Not:Ayni ismden birden fazla prosedür olamaz.:cool:
Örnek :
Kod:
sub veri_al
'---Kodlar---

end sub
 
beceremiycem sanırım
teşekkür ederim iyi çalışmalar.
 
beceremiycem sanırım
teşekkür ederim iyi çalışmalar.
O kodları userformun Inıtialize olayının içine yazmanız gerekiyor.
Önce Initialize olayı içindeki kodları silin.Sonra verdiğim o kodları yapıştırın.:cool:
 
Kod:
Sub UserForm_Initialize()
Dim c As String
Dim i As Long, sat As Long
For i = 5 To 39
c = "'" & ""D:\Yedek\" " & "\[Excell2.xls]Sayfa2'!R" & i
ComboBox1.AddItem ExecuteExcel4Macro(c & "C2")
Next
End Sub


forumda bir kullanıcı bu işlemi yukarıdaki kodlarla çözmüş.Denedim oluyor.

Bu kodları excel de değilde, word de hazırlanmış bir userformda kullanmak için nasıl güncellemek gerekir? Denedim ama çalışmıyor.
 
Benimkide oluyor.Ben denedim çalıştı.Siz çalıştıramamışsınız.:cool:
Burada biz size kod veriyorsak önce biz deniyoeruz.Onun için çalışmayan kod yolamayız.:cool:
 
Geri
Üst