Excel userformda boş olan hücreye bulma ve oraya ekleme yapma

vural-305-10

office 2010
Altın Üye
Katılım
17 Nisan 2012
Mesajlar
12
Excel Vers. ve Dili
2010 office
Altın Üyelik Bitiş Tarihi
03-10-2024
Private Sub CommandButton4_Click()

Dim maliyetoplamx As Double

Sheets("maliyetgecici").Select 'EXCEL SAYFASINDA maliyetgecici SAYFASINI SEÇEN KOD

'Range("C2").End(xlDown).Offset(1, 0).Select



Range("C2").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

yenisatir = yenisatir + 1 'ALT SATIRA EKLEME

Sheets("maliyetgecici").Range("C" & yenisatir).Value = TextBox2.Value
Sheets("maliyetgecici").Range("D" & yenisatir).Value = TextBox3.Value
Sheets("maliyetgecici").Range("E" & yenisatir).Value = TextBox4.Value

maliyetoplamx = Application.WorksheetFunction.Sum(Sheets("maliyetgecici").Range("I2:I5000").Value)


TextBox1.Value = maliyetoplamx
listeyiyenile

---------------------------------------------------------

End Sub
Sub listeyiyenile()
ListBox1.ColumnCount = 7
ListBox1.ColumnHeads = True
ListBox1.RowSource = "maliyetgecici!A2:I" & yenisatir
ListBox1.ColumnWidths = "220,70,100,70,100,100,100,100,100"

End Sub



Yukarıda bulunan kod kısmında dolu olan hücrenin hemen altına inip textboxlara yazılar yazıp ekle butonuna basıp boş olan hücreye yazdırmak istiyorum
Böyle yaptığım zaman dolu olan hücrenin üzerine yazma yapıyor
c2 den başlayıp c10 kadar olan hücre dolu diyelim
c11 boş hücre c11 olan hücreye textboxlara yazdığım veriyi c11 kaydetsin istiyorum . Bir türlü geçemiyorum . yardımcı olursanız sevinirim
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Aşağıdaki şekilde dener misiniz?
C++:
Private Sub CommandButton4_Click()
Dim maliyetoplamx As Double

    Sheets("maliyetgecici").Select
    ss = Sheets("maliyetgecici").Cells(Rows.Count, "C").End(3).Row + 1
    
    Sheets("maliyetgecici").Range("C" & ss).Value = TextBox2.Value
    Sheets("maliyetgecici").Range("D" & ss).Value = TextBox3.Value
    Sheets("maliyetgecici").Range("E" & ss).Value = TextBox4.Value
    
    maliyetoplamx = Application.WorksheetFunction.Sum(Sheets("maliyetgecici").Range("I2:I5000").Value)
    
    TextBox1.Value = maliyetoplamx
    listeyiyenile
End Sub
 

vural-305-10

office 2010
Altın Üye
Katılım
17 Nisan 2012
Mesajlar
12
Excel Vers. ve Dili
2010 office
Altın Üyelik Bitiş Tarihi
03-10-2024
Teşekkür ederim dede destek ekibine uygulayınca oldu ama listeyi yenile kısmında malesef ekleme yaptğında excel sayfasına ekleme yapıyor ama listbox eklediğim yenilemiyor


C++:
Private Sub CommandButton4_Click()

Dim maliyetoplamx As Double
 

    Sheets("maliyetgecici").Select
    ss = Sheets("maliyetgecici").Cells(Rows.Count, "C").End(3).Row + 1
    
    Sheets("maliyetgecici").Range("C" & ss).Value = TextBox2.Value
    Sheets("maliyetgecici").Range("D" & ss).Value = TextBox3.Value
    Sheets("maliyetgecici").Range("E" & ss).Value = TextBox4.Value
    
    maliyetoplamx = Application.WorksheetFunction.Sum(Sheets("maliyetgecici").Range("I2:I5000").Value)
    
    TextBox1.Value = maliyetoplamx
    listeyiyenile




End Sub
Sub listeyiyenile()
ListBox1.ColumnCount = 7
ListBox1.ColumnHeads = True
ListBox1.RowSource = "maliyetgecici!A2:I" & yenisatir
ListBox1.ColumnWidths = "220,70,100,70,100,100,100,100,100"

End Sub







Private Sub UserForm_Activate()
Dim sonsat As Integer

                               

sonsat = Sheets("maliyetgecici").Range("A1048576").End(xlUp).Row

If sonsat = 1 Then Exit Sub

                                    

ListBox1.ColumnCount = 11
ListBox1.ColumnHeads = True
ListBox1.RowSource = "maliyetgecici!A2:I" & sonsat
ListBox1.ColumnWidths = "300,80"




End Sub

bir türlü mantığını kavrayamadım activate ksımındaki listbox1 siliyorum olmuyor
listeyiyenile kısmındakini siliyorum göstermiyor
çözemedim gitti
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
"listeyiyenile" isimli prosedürdeki "yenisatir" isimli değişken hangi değeri/nereden alıyor?
Global olarak tanımlanmadıysa yenisatır isimli değişkenin değeri gerçekten ilgili satırı gösterebilir mi?
"listeyiyenile" isimli prosedüre gerek var mı? Bu kodlar Private Sub CommandButton4_Click() prosedürünün sonuna eklenemez mi?
Ve en önemlisi; Sorunuzu örnek dosya ile desteklemeyi düşünüyor musunuz?
 

vural-305-10

office 2010
Altın Üye
Katılım
17 Nisan 2012
Mesajlar
12
Excel Vers. ve Dili
2010 office
Altın Üyelik Bitiş Tarihi
03-10-2024
Merhaba,
"listeyiyenile" isimli prosedürdeki "yenisatir" isimli değişken hangi değeri/nereden alıyor?
Global olarak tanımlanmadıysa yenisatır isimli değişkenin değeri gerçekten ilgili satırı gösterebilir mi?
"listeyiyenile" isimli prosedüre gerek var mı? Bu kodlar Private Sub CommandButton4_Click() prosedürünün sonuna eklenemez mi?
Ve en önemlisi; Sorunuzu örnek dosya ile desteklemeyi düşünüyor musunuz?
hocam öncelikle çok teşekkür ederim
tek tek sormak ve sizi rahatsız etmek istemezdim . bazı şeyleri kendim çözmek istedim

yönetici şifresi
admin
şifre : 12345

kullanıcı adı :metin
şifre : metin

YAPMAK İSTEDİKLERİM.
1. maliyet kısmında listeyi yenileme
2. Maliyet ekranında sil eklediğimizi çıkartma listboxtan ( sil butonu )
3. Öncelikle satış yap kısmındaki listboxtan sildiğimiz zaman maliyet kısmından da silsin
4. satış yap kısmındaki tarih ve ad soyadı maliyet ekranındaki listboxa aktarma işlemi ( bir türlü çözemedim )
5. satış yap kısmı ve maliyet ekranındaki tarihler GÜN / AY / YIL olarak gözükmemektedir.
6. Satış yap / stok / maliyet excel çalışma sayfasındaki iskonto tutarı genel toplam gibi alanlarda formuller var bunları sayfa sonuna kadar otomatik yenileme yapsın . ürün silsek bile formül olanları otomatik yenilesin.



EN ÖNEMLİSİ
şuanda araştırıyorum ama daha bir şey denk gelmedi ben bu projemi bir bilgisayarda yükleyip ağ üzerinden aynı anda çalıştırabilirmiyim. Hata almak istemiyorum. iki bilgisayardan aynı anda işlem gerçekleştirdiğim zaman yapılan işlemleri aynı anda açabilsin kaydetme yapabilsin. Bu konuda esas yardımınıza ihtiyacım var.
 
Son düzenleme:

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,

Galiba tüm projeyi bize yaptırmak istiyorsunuz. :)
Sırayla bakalım;

1. Maliyet kısmında listeyi yenileme
* Kodunuzun tamamını görmeden önerdiğim koddaki ss değişkenini yenisatir olarak değiştiriniz.

2. Maliyet ekranında sil eklediğimizi çıkartma listboxtan ( sil butonu )
* Maliyet ekranında sil butonu yok. Buton konulup, uygun kod yazılabilir ama silme işlemi ListBox’tan değil sayfadan yapılır ve ListBox’a yansıtılır.

3. Öncelikle satış yap kısmındaki listboxtan sildiğimiz zaman maliyet kısmından da silsin
*Yanıt 2. Soru ile aynı

4. Satış yap kısmındaki tarih ve ad soyadı maliyet ekranındaki listboxa aktarma işlemi ( bir türlü çözemedim )
*Maliyet ekranındaki ListBox’un kaynağını maliyetgecici sayfası olarak göstermişsiniz. (ListBox1.RowSource = "maliyetgecici!A2:I" & sonsat) Bunu (ListBox1.RowSource = "satisyap!A2:I" & sonsat) olarak değiştirmelisiniz.

5. Satış yap kısmı ve maliyet ekranındaki tarihler GÜN / AY / YIL olarak gözükmemektedir.
* Mevcut kodunuzdaki “txttarih1.Value = Date” satırrını “txttarih1.Value = Format(Date, "dd.mm.yyyy") satırı ile değiştirin.

6. Satış yap / stok / maliyet Excel çalışma sayfasındaki iskonto tutarı genel toplam gibi alanlarda formüller var bunları sayfa sonuna kadar otomatik yenileme yapsın. Ürün silsek bile formül olanları otomatik yenilesin.
* Bu alanlardaki hesaplamalar formül yerine (satır eklerken) kodlarla yapılabilir. Böylece hem dosya boyutu büyümez, hem de her kayıttan sonra yeniden hesaplanarak işlem süresini uzamasına neden olan formüllerden kurtulmuş oluruz. Örneğin; satisyap sayfasının J3 hücresindeki formül yerine Cells(Satır, 10)= Cells(Satır, 8)* Cells(Satır, 11)/100 şeklinde kod yazılabilir. Elbette buradaki Satır ifadesi bir değişken olacaktır. Böylece satisyap sayfasındaki üç hücre için üç satırlık kod yazmış olacağız ve satırlar dolusu formülden kurtulacağız.

Hoşça kalın.
 

vural-305-10

office 2010
Altın Üye
Katılım
17 Nisan 2012
Mesajlar
12
Excel Vers. ve Dili
2010 office
Altın Üyelik Bitiş Tarihi
03-10-2024
Merhaba,

Galiba tüm projeyi bize yaptırmak istiyorsunuz. :)
Sırayla bakalım;

1. Maliyet kısmında listeyi yenileme
* Kodunuzun tamamını görmeden önerdiğim koddaki ss değişkenini yenisatir olarak değiştiriniz.

2. Maliyet ekranında sil eklediğimizi çıkartma listboxtan ( sil butonu )
* Maliyet ekranında sil butonu yok. Buton konulup, uygun kod yazılabilir ama silme işlemi ListBox’tan değil sayfadan yapılır ve ListBox’a yansıtılır.

3. Öncelikle satış yap kısmındaki listboxtan sildiğimiz zaman maliyet kısmından da silsin
*Yanıt 2. Soru ile aynı

4. Satış yap kısmındaki tarih ve ad soyadı maliyet ekranındaki listboxa aktarma işlemi ( bir türlü çözemedim )
*Maliyet ekranındaki ListBox’un kaynağını maliyetgecici sayfası olarak göstermişsiniz. (ListBox1.RowSource = "maliyetgecici!A2:I" & sonsat) Bunu (ListBox1.RowSource = "satisyap!A2:I" & sonsat) olarak değiştirmelisiniz.

5. Satış yap kısmı ve maliyet ekranındaki tarihler GÜN / AY / YIL olarak gözükmemektedir.
* Mevcut kodunuzdaki “txttarih1.Value = Date” satırrını “txttarih1.Value = Format(Date, "dd.mm.yyyy") satırı ile değiştirin.

6. Satış yap / stok / maliyet Excel çalışma sayfasındaki iskonto tutarı genel toplam gibi alanlarda formüller var bunları sayfa sonuna kadar otomatik yenileme yapsın. Ürün silsek bile formül olanları otomatik yenilesin.
* Bu alanlardaki hesaplamalar formül yerine (satır eklerken) kodlarla yapılabilir. Böylece hem dosya boyutu büyümez, hem de her kayıttan sonra yeniden hesaplanarak işlem süresini uzamasına neden olan formüllerden kurtulmuş oluruz. Örneğin; satisyap sayfasının J3 hücresindeki formül yerine Cells(Satır, 10)= Cells(Satır, 8)* Cells(Satır, 11)/100 şeklinde kod yazılabilir. Elbette buradaki Satır ifadesi bir değişken olacaktır. Böylece satisyap sayfasındaki üç hücre için üç satırlık kod yazmış olacağız ve satırlar dolusu formülden kurtulacağız.

Hoşça kalın.
proje giriş bilgileri

yönetici şifresi
admin
şifre : 12345

kullanıcı adı :metin
şifre : metin







*1 maddeyi düzelttim oldu.

* 2 ve 3 maddeleri düzelttim oldu.

*4 maddeyi düzelttim oldu.

*5 maddede Mevcut kodunuzdaki “txttarih1.Value = Date” satırrını “txttarih1.Value = Format(Date, "dd.mm.yyyy") satırı ile değiştirdim ancak satış yap kısmındaki hata kodu gösteriyor ve satış yap kısmı açılmıyor

*6 maddede Örneğin; satisyap sayfasının J3 hücresindeki formül yerine Cells(Satır, 10)= Cells(Satır, 8)* Cells(Satır, 11)/100 şeklinde kod yazılabilir. Elbette buradaki Satır ifadesi bir değişken olacaktır. Böylece satisyap sayfasındaki üç hücre için üç satırlık kod yazmış olacağız ve satırlar dolusu formülden kurtulacağız.

J3 - K3-L3 kısmındaki satış yap nasıl yapacağımı tam olarak kod ile anlayamadım.
Sheets("satisyap").Range("J3").Value = Cells(Satır, 10)= Cells(Satır, 11)* Cells(Satır, 8)/100



*EN ÖNEMLİSİ
şuanda araştırıyorum ama daha bir şey denk gelmedi ben bu projemi bir bilgisayarda yükleyip ağ üzerinden aynı anda çalıştırabilirmiyim. Hata almak istemiyorum. iki bilgisayardan aynı anda işlem gerçekleştirdiğim zaman yapılan işlemleri aynı anda açabilsin kaydetme yapabilsin. Bu konuda esas yardımınıza ihtiyacım var. Bunun çözümü ne olabilir
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,157
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

*EN ÖNEMLİSİ
şuanda araştırıyorum ama daha bir şey denk gelmedi ben bu projemi bir bilgisayarda yükleyip ağ üzerinden aynı anda çalıştırabilirmiyim. Hata almak istemiyorum. iki bilgisayardan aynı anda işlem gerçekleştirdiğim zaman yapılan işlemleri aynı anda açabilsin kaydetme yapabilsin. Bu konuda esas yardımınıza ihtiyacım var. Bunun çözümü ne olabilir
Yukarıdaki konuyla ilgili linkteki tüm başlıkları incelemenizde fayda var..

.
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
kodunuzdaki “txttarih1.Value = Date” satırrını “txttarih1.Value = Format(Date, "dd.mm.yyyy") satırı ile değiştirdim ancak satış yap kısmındaki hata kodu gösteriyor...
Maliyet ekranındaki tarih TextBox'unun adı txttarih1 iken, satisyap ekranındaki tarih TextBox'unun adı txttarih dir. Bu durumda satisyap ekranındaki kodunuz txttarih.Value = Format(Date, "dd.mm.yyyy") şeklinde olmalıdır.

J3 - K3-L3 kısmındaki satış yap nasıl yapacağımı tam olarak kod ile anlayamadım.
Sheets("satisyap").Range("J3").Value = Cells(Satır, 10)= Cells(Satır, 11)* Cells(Satır, 8)/100
J sütunu için KOD Sheets("satisyap").Range("J" & yenisatir).Value = (Cells(yenisatir, 8) * Cells(yenisatir, 11)) / 100 K ve L sütunları için gereken kodları buna göre yazarsınız sanıyorum.
 
Üst