Excel Form da inputlarımı kaydırıyor ve bir üste ekliyor.

Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Merhabalar, ekte paylaştığım excelde Home sayfasındaki "maaliyet hesapla" ya basınca çıkan tabloya girilen verileri hep 2. satıra ve bir sonra girilecek veriler için de bir önce girileni 3. satıra atıp 2. satıra yeni verileri giren bir yazılım hazırlamaya çalıştım ama sıkıntılar yaşıyorum. Burada yardımcı olanlar çok bilgili bence direkt denesiniz anlarsınız sorunu. Yardımcı olabilirseniz çok sevinirim.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Çözüm için:

iRow = [Counta(Database!A:A)] - 1

kısmındaki -1'i silerek deneyin.

DATABASE sayfasında 35. satırdaki başlıklar gerekli mi? Gerekli değilse o satırı silip aşağıdaki gibi de kullanabilirsiniz:

iRow = [Counta(Database!A:A)] + 1
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Çözüm için:

iRow = [Counta(Database!A:A)] - 1

kısmındaki -1'i silerek deneyin.

DATABASE sayfasında 35. satırdaki başlıklar gerekli mi? Gerekli değilse o satırı silip aşağıdaki gibi de kullanabilirsiniz:

iRow = [Counta(Database!A:A)] + 1
35. satırı silip kodu şu şekilde güncelledim ama hep bir alta yapıyor ve sayılarda bir kayma var, özellikle "lazer kesim" için girilen inputta. Mesela yeni inputları girdik, var olan satırları bir aşağı kaydırıp, yeni dataları 2. satıra eklemesi lazım
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
bir alt satıra kaydırma isteğinize dikkat etmemişim, kusura bakmayın :(

Submit kodlarını aşağıdakilerle değiştirip deneyin:

PHP:
Sub Submit()
    Dim sh As Worksheet
    Dim iRow As Long
    Set sh = ThisWorkbook.Sheets("Database")
    iRow = [Counta(Database!A:A)] + 1
    sh.Range("A2:J" & iRow).Copy sh.[A3]
    With sh
        .Cells(2, 1) = iRow - 1
        .Cells(2, 2) = frmForm.txtlazer.Value
        .Cells(2, 3) = frmForm.txtDamla.Value
        .Cells(2, 4) = frmForm.txtAlm.Value
        .Cells(2, 5) = frmForm.txta.Value
        .Cells(2, 6) = frmForm.txtb.Value
        .Cells(2, 7) = frmForm.txtH.Value
        .Cells(2, 8) = frmForm.txtL.Value
        .Cells(2, 9) = frmForm.txtdis.Value
        .Cells(2, 10) = frmForm.txtic.Value
    End With
End Sub
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
bir alt satıra kaydırma isteğinize dikkat etmemişim, kusura bakmayın :(

Submit kodlarını aşağıdakilerle değiştirip deneyin:

PHP:
Sub Submit()
    Dim sh As Worksheet
    Dim iRow As Long
    Set sh = ThisWorkbook.Sheets("Database")
    iRow = [Counta(Database!A:A)] + 1
    sh.Range("A2:J" & iRow).Copy sh.[A3]
    With sh
        .Cells(2, 1) = iRow - 1
        .Cells(2, 2) = frmForm.txtlazer.Value
        .Cells(2, 3) = frmForm.txtDamla.Value
        .Cells(2, 4) = frmForm.txtAlm.Value
        .Cells(2, 5) = frmForm.txta.Value
        .Cells(2, 6) = frmForm.txtb.Value
        .Cells(2, 7) = frmForm.txtH.Value
        .Cells(2, 8) = frmForm.txtL.Value
        .Cells(2, 9) = frmForm.txtdis.Value
        .Cells(2, 10) = frmForm.txtic.Value
    End With
End Sub
Efendim ne kusuru sizi ben uğraştırıyorum asıl siz kusura bakmayın yoruyorum sizi o kadar.

Ama şöyle bir durum var, ben Lazer kesim'e ne verirsem vereyim sadece 1 artıyor. 1-2-3-4 diye gidiyor yeni data ekledikçe. Ve girilen inputlarda bir kayma var, sebebini çözemedim açıkçası
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sorunuzu anlamadım maalesef. Son verdiğim kod işinizi görmüyor mu? Görmüyorsa nesi yanlış?
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
işe yarıyor ama şöyle diyim, butona basınca, inputunu girdiğim her şey 1 basamak kayıyor. Mesela "a" kutusuna 5 yazdım, bunu "b" kutusuna yazıyor. Sebebi sanırsam
.Cells(2, 1) = iRow - 1
kodu yüzünden. Onu silip,
.Cells(2, 1) = frmForm.txtlazer.Value
diye başlattığımda lazeri görseldeki gibi yapıyor ve gene sağa doğru kayıyor yazdıklarım238984
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
İnputlar ve Outputlar aşağıdaki gibidir

238985

238986238987238988
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ben tabi hangi veriy nereye kaydediliyor diye bakmamıştım. Bu hatanın sebebi (hata denilmez gerçi) sizin

.Cells(2, 1) = iRow - 1

satırıyla tabloya sıra numarası verdirmeniz. Bu satır tablonun ilk sütununa sıra numarası veriyor ve sonraki verileri de sonraki sütunlara aktarıyor doğal olarak.

Aşağıdaki gibi deneyin:

PHP:
Sub Submit()
    Dim sh As Worksheet
    Dim iRow As Long
    Set sh = ThisWorkbook.Sheets("Database")
    iRow = [Counta(Database!A:A)] + 1
    sh.Range("A2:J" & iRow).Copy sh.[A3]
    With sh
        .Cells(2, 1) = frmForm.txtlazer.Value
        .Cells(2, 2) = frmForm.txtDamla.Value
        .Cells(2, 3) = frmForm.txtAlm.Value
        .Cells(2, 4) = frmForm.txta.Value
        .Cells(2, 5) = frmForm.txtb.Value
        .Cells(2, 6) = frmForm.txtH.Value
        .Cells(2, 7) = frmForm.txtBe.Value
        .Cells(2, 8) = frmForm.txtL.Value
        .Cells(2, 9) = frmForm.txtdis.Value
        .Cells(2, 10) = frmForm.txtic.Value
    End With
End Sub
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Bu kodu kopyala yapıştır yapınca aynı şekilde devam ediyor. Ben zaten o satır numarası çıksın istemiyorum aslında, hatta
.Cells(2, 1) = iRow - 1
kısmını silince de LAZER kısmı gene 1-2-3... diye artıyor. Ve Lazer Kesim e 5 verirsem mesela, LAZER kısmı 1 oluyor ve Damla Tutucu 5 oluyor. Hatta bu işlemden sonra ALMG3'e "45" yazıp save dersek, LAZER 2 oluyor ve ALGM3 değil de "a"artıyor.
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Ve de yeni girilen veriyi yeni satıra ekliyor. Ben eski veriyi alt satıra kaydırıp, yeni girilen veriyi 2. satıra yazdırmasına çalışıyorum
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Bir de, "B" nin altına yazılanı basmıyor
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Kod aşağıdaki gibiyken, input ve output görsellerdeki gibidir bu arada. Bir çok şeyi denedim ama başaramadım :(
238995
238994


Kod:
Sub Submit()
    Dim sh As Worksheet
    Dim iRow As Long
    Set sh = ThisWorkbook.Sheets("Database")
    iRow = [Counta(Database!A:A)] + 1
    sh.Range("A2:J" & iRow).Copy sh.[A3]
    With sh
       ' .Cells(2, 1) = iRow - 1
        .Cells(2, 1) = frmForm.txtlazer.Value
        .Cells(2, 2) = frmForm.txtDamla.Value
        .Cells(2, 3) = frmForm.txtAlm.Value
        .Cells(2, 4) = frmForm.txta.Value
        .Cells(2, 5) = frmForm.txtb.Value
        .Cells(2, 6) = frmForm.txtH.Value
        .Cells(2, 7) = frmForm.txtBe.Value
        .Cells(2, 8) = frmForm.txtL.Value
        .Cells(2, 9) = frmForm.txtdis.Value
        .Cells(2, 10) = frmForm.txtic.Value
    End With
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sizde neden ve nasıl oluyor bilmiyorum ama ben kodu #10 nolu mesajımdaki gibi kullandığımda aşağıdaki gibi sonuç elde ediyorum.

Ekran görüntüsünde 1 nolu bölümdeki gibi textboxlara veri girip Save düğmesine basıyorum ve listboxta 2 nolu görüntü ve sayfada da 3 nolu görüntü oluşyuor:

239000
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Acaba benim excelde bir sorun mu var, çünkü sizin kodu koyuyorum, hem bir alta atıyor, hem yazdıklarım kayıyor hem de B yi doldurmuyor sadece B ye input verdiğimde. Üstüne hala lazer kısmını 1-2-3-4-5 diye götürüyor. Sizi çok yordum ama gerçekten sorunun ne olduğunu algılayamadım. Acaba ayardan mı başka bir şeyden mi cidden olmadı.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Farkında mısınız bilmiyorum ama paylaştığınız dosyada benim #10 nolu mesajımdaki kodlar yok. Eski haliyle duruyor.

239011



Benim kodlarım ise şöyle:

239012
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Yanlış yere bakıyormuşum ben yusuf bey :( module kısmındaki kodu değiştirip duruyormuşum, doğru yeri değiştirdim oldu. Çok teşekkür ederim yardımınız için.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Böyle karışıklıklara yol açmamak için userformda çalışacak kodlarınızı modüle değil de userforma yazmanızı tavsiye ederim. Benim aklıma hiç modüle bakmak gelmediği için modülde Submit kodu olduğunu yeni fark ettim mesela.

Bu arada initialize kodunda Reset makrosunu çalıştırıyorsunuz. O kodlar da listboxun sütun genişliklerini ayarlıyor ama ben her açtığımda bu kısım hata verdiği için önce o satırı iptal edip formu açıyorum, bilginiz olsun.

Sütun genişliğini doğrudan listboxun özellik kısmından ayarlamanız iyi olur:

239014
 
Katılım
23 Ağustos 2022
Mesajlar
40
Excel Vers. ve Dili
Excel 360 TR
Altın Üyelik Bitiş Tarihi
26-08-2023
Ben de internetten bir guide buldum onu takip ediyordum bu formu hazırlarken, adam oraya yazdığı için ben de oraya yazdım.

anlatmak istediklerinizi de anladım, tekrardan çok teşekkür ederim Yusuf bey, iyi günler kolay gelsin. :)
 
Üst