cok fazla nesneyi aktarmak

Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
degerli arkadaslar
ekledigim dosya ile fatura kesip müşterinin hesabına eklemek istiyorum.Eklenmiş 100 ün üzerinde nesne bulunmakta formdaki bilgiler sıralı bir şekilde data sayfasına aktarılması gerekiyor.Yardımlarınız için şimdiden teskkur eder anlatım bouklukları icin de ozur dilerim
saygılar
 
S

Skorpiyon

Misafir
Sayın uguristanbul,

Nesneleri yerleştirirken daha dikkatli olmalısınız. Birbirini takip eden verilerde, nesnelerin de birbirini takip etmesine dikkat ederseniz veriler aktarılır iken bir döngü ile 3 satırda aktarmanız mümkün. Aksi takdirde upuzun bir kod bloğu ile karşı karşıya kalırsınız. (Şu anda olacağı gibi)

İstediğinizi yapabilmek için bir müddet zamana ihtiyaç var. Sizin için düzenleme yapmaya çalışırım. Yalnız bahsettiğim gibi biraz vakit alacak.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Anlattığınız kadarıyla; "Data" adlı sheet'le "Userform" üzerindeki nesnelerini eşleştirmek mümkün değil ? Yani anlaşılmıyor ...

Ama yine de sanırım aşağıdaki gibi bir genel yapı işinizi görecektir. KEndinize uyarlayınız.

Kod:
Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim y As Integer
For Each ctrl In Me.Controls
    If y = 15 Then Exit For
[COLOR=green]    'Kaç tane veri aktarılacaksa ona göre bir sayı giriniz.
[/COLOR]    If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox" Then
       y = y + 1
[COLOR=green]       '........
       'Data sayfasına yazdırma işlemini gerçekleştiriniz
       '........[/COLOR]
    End If
Next
End Sub
 
S

Skorpiyon

Misafir
Sayın uguristanbul,

Kodun geri kalanını size bırakıyorum. Maalesef bu kadar nesneyi aktarmak bana bile zor geldi :)

Activecell.Offset ile aşağıdaki şekilde aktarma işlemini tamamlamaya çalışınız.

Private Sub CommandButton1_Click()
Sheets("DATA").Select 'Data sayfasını seç
Range("B5").Select 'B5 hücresini seç
Do While Not IsEmpty(ActiveCell) 'Eğer B5 boş değilse boş hücreyi bulana kadar alt satırı seç
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = TextBox1.Value 'İlk boş hücrenin değeri textbox1'in değeridir
ActiveCell.Offset(0, 1).Value = ComboBox1.Value 'İlk boş hücrenin 1 sağ tarafı combobox1'in değeridir gibi......
ActiveCell.Offset(0, 2).Value = ComboBox2.Value
ActiveCell.Offset(0, 3).Value = TextBox2.Value
ActiveCell.Offset(0, 4).Value = TextBox3.Value
ActiveCell.Offset(0, 5).Value = ComboBox3.Value
ActiveCell.Offset(0, 6).Value = ComboBox4.Value
ActiveCell.Offset(0, 7).Value = ComboBox5.Value
ActiveCell.Offset(0, 8).Value = ComboBox6.Value

'AYNI MANTIK İLE KODLARINIZI DEVAM ETTİRİNİZ...

MsgBox "İşlem Tamam"
End Sub
 
Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
sayın hocalarım
ilgineze gercekten kucak dolusu sevgi ve teskkurler
ferhat hocam verdiginiz kod calısmadı(olaki bende yalnıs vardır)
hepsini deneme imkanım olmadı ama baska fir formda denemiştim 35 taneden fazla almıyor bu sekilde alacakmı acaba?
 
Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
şaban hocam
ozurlerimle beraber tekrar sormak zorunda kaldım:
ornegin combo 8 in altındaki combo 9 da daat sayfasında aynı sutuna geliyor amcak kayıt etmiyor combo 33 ve 34 de aynı sutunlara alta alta yazması lazım ama yapmıyor bunu nasıl duzelte bilirim
 
Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
degerli hocalarım
şaban hocam cvp yazmana gerek yok hallettim
size ferhat hocama ve diger hoca ve arkadaslarıma gercekten kucak dolusu teskkurler ediyorum
ve iyiki varsınız diyorum
saygılarımla
 
S

Skorpiyon

Misafir
Sayın uguristanbul,

Yardımcı olabildi isek ne mutlu. Kolay gelsin.
 
Üst