Skip to main content

AccessTr.neT


Userformda Combobox Seçimine Göre Bir Sayfadaki Veriyi Diğer Sayfaya Kopyalama

Oğuz Türkyılmaz
Oğuz Türkyılmaz
30
1879

Userformda Combobox Seçimine Göre Bir Sayfadaki Veriyi Diğer Sayfaya Kopyalama

#13
(16/09/2021, 00:29)userx yazdı: Sayın Oğuz Türkyılmaz

Mesaj#4 deki dosyada
Ürün ve seçilen Ürünün kaydedileceği sayfayı seçme eklenerek dosya güncellendi.

Sn @userx Bioclimatic Teklif formunda işlem gerçekleşiyorsa işlem sonucunda parametre sayfasından alınan değer sadece kendi adındaki Bioclimatic sayfasına kodda hedef olarak yazacağımız sabit adresdeki hücreye değeri getirecek. 2. bir combobox ile sayfa seçtirmemize gerek yok.  Yüklediğim resme göre anlatayım. Bioclimatik teklif formunda combobox dan somfy seçildiğinde bioclimatik sayfasında  L23 hücresine Parametre sayfasında Somfy sütunu C2 adresinde yazılı olan 2750 değerini L23 deki 335 değerinin üstüne yazacak.

Somfy nin C2 deki 2750 adresi bioclimatic için hiç değişmeyecek hücre adresi mesela  Pergole sayfasındaki combodan çağrıldığında da C3 değeri olan 1700, Bir başka sayfada combodan aldığımda ise C4 değerini yazdırmam gerekiyor.)

Ben Combobox elemanlarını kodda add.item ile eklemiştim siz döngü ile eklemişsiniz. Döngüde Parametre sayfasındaki A1 in tamamı comboya aktarılıyor. Bunu sanırım range e başlangıç ve bitiş değerlerini göstererek combonun tüm A1 satırını almasını engellerim.

[Resim: do.php?img=11259]
[Resim: do.php?img=11260]
[Resim: do.php?img=11261]

(15/09/2021, 23:33)berduş yazdı: isterseniz find komutuyla aratıp ilgili değeri bulduğunuzda ofset() ile bir alt hücreyi alabilirsiniz
ama ben açıkçası soruma cevap alamadım yada anlattıklarınızı kafamda oturtamadım
usefor yüklendiğinde siz comboya değerleri nereden alıyorsunuz? bu veriler Excel sayfalarında yer almıyor mu?
benim kastettiğim bu; comboya atanan bu veriler excelde
1. satır ürün,
2. satır fiyat 
gibi belli bir yapıda, belli bir yerde değiller mi
eklediğiniz dosyaya bakıyorum parametre sayfasının yapısı bu şablona uyuyor
ama diğer sayfalarda bir veri yok
seçtiğim
3. ürün 3. sayfaya
2. ürün 2. sayfaya
1. ürün 1. sayfaya mı aktarılacak

@berduş Hocam  Combo elemanlarını userformun sayfa yüklendiğinde olayına add.item ile eklemiştim. Resimlerle yapılmak isteneni anlatmaya çalıştım.
Kod:
ComboBox_MotorCinsi.AddItem "Cuppon"
ComboBox_MotorCinsi.AddItem "Mosel"
ComboBox_MotorCinsi.AddItem "Somfy"

Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 16/09/2021, 09:43, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#14
Sayın Oğuz Türkyılmaz
İsteğinizle ilgili bölümlerin bir örneği yükleyip isteklerinizi örnek üzerinden anlatsanız sanırım daha kolay çözüm bulunacaktır.
"Dünyayı fazla düşünme."
Cevapla
#15
Ben çözüm buldum şimdi @userx hocam sizin koddan ilerledim. Birazdan paylaşacağım.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#16
@userx ve @berduş hocalarım
Userform üzerindeki Combobox'dan seçtiğim indeksin parametre sayfasındaki değerini başka bir sayfada kodda belirtilen hücreye aktarabildim. Bu şekliyle kullanabilirim fakat her sayfa da kullanacağım farklı comboboxlara değerleri getirebilmek için range başlangıç ve bitiş değerlerini her bir userform için ayrı ayrı girmem gerekecek. Örneğimi düzenledikten sonra yeni konu açıp kafamdaki modele göre bu çalışan kodu revize etmelimiyim yoksa bu şekilde de kullanabilirmiyim sizlere danışacağım. Bu konuyu kapatabilirsiniz.Çok teşekkürler.

Kod:
Private Sub UserForm_Initialize()
son = ThisWorkbook.Sheets("PARAMETRE").UsedRange.Columns.Count
'----------
For i = 1 To son
ComboBox1.AddItem ThisWorkbook.Sheets("PARAMETRE").Cells(1, i)

With ComboBox1
    .ColumnWidths = "60 pt"
    .ListIndex = 0
End With
Next i

End Sub
Private Sub CommandButton1_Click()
Dim j As Integer, y
y = ComboBox1.ListIndex
j = Application.WorksheetFunction.Match(ComboBox1.Column(0), ThisWorkbook.Sheets("PARAMETRE").Range("A1:Z1"), 0)

[Bioclimatic!E17] = ThisWorkbook.Sheets("PARAMETRE").Cells(2, j)

End Sub

.rar COMBOBAX_userx.rar (Dosya Boyutu: 23,42 KB | İndirme Sayısı: 3)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#17
ComboBox1.AddItem ThisWorkbook.Sheets("PARAMETRE").Cells(1, i) neden bu kodu kullandığınızı anlamadım açıkçası
son = ThisWorkbook.Sheets("PARAMETRE").UsedRange.Columns.Count burada zaten son sütun bulunmuş oluyor
ve zaten anladığım kadarıyla ürün adı 1. satırda değeri ise alt satırda
o zaman neden önerdiğim ilk kodu kullanmıyorsunuz bu durumda tekrar aramaya gerek kalmaz
son = ThisWorkbook.Sheets("PARAMETRE").UsedRange.Columns.Count
ComboBox1.List = Application.WorksheetFunction.Transpose(Sayfa1.Range(cells(1,1),cells(2,son)))
denenebilirdi
kodları aşağıdaki gibi düzenleyip dener misiniz
not: combo 2 sütunlu olmalı
Private Sub UserForm_Initialize()
Set Syf = ThisWorkbook.Sheets("PARAMETRE")
son = Syf.UsedRange.Columns.Count
ComboBox1.List = Application.WorksheetFunction.Transpose(Syf.Range(Syf.Cells(1, 1), Syf.Cells(2, son)))
End Sub
Private Sub CommandButton1_Click()
Dim y
[Bioclimatic!E17] = ComboBox1.Column(1)
End Sub
Cevapla
#18
Not: son satır yada sütunu bulmak için usedrange kodunu kullanmanızı çok önermem, boş olsa bile biçim formatı varsa alıyor onun yerine ilgili satıra göre aşağıdaki kod kullanılabilir
sht.Cells(1, sht.Columns.Count).End(xlToLeft).Column
ama aklımda kaldığı kadarıyla sizin parametre sayfanız daha karışık
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task