• DİKKAT

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

Combobox' larla bir hücreden diğer hücreye aktarmak.

Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Merhaba arkadaşlar;
50 adet Combobox' ile 3 adet sütundan seçtiğim verileri başka sütunlara taşımak istiyorum. Bu işlemi
Range("B4").value = Combobox1.Value
Range("B5").value = Combobox2.Value
Range("B6").value = Combobox3.Value
Range("B7").value = Combobox4.Value
" " "
" " "
gibi kodlarla yapıyorum, ancak kod satırları çoğaldığından çalışırken işlemler yavaşlıyo. Daha kulanışlı birkodla bu işlemleri yapmam mümkünmü ?
örnek dosyam ekte.
 

Ekli dosyalar

Dosyanızın yapısını bozmayacaksa B4:B13 aralığındaki hücrelere veri doğrulamadan açılır listeler atamanız ve c ve d sütunlarına da düşeyara ile değerleri atamanız daha pratik olabilir.Ana dosyanızın yapısı buysa tabi..
 
Dosyanızın yapısını bozmayacaksa B4:B13 aralığındaki hücrelere veri doğrulamadan açılır listeler atamanız ve c ve d sütunlarına da düşeyara ile değerleri atamanız daha pratik olabilir.Ana dosyanızın yapısı buysa tabi..
Sn.Peleryn;
Asıl dosayda sayfaya ele hiçbir veri girişi yapılmıyor. Bütün girişler 2 adet UserForm üzerinden yapılıyor. Sayfa üzerinde açılır liste kulanabilmek için dosyadaki foksion, kod ve dosya yapısının yarısından fazlasını değiştirmem lazım. Yinede ilginiz için teşekkür ederim.
 
Nasıl anlayacağız nerde ne oldyuğunu?
1 tane userform1 var ve 10 tanede combobox var .
Kaydet butonundda ise hiç bir kod yok.
Nasıl anlayacağız.50 combobox veya 100 comboboxın aktarılması normalde yavailatmaz.Ama sayfanızda formüller falan varsa ve atadığınız hücrelerle ilişkili ise yavaşlatır.Eğer o formüller birde geniş bir alana referans verilmişse çokda yavaşlatır.Tabii bununda önlemi var.Ama siizn dosyanızdan sorunuzu çözebilmek için hiçbir done yok.:cool:
 
Nasıl anlayacağız nerde ne oldyuğunu?
1 tane userform1 var ve 10 tanede combobox var .
Kaydet butonundda ise hiç bir kod yok.
Nasıl anlayacağız.50 combobox veya 100 comboboxın aktarılması normalde yavailatmaz.Ama sayfanızda formüller falan varsa ve atadığınız hücrelerle ilişkili ise yavaşlatır.Eğer o formüller birde geniş bir alana referans verilmişse çokda yavaşlatır.Tabii bununda önlemi var.Ama siizn dosyanızdan sorunuzu çözebilmek için hiçbir done yok.:cool:
Sn.Evren Gizlen;
Ana dosyada yapmak istediklerimin yalnızca sorun yaşdığım küçük bir örneğini göndermiştim. O örnekteki iyleştirmeleri ana dosyama kendim uyarlayacaktım.
Ama sorunun dediğiniz gibi aşağıda birkısmı görülen kod ile Combobox' lardan veri tadığım hücrelere bağlantılı
Kod:
Sayfa1.Range("A8").Value = ComboBox17.Value
Sayfa1.Range("A9").Value = ComboBox18.Value
Sayfa1.Range("A10").Value = ComboBox19.Value
aşağıdaki kod ile
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sat As Integer
On Error Resume Next
If Intersect(Target, [a8:a30,f8:f30,ı8:ı30]) Is Nothing Then Exit Sub
For sat = 8 To 30
Cells(sat, "b") = WorksheetFunction.VLookup(Cells(sat, "a"), Range("P8:Q30"), 2, 0)
Cells(sat, "g") = WorksheetFunction.VLookup(Cells(sat, "f"), Range("P8:Q30"), 2, 0)
Cells(sat, "j") = WorksheetFunction.VLookup(Cells(sat, "ı"), Range("P8:Q30"), 2, 0)
Next
End Sub
diğer formüller yavaşlatıyor. bunu biraz iyileştire bilirmiyiz?
Ana dosya aşağıda.
 

Ekli dosyalar

Sizin kodlarınzda başka makrolarda çalıştırılıyor.
Onlardada bir kaç döngü yapmışsınız.Orada döngünün boyutu nedir bilemiyecem.
eğer uzun bir döngüyse haliyle yavaşlatacaktır.
formüllerin hesaplamasını geçici olarak iptal etmek için üsttteki kodu butondaki kodların en üstüne koyun.
Altındaki koduda en alta.
Döngüler için koyduğunuz son satırları kontrol ediniz.
Kod:
Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic
 
Sizin kodlarınzda başka makrolarda çalıştırılıyor.
Onlardada bir kaç döngü yapmışsınız.Orada döngünün boyutu nedir bilemiyecem.
eğer uzun bir döngüyse haliyle yavaşlatacaktır.
formüllerin hesaplamasını geçici olarak iptal etmek için üsttteki kodu butondaki kodların en üstüne koyun.
Altındaki koduda en alta.
Döngüler için koyduğunuz son satırları kontrol ediniz.
Kod:
Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic

Sn.Evren Gizlen;
Yazdıklarınızı dikkate alıp dosyda yapabileceğim düzenlemelere bakacağım. Gece vardiyasında çalıştığım için şu anda istirahat edeceğimden, acak akşam dosya üzerinde çalışabilirim. İlginize teşekkürler.
 
Sn.Evren Gizlen;
Yazdıklarınızı dikkate alıp dosyda yapabileceğim düzenlemelere bakacağım. Gece vardiyasında çalıştığım için şu anda istirahat edeceğimden, acak akşam dosya üzerinde çalışabilirim. İlginize teşekkürler.
Rica ederim.
İyi istirahatlar.:cool:
 
Geri
Üst