• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Çözüldü Userform'da İşlem Yapma

Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Userform'da çalıştığım bir dosyada çok az şey eksik kaldı yardımlarınızı bekliyorum. ^_^

(TextBox1) e yazılan sayının her kaydedilişten sonra tekrar açıldığında en son kaydedilen sayıya 1 eklemesi gerekiyor. (TextBox1) de yazan sayıya göre diğer bütün işlemler görüşmeler sayfasında satırı değiştirecek. Örneğin (TextBox1) de 5 yazıyorsa diğer bütün yazılanlar Görüşmeler sayfasında 9. satıra yazılacak. ve kaydedildikten sonra tekrar userform açıldığında (TextBox1) de otomatik olarak 6 yazıyor olacak.

Örnek Dosyaya buraya tıklayarak ulaşabilirsiniz.
Şimdiden yardımlarınız için teşekkür ederim.
 
Son düzenleme:
Merhaba
"Private Sub Userform_Initialize()" başlığı altındaki kodları aşağıdaki gibi değiştirerek deneyin.
Kod:
Private Sub Userform_Initialize()
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox2.AddItem Sayfa.Name
        End If
    Next
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox1.AddItem Sayfa.Name
        End If
    Next
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox3.AddItem Sayfa.Name
        End If
    Next
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row

 Set S1 = Sheets("GÖRÜŞMELER")
  n = S1.Cells(Rows.Count, 1).End(3).Row
 x = 4
Do
x = x + 1
If IsNumeric(S1.Cells(x, 1).Value) = True And WorksheetFunction.CountA(S1.Range("B" & x & ":J" & x)) = 0 Then
TextBox1 = S1.Cells(x, 1)
If IsNumeric(TextBox1.Value) = True Then Exit Do
End If
Loop While x <> n
End Sub
 
Merhaba.

Ana Sayfa'da belirtmiş olduğunuz tüm sorunları giderdim.
Sıra No takibi için Görüşmeler adlı sayfanın A1 hücresini kullandım.
Görüşmeler adlı sayfanın A1 hücresine müdahale etmezseniz Sıra No düzgün çalışacaktır.

Dosyanız ekte.

https://www.dosyaupload.com/aaut
 
Merhaba
"Private Sub Userform_Initialize()" başlığı altındaki kodları aşağıdaki gibi değiştirerek deneyin.
Kod:
Private Sub Userform_Initialize()
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox2.AddItem Sayfa.Name
        End If
    Next
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox1.AddItem Sayfa.Name
        End If
    Next
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox3.AddItem Sayfa.Name
        End If
    Next
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row

Set S1 = Sheets("GÖRÜŞMELER")
  n = S1.Cells(Rows.Count, 1).End(3).Row
x = 4
Do
x = x + 1
If IsNumeric(S1.Cells(x, 1).Value) = True And WorksheetFunction.CountA(S1.Range("B" & x & ":J" & x)) = 0 Then
TextBox1 = S1.Cells(x, 1)
If IsNumeric(TextBox1.Value) = True Then Exit Do
End If
Loop While x <> n
End Sub

İlginiz için teşekkür ederim. Userform her kapandığında 1 artarak devam ediyor o problem hallolmuş. Ancak Benim istediğim biraz daha spesifik bir şey galiba. Şuan kodlar bi alttaki satır boşsa yaz şeklinde dizayn edilmiş durumda ancak ben şöyle olması için uğraşıyorum.
Örneğin
sayı kısmında 1 yazıyorsa bütün işlemler 5. satırda gerçekleşecek
sayı kısmında 2 yazıyorsa bütün işlemler 6. satırda gerçekleşecek
sayı kısmında 10 yazıyorsa bütün işlemler 14. satırda gerçekleşecek
Yani 15 e kadar +4 şeklinde gidecek.
Ancak 16 ya gelince 27. satırdan devam edecek.
Yani görüşmeler sayfası A4 hücresinde bulunan Sıra numarasına göre hareket edecek.
 
Merhaba.

Ana Sayfa'da belirtmiş olduğunuz tüm sorunları giderdim.
Sıra No takibi için Görüşmeler adlı sayfanın A1 hücresini kullandım.
Görüşmeler adlı sayfanın A1 hücresine müdahale etmezseniz Sıra No düzgün çalışacaktır.

Dosyanız ekte.

https://www.dosyaupload.com/aaut
Çok teşekkür ederim bir çok problem çözülmüş özellikle EĞER MÜMKÜNSE yazdığım yerin çözülebileceğini hiç düşünmüyordum. Çok mutlu oldum.
Ufak bir sorun var yazdır butonuyla alakalı yazdıra basınca kitlenme oluyor aceba benim excelle mi alakalı bilemedim.
Yazdır butonuyla alakalı istediğim yazdıra basınca önizleme sayfasının gelmesi ve userform un kapanması. Mümkün müdür aceba?
1 de userform kapanıp tekrar açıldığında 1 artarak açılabilir mi?
 
Son düzenleme:
Aşağıdaki satırları sil
Kod:
    Worksheets(TextBox1.Text).PrintOut

Aynı satıra aşağıdaki satırları ekle.
Kod:
    Me.Hide
    Worksheets(TextBox1.Text).PrintPreview
    Unload Me

Ayrıca;
Sayı, Form kapanınca değil Kaydet düğmesine basınca artıyor. Doğrusu da bu değil mi?
Eğer kayıt yapılmadan kapatılmışsa artmıyor.
 
Aşağıdaki satırları sil
Kod:
    Worksheets(TextBox1.Text).PrintOut

Aynı satıra aşağıdaki satırları ekle.
Kod:
    Me.Hide
    Worksheets(TextBox1.Text).PrintPreview
    Unload Me

Ayrıca;
Sayı, Form kapanınca değil Kaydet düğmesine basınca artıyor. Doğrusu da bu değil mi?
Eğer kayıt yapılmadan kapatılmışsa artmıyor.
Yazdır problemi halloldu :)
Sayı artma olayı aynen dediğiniz gibi kaydete basınca artması lazım ama 1 i kaydedip tekrar açınca yine 1 çıkıyor
 
Merhaba
"Private Sub Userform_Initialize()" başlığı altındaki kodları aşağıdaki gibi değiştirerek deneyin.
Kod:
Private Sub Userform_Initialize()
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox2.AddItem Sayfa.Name
        End If
    Next
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox1.AddItem Sayfa.Name
        End If
    Next
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> "Sayfa1" Then
            ComboBox3.AddItem Sayfa.Name
        End If
    Next
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row

Set S1 = Sheets("GÖRÜŞMELER")
  n = S1.Cells(Rows.Count, 1).End(3).Row
x = 4
Do
x = x + 1
If IsNumeric(S1.Cells(x, 1).Value) = True And WorksheetFunction.CountA(S1.Range("B" & x & ":J" & x)) = 0 Then
TextBox1 = S1.Cells(x, 1)
If IsNumeric(TextBox1.Value) = True Then Exit Do
End If
Loop While x <> n
End Sub


Textbox1 deki kısmı her açılışta 1 artacak şekilde nasıl yaptınız aceba diğer hiçbir şeyi etkilemeden sadece bunu yapabilir miyiz?
Emeğiniz için teşekkür ederim.
 
Aşağıdaki satırları sil
Kod:
    Worksheets(TextBox1.Text).PrintOut

Aynı satıra aşağıdaki satırları ekle.
Kod:
    Me.Hide
    Worksheets(TextBox1.Text).PrintPreview
    Unload Me

Ayrıca;
Sayı, Form kapanınca değil Kaydet düğmesine basınca artıyor. Doğrusu da bu değil mi?
Eğer kayıt yapılmadan kapatılmışsa artmıyor.

Son bir problem daha var örneğin 1 i kaydettik kaydederken tarih kısmına 29.01.2019 yazdık diyelim
Tekrar 1 e basınca bütün veriler userform'a geliyor burası süper ancak tarih kısmına gelen tarih 01/29/2019 olarak geliyor. Yani ay gün yıl olarak geri çekiyor. Bunu düzeltme şansımız var mı? Çok aradım bulamadım. Emeğiniz için teşekkür ederim.
 
Son bir problem daha var örneğin 1 i kaydettik kaydederken tarih kısmına 29.01.2019 yazdık diyeli. Tekrar 1 e basınca bütün veriler userform'a geliyor burası süper ancak tarih kısmına gelen tarih 01/29/2019 olarak geliyor. Yani ay gün yıl olarak geri çekiyor. Bunu düzeltme şansımız var mı? Çok aradım bulamadım. Emeğiniz için teşekkür ederim.
Merhaba.
Userform'a ait kodlardan TextBox1_Change kod bloukunda ilgili satırı aşağıdakiyle değiştirerek deneyin.
TextBox3.Value = Format(sh.Cells(Satir, "B").Value, "dd.mm.yyyy")
 
Merhaba.
Userform'a ait kodlardan TextBox1_Change kod bloukunda ilgili satırı aşağıdakiyle değiştirerek deneyin.
Teşekkür ederim problem çözüldü. ^_^
Şuan tek problem
Textbox1 deki kısmın her açılışta 1 artacak şekilde açılmasını sağlamak.
 
Sayı tam olarak sizin istediğiniz gibi artıyor. Ben şimdi yeniden deneme yaptım sorun yok.
Sizin de artışı görmeniz için Kaydete bastıktan sonra ve form kapatılmadan önce artacak şekilde ayarladım.

A1 hücresine hiç müdahale etmemeniz gerekiyor.
A1 hücresindeki metin rengini zemin rengi ile aynı yapmıştım şimdi kırmızı yaptım sayının arttığını oradan da takip edebilirsiniz.
Yeni dosyanız ekte.

https://www.dosyaupload.com/emL8
 
Sayı tam olarak sizin istediğiniz gibi artıyor. Ben şimdi yeniden deneme yaptım sorun yok.
Sizin de artışı görmeniz için Kaydete bastıktan sonra ve form kapatılmadan önce artacak şekilde ayarladım.

A1 hücresine hiç müdahale etmemeniz gerekiyor.
A1 hücresindeki metin rengini zemin rengi ile aynı yapmıştım şimdi kırmızı yaptım sayının arttığını oradan da takip edebilirsiniz.
Yeni dosyanız ekte.

https://www.dosyaupload.com/emL8
İlgin için teşekkür ederim hocam dosyayı denedim ama yine aynı.
Dosyada istediğim durumu tam anlatamadım sanırım.
Userform açıldığında Sayı kısmı 1 diyelim verileri girdim kaydettim.
Sonra tekrar userform'u açınca sayı kısmı 2 olmalı.
 
Sayı tam olarak sizin istediğiniz gibi artıyor. Ben şimdi yeniden deneme yaptım sorun yok.
Sizin de artışı görmeniz için Kaydete bastıktan sonra ve form kapatılmadan önce artacak şekilde ayarladım.

A1 hücresine hiç müdahale etmemeniz gerekiyor.
A1 hücresindeki metin rengini zemin rengi ile aynı yapmıştım şimdi kırmızı yaptım sayının arttığını oradan da takip edebilirsiniz.
Yeni dosyanız ekte.

https://www.dosyaupload.com/emL8


Private Sub Userform_Initialize()
For Each Sayfa In ThisWorkbook.Worksheets
If Sayfa.Name <> "Sayfa1" Then
ComboBox2.AddItem Sayfa.Name
End If
Next
ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
For Each Sayfa In ThisWorkbook.Worksheets
If Sayfa.Name <> "Sayfa1" Then
ComboBox1.AddItem Sayfa.Name
End If
Next
ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
For Each Sayfa In ThisWorkbook.Worksheets
If Sayfa.Name <> "Sayfa1" Then
ComboBox3.AddItem Sayfa.Name
End If
Next
ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row

Set S1 = Sheets("GÖRÜŞMELER")
n = S1.Cells(Rows.Count, 1).End(3).Row
x = 4
Do
x = x + 1
If IsNumeric(S1.Cells(x, 1).Value) = True And WorksheetFunction.CountA(S1.Range("B" & x & ":J" & x)) = 0 Then
TextBox1 = S1.Cells(x, 1)
If IsNumeric(TextBox1.Value) = True Then Exit Do
End If
Loop While x <> n
End Sub



bu kod sistemini ekleyince istediğim olmuştu ancak diğer bir çok problem eksik kalıyor bu kodu kullanıncada.
 
Acaba ControlSource de mi bir sorun var.
UserForm un kod kısmını açıp
Userform_Initialize kodlarının tamammını silip aşağıdakileri kopyalayın.

Kod:
Private Sub Userform_Initialize()
    TextBox1.ControlSource = "'GÖRÜŞMELER'!A1"
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row
End Sub
 
Acaba ControlSource de mi bir sorun var.
UserForm un kod kısmını açıp
Userform_Initialize kodlarının tamammını silip aşağıdakileri kopyalayın.

Kod:
Private Sub Userform_Initialize()
    TextBox1.ControlSource = "'GÖRÜŞMELER'!A1"
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row
End Sub
Kodu ekleyince düzelmemişti ancak
TextBox1.ControlSource = "'GÖRÜŞMELER'!A1" bu kısmı
TextBox1.ControlSource = "'ANASAYFA'!A1"
yapınca düzeldi.
Çok teşekkür ederim tekrardan elinize ve bilginize sağlık.
 
Acaba ControlSource de mi bir sorun var.
UserForm un kod kısmını açıp
Userform_Initialize kodlarının tamammını silip aşağıdakileri kopyalayın.

Kod:
Private Sub Userform_Initialize()
    TextBox1.ControlSource = "'GÖRÜŞMELER'!A1"
    ComboBox1.RowSource = "DATA!J14:J" & Sheets("DATA").Cells(Rows.Count, "J").End(xlUp).Row
    ComboBox2.RowSource = "DATA!F2:F" & Sheets("DATA").Cells(Rows.Count, "F").End(xlUp).Row
    ComboBox3.RowSource = "DATA!E1:E" & Sheets("DATA").Cells(Rows.Count, "E").End(xlUp).Row
End Sub
Sayın hocam kaydet butonuna bastıktan sonra userfom un kapanmaması için kodda nasıl bir değişiklik yapmam gerekir aceba?
 
"unload me" yazan satırı silerseniz form kapanmaz.
 
Geri
Üst