Excel'de Grid Kullanımı !!!

Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
Sevgili arkadaşlar,
Forumda bulunan tüm topicler içinde araştırdım ama bulamadım, bir form üzerinde grid kullanmam gerekmekte bunu excel vba'da nasıl başarabilirim.
Amaç = bir sipariş formu hazırlıyorum kaç satırdan oluşabileceğini önceden bilmek mümkün olmuyor, 1 satırda olabilir 20 satırda combolarla çözüm bulunuyordu ama bu satırların artması sonucu sıkıntı oluştu. Vb'deki gibi msflexgrid, datagrid tarzı birşey kullanabilirmiyim, bunu bilen arkadaşlar bana yardımcı olabilirmi. Teşekkürler
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Tam anlamadım ama soruyu, listbox kullanmak bu iş için daha iyi değilmi.?
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
danersin' Alıntı:
Tam anlamadım ama soruyu, listbox kullanmak bu iş için daha iyi değilmi.?
Bunu bende denedim sanırım başaramadığım için farklı bir method aradım.. bu nedenle çalışmanın boyutu çok büyüktü sadece o kısmı düzenledim ve ekledim. İncelerseniz sevinirim. Sadece bu kısım kaldı ve bunuda yapabilirsem işlemi tamamlamış olacağım.
İlgilenen herkese teşekkürler...
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Tüm istediklerinizi tam olarak yapmak için en az 3-4 saat uğraşmak lazım.
Ben sadece size lazım olacak kodları yazdım bu kadar sürede, ihtiyacınıza göre düzeltmek gerek.


Bu kod çift tıklama ile sipara dan siparisformuna taşıma yapıyor
başka hangi sütunlar taşınacaksa tekrarlayan satırları aynen kopyalayıp sütun sayılarını değiştirin. çift tıklamadaki aynı kodları düğmeyede yazabilirsiniz ama gerek yok bence.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
KodAraCombo.ListIndex = ListBox1.ListIndex
'SiparisForm.ComboBox1 = SipAra.KodAraCombo.Value
SiparisForm.ListBox1.AddItem
Kac = SiparisForm.ListBox1.ListCount - 1
Hangi = SipAra.ListBox1.ListIndex
SiparisForm.ListBox1.List(Kac, 0) = SipAra.ListBox1.List(Hangi, 0)
SiparisForm.ListBox1.List(Kac, 1) = SipAra.ListBox1.List(Hangi, 1)
SiparisForm.ListBox1.List(Kac, 2) = SipAra.ListBox1.List(Hangi, 2)
SiparisForm.ListBox1.List(Kac, 3) = SipAra.ListBox1.List(Hangi, 3)
Unload Me
End Sub

sipariş formu üstünede bir düğme koydum, sipariş sayfasına yazdırmak için... yani siparisformda oluşan şeyleri sipariş sayfasına yazıyor, buradada tekrarlayan sütunları ve sipariş sayfasında "temizle" diye isim verdiğim alanı kendinize göre belirleyin.

Private Sub CommandButton2_Click()
Sheets("Siparis").Range("temizle").Clear
For x = 1 To ListBox1.ListCount
Sheets("Siparis").Cells(x, 1) = SiparisForm.ListBox1.List(x - 1, 0)
Sheets("Siparis").Cells(x, 2) = SiparisForm.ListBox1.List(x - 1, 1)
Sheets("Siparis").Cells(x, 3) = SiparisForm.ListBox1.List(x - 1, 2)
Next x
Unload Me
Sheets("Siparis").Activate
End Sub

sipariş sayfanızdaki bir düğmeyede aşağıdaki kodu yazdığınızda o sayfayı yeni bir workbooka kopya alır.. (ama isim kontrolu vs. uğraşamadım şu anda, bunu yapmak şart ise dersane bölümünde worksheets dersinin altında verdiğim örnek kodlara bakmanızda fayda olur)
Sub Düğme1_Tıklat()
ActiveSheet.Copy
End Sub
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
"Tüm istediklerinizi tam olarak yapmak için en az 3-4 saat uğraşmak lazım.Ben sadece size lazım olacak kodları yazdım bu kadar sürede, ihtiyacınıza göre düzeltmek gerek."

Dediğin gibi sanırım bayağı zaman alıyor, ama yaptıkların sanırım birçok işi yürütecek.
İlgin için teşekkür edim süper bir örnekleme oluşturmuşsun eline sağlık, bunları şimdi kendi formum içerisine uyguluyorum. Tekrar görüşmek üzere...
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
Listbox kullanımı tabii ki güzel ama sipariş adedi gibi çok önemli bir konu unutulunca son dakika golü yemiş oluyorum. listbox'a arattığımız verileri getirttik peki listbox içerisine her gelen veri için sipariş miktarı nasıl girilecek? Sanırım ciddi bir gol oldu !
Belkide bu yüzden grid tarzı birşey gerekecekti sanırım....!!!!!
Bu konuda yorumu olabilen varmı.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sanırım ciddi bir gol oldu !
Ben gol olduğunu hiç sanmıyorum,bir çok çözüm üretilebilir. Ã?rneğin bir textboxa sipariş miktarını yazarsınız ve listboxta çift tıkladığınız bir veriye bu textboxtaki değeri bağlayabilirsiniz.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Yada aşağıdaki şekilde bir çözüme ne dersiniz. en basit ve en kullanışlı çözüm bazen en basit yol. çifttıklamadan sonra gelecek bir mesajbox.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
KodAraCombo.ListIndex = ListBox1.ListIndex
'SiparisForm.ComboBox1 = SipAra.KodAraCombo.Value
SiparisForm.ListBox1.AddItem
Miktar = InputBox("Miktar", "Miktar", 0)
Kac = SiparisForm.ListBox1.ListCount - 1
Hangi = SipAra.ListBox1.ListIndex
SiparisForm.ListBox1.List(Kac, 0) = SipAra.ListBox1.List(Hangi, 0)
SiparisForm.ListBox1.List(Kac, 1) = SipAra.ListBox1.List(Hangi, 1)
SiparisForm.ListBox1.List(Kac, 2) = SipAra.ListBox1.List(Hangi, 2)
SiparisForm.ListBox1.List(Kac, 3) = SipAra.ListBox1.List(Hangi, 3)
SiparisForm.ListBox1.List(Kac, 4) = Miktar
Unload Me
End Sub
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
Ve top kale çizgisi üzerinde Danersin'in ellerinde !!! :dua:
:bravo: :bravo: :bravo: :bravo: :bravo:

Abi ne diyeyim siz süpersiniz... Sayın danersin ve leventm ilginize teşekkür ederim...

columcount 6 adetten oluşunca standart uzunluklar nedeniyle sığmama durumu oluştu, sanırım listbox için bu duruma uzunluk verebiliyorduk her kolon için forumda sanırım bununla ilgili örnekleme görmüştüm bunuda yaptıkmı "Kim Korkar VBA'dan" :?
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
Sayın leventm'nin verdiği bir örneği buldum

.ColumnWidths = "30;60;200;"

Olay budur denilecek cinsten !!!
Sanırım golü biz attık , ilk yarı 2-0 öne geçtik !!
Hadi hayırlısı kaldı 45 dakika daha
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Olay budur denilecek cinsten !!!
Sanırım golü biz attık , ilk yarı 2-0 öne geçtik !!
Hadi hayırlısı kaldı 45 dakika daha
İkinci yarıda oyuncu değiştirmeyi düşünüyorsanız, msflexgrid'i user form üzerinde kullanabilirsiniz.
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
ALPEN' Alıntı:
İkinci yarıda oyuncu değiştirmeyi düşünüyorsanız, msflexgrid'i user form üzerinde kullanabilirsiniz.
Sevgili Alpen
Yeni transfer mutlaka ki gerek amaç avrupada başarı , oyuncu değiştirmeden transfer yapalım :D
:( msflexgrid kullanabiliyormuyuz ciddi ciddi :(

sayın danersin'in verdiği emek sayesinde formun neredeyse sonuna ulaşıyorum, ama kaç kişiye sordumsa msflexgrid ile ilgili cevap bulamadım, bunu bana (ve doğal olarak forumdaki tüm ziyaretçilere) öğretirseniz memnun kalırım.
Yardım edebilirsen bu konuda sevinirim...
Þimdiden çok teşekkür ederim.

Transfer kararını çabuk vermelisin federasyona bildireceğiz :D
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
ALPEN' Alıntı:
Yukarıda ara butonu var. Onu tıklayın.
Çıkan sayfada msflexgrid yazın.
Sayın Alpen orada yazanların özeti şu Msflexgrid'i Vba içerisinde doğal olarak excelde kullanamazsın diyor... benmi yanlış anladım!!!
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Bu "doğal olarak" kullanmaktan anladığınıza bağlı.

Eğer makinede msflexgrid ocx varsa bunu uygulamanıza dahil edip kullanabilirsiniz.

Daha sonra uygulamanızı başka bir makinede çalıştırmak istediğinizde bu kontrolüde o makineye götürmeniz ve kurmanız gerekir.
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
Son 45 Dakika

Galiba artık sonlarını görmeye başladım projenin...
İlk sorumda belirttiğim ikinci adıma geçtik ama şöyle birşey gerekmekte...
Formu kaydet butonuna basıldığında verileri siparis sayfasına alıyoruz, ve bu verileri bize yeni bir excel kitabı açıp yeni sayfaya kaydetmesini istiyoruz. Yeni çalışma kitabı oluşturmalı adını combobox'tan almalı ve buradaki sayfa1'e verileri taşımalı sayfa1'in adınıda textboxtan almalı, sanırım en zor olan kısmı bu işlem ikinci kez tekrarlandığında yeni bir form kayıt edildiğinde ise böyle bir kitap varmı kontrol etmeli varsa yeni açmak yerine varolanı açıp yeni sayfa açmalı...
Bu konuda bana bilgi verebilirmisiniz!!!
 
Katılım
28 Mart 2005
Mesajlar
48
Excel Vers. ve Dili
Excel 2003
leventm' Alıntı:
Aşağıdaki linkte benzer bir uygulama var öncelikle bu uygulamayı inceleyin.
Sayın leventm ilginiz için teşekkür ederim... bu link çalışma sayfayı oluşturma ve adlandırma konusunda gerekli bilgiyi sağladı sağolun, bana bir tek şu kısım gerekiyor artık sanırım, yeni çalışma kitabı açıp ismini değiştirmek.!! bu konuda bilgi verebilirsen sevinirim
 
Üst