Userformda önce boşluğa yaz

Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Merhaba;

Userforum aracılı ile excel sayfasına veri aktarıyorum. Sil komutunu mecburen sadece eklediğim hücrelerle yapıyorum. Buraya kadar sorun yok ama sildiğim zaman satır boş kalıyor aşağıdaki ekle komutlarını kullanıyorum arada boşluk varsa önce oraya yazması için ne şekilde değişiklik yapmam gerekiyor?

Kod:
Private Sub CommandButton6_Click()
On Error Resume Next
Dim i As Long
    For i = 9 To Range("b65536").End(3).Row
        If Cells(i, 2).Value = ComboBox1.Text Then
            MsgBox "Aynı T.C. No ile tekrar kayıt yapılamaz.", vbCritical, "UYARI:"
            Call CommandButton2_Click
            Exit Sub
        End If
    Next i
    With Sayfa4.Range("b65536")
        .End(3)(2, 1).Value = Me.ComboBox1.Text
        .End(3)(1, 2).Value = Me.TextBox3.Text
        .End(3)(1, 3).Value = Me.TextBox4.Text
        .End(3)(1, 4).Value = Me.TextBox5.Text
        .End(3)(1, 5).Value = Me.ComboBox2.Text
        .End(3)(1, 6).Value = Me.ComboBox3.Text
        .End(3)(1, 7).Value = Me.TextBox6.Text
        .End(3)(1, 24).Value = Format(Me.TextBox7.Text, "dd.mm.yyyy")
        .End(3)(1, 25).Value = Format(Me.TextBox8.Text, "dd.mm.yyyy")
        .End(3)(1, 26).Value = Me.TextBox9.Text
        .End(3)(1, 27).Value = Format(Me.TextBox10.Text, "dd.mm.yyyy")
        .End(3)(1, 28).Value = Me.TextBox11.Text
        .End(3)(1, 29).Value = Me.TextBox12.Text
        .End(3)(1, 30).Value = Me.TextBox13.Text
        .End(3)(1, 31).Value = Me.TextBox14.Text
    End With
        temizle
    Call UserForm_Initialize
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Silme derken clear kodunu kullanıyorsanız ,onun yerine delete kullnırsanız arda boş satır olmaz.:cool:
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Evet silerken clear kullanıyorum. Delete kullanamam çünkü arada sabit kalması gereken formüller var satırı satırı silersem formüller bozuluyor o yüzden sadece hücreleri temizliyorum. Fakat eklerken boş hücrelerden başlamasını yaptıramadım
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evet silerken clear kullanıyorum. Delete kullanamam çünkü arada sabit kalması gereken formüller var satırı satırı silersem formüller bozuluyor o yüzden sadece hücreleri temizliyorum. Fakat eklerken boş hücrelerden başlamasını yaptıramadım
Satırı silmenize gerek yok.
Aşağıdaki kod A5:D5 arlığını ve G5 hücresini siler ve silinen yerlerin yerine alttaki hücreleri doldurur.:cool:
Kod:
Range("A5: D5,G5").Delete (xlUp)
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Ekleyemedim benim için " I dan X "e kadar(I ve X dahil) silmesin gerisini silebilir Tam olarak ne kullanmam lazım
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekleyemedim benim için " I dan X "e kadar(I ve X dahil) silmesin gerisini silebilir Tam olarak ne kullanmam lazım
5nic satırda I:X aralığı I ve X Hariç olmak üzere siliyor.
Kod:
Range("A5:H5,Y5:IV5").Delete (xlUp)
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Fakat Böyle yaparsak benim seçtiğim satırı silmez ki hep 5. satırı siler bul diyerek başlamamız gerekmez mi istediğimizi sildirmek için
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Fakat Böyle yaparsak benim seçtiğim satırı silmez ki hep 5. satırı siler bul diyerek başlamamız gerekmez mi istediğimizi sildirmek için
Aşağıdaki gibi kullanınız.:cool:
Kod:
silinecek_satir = 5
Range("A" & silinecek_satir & ":H" & silinecek_satir & ",Y" & silinecek_satir & ":IV" & silinecek_satir).Delete (xlUp)
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Yine olmadı range sınıfının delete yöntemi başarısız hatası veriyor.
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
sil kodunun tamamını gönderiyorum
Kod:
Private Sub CommandButton5_Click()
Dim bul As Range
With Sayfa4
For Each bul In .Range("b9:b" & Range("b65536").End(xlUp).Row)
If bul = ComboBox1.Text Then
Call CommandButton2_Click
    Rows(bul.Row).Select
    If MsgBox("Kayıtlar sadece yanlış ekleme yapıldığında silinmelidir. İşçi çıktığında kayıt silinmemelidir. Değişiklik için ise düzeltmeyi kullanınız. Devam edip kaydı silmek istediğinizden emin misiniz?", vbYesNo, "SORGU: ") = vbNo Then
        Exit Sub
    Else
        silinecek_satir = 9
        Range("b" & silinecek_satir & ":H" & silinecek_satir & ",Y" & silinecek_satir & ":afV" & silinecek_satir).Delete (xlUp)
        MsgBox "Kayıt silinmiştir.  ", vbInformation, "BİLGİ: "
        Exit Sub
    End If
End If
Next bul
    End With
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki satırı ilgili yere kopyalayanız öncekini siliniz.:cool:
Kod:
 Range("b" & silinecek_satir & ":H" & silinecek_satir & ",Y" & silinecek_satir & ":IV" & silinecek_satir).Delete (xlUp)
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
:) Bu kodda yine hep 9 sıradakini siliyor yani benim söylediğim kaydı silmiyor ki silinecek_satir= kaç yazarsam o siliniyor
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
:) Bu kodda yine hep 9 sıradakini siliyor yani benim söylediğim kaydı silmiyor ki silinecek_satir= kaç yazarsam o siliniyor
Önce silinecek_satir değişkeninine silinecek değeri vermelisiniz.
Bunun için neredeki satırın silineceğini bulmanız gerekiyor.
Önce silinecek satırı bulun sonrada Silinecek_satir değişkenine Bu bulduğunuz satırı giriniz.
Şimdi iş silinecek satırı bulmaya yarayan kodu yazmakta.
Kendi programınıza göre bu kodları yazın ve sonucuda silinecek_satir değişkenine aktarın.:cool:
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Evren bey satırı sildiğim zaman formüllerim yine bozuluyor #Başv oluyo bütün formüllerim çünkü çoğu silinen satıra bağlı bu ekleme işini yapamaz mıyız? Ekleyeceği yeri aşağıdan aramaya başlıyor bunu yukardan başlatsak aradaki önce boşluğa yazdırsak olmaz mı? mümkün değil mi böyle bişey?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren bey satırı sildiğim zaman formüllerim yine bozuluyor #Başv oluyo bütün formüllerim çünkü çoğu silinen satıra bağlı bu ekleme işini yapamaz mıyız? Ekleyeceği yeri aşağıdan aramaya başlıyor bunu yukardan başlatsak aradaki önce boşluğa yazdırsak olmaz mı? mümkün değil mi böyle bişey?
Kendi dosyanıza göre uyarlayınız a sütununda bulduğu ilk boş hücreye yazıyor.
Boş hücre bulamazsa en alttaki boş satır yazıyor.:cool:
Kod:
Sub bos_satira_yaz()
Dim hcr As Range
For Each hcr In Range("A1:A" & Cells(65536, "A").End(xlUp).Row + 1)
    If hcr.Value = "" Then
        hcr.Value = "Boş satıra yazıldı.."
        Exit For
    End If
Next hcr
End Sub
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Kod:
Sub bosa_yaz()
On Error Resume Next
Dim hucr As Range
With Sayfa4
For Each hucr In Range("b9:b" & Cells(65536, "b").End(xlUp).Row + 1)
    If hucr.Value = Empty Then
        hucr.Activate
If MsgBox("Kaydı yapmak istediğinizden emin misiniz?", vbYesNo, "SORGU:") = vbYes Then
    ActiveCell.Offset(0, 0) = Me.ComboBox1.Text
    ActiveCell.Offset(0, 1) = Me.TextBox3.Text
    ActiveCell.Offset(0, 2) = Me.TextBox4.Text
    ActiveCell.Offset(0, 3) = Me.TextBox5.Text
    ActiveCell.Offset(0, 4) = Me.ComboBox2.Text
    ActiveCell.Offset(0, 5) = Me.ComboBox3.Text
    ActiveCell.Offset(0, 6) = Me.TextBox6.Text
    ActiveCell.Offset(0, 23) = Format(Me.TextBox7.Text, "dd.mm.yyyy")
    ActiveCell.Offset(0, 24) = Format(Me.TextBox8.Text, "dd.mm.yyyy")
    ActiveCell.Offset(0, 25) = Me.TextBox9.Text
    ActiveCell.Offset(0, 26) = Format(Me.TextBox10.Text, "dd.mm.yyyy")
    ActiveCell.Offset(0, 27) = Me.TextBox11.Text
    ActiveCell.Offset(0, 28) = Me.TextBox12.Text
    ActiveCell.Offset(0, 29) = Me.TextBox13.Text
    ActiveCell.Offset(0, 30) = Me.TextBox14.Text
        MsgBox "Kayıt tamamlandı.  ", vbInformation, "BİLGİ:"
        temizle
        Exit For
End If
    End If
    Next hucr
End With
Call kont
End Sub
Kod:
Private Sub CommandButton6_Click()
On Error Resume Next
Dim i As Long
    For i = 9 To Range("a65536").End(3).Row
        If Cells(i, 2).Value = ComboBox1.Text Then
            MsgBox "Aynı T.C. No ile tekrar kayıt yapılamaz.", vbCritical, "UYARI: "
            Call CommandButton2_Click
            Exit Sub
        End If
    Next i
    bosa_yaz
    Call UserForm_Initialize
End Sub
yapınca oldu.. Herşey için TeşekkürLer..
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodları kullannınız.:cool:
B sütununda bulduğu ilk boş satıra verileri yazar boş satır yoksa en alttaki boş satıra yazar.:cool:
Kod:
Dim hcr As Range
Dim i As Long
On Error Resume Next
    For i = 9 To Range("b65536").End(3).Row
        If Cells(i, 2).Value = ComboBox1.Text Then
            MsgBox "Aynı T.C. No ile tekrar kayıt yapılamaz.", vbCritical, "UYARI: "
            Call CommandButton2_Click
            Exit Sub
        End If
    Next i
For Each hcr In Range("B1:B" & Cells(65536, "A").End(xlUp).Row + 1)
    If hcr.Value = "" Then
        hcr.Value = Me.ComboBox1.Text
        hcr.Offset(0, 1).Value = Me.TextBox3.Text
        hcr.Offset(0, 2).Value = Me.TextBox4.Text
        hcr.Offset(0, 3).Value = Me.TextBox5.Text
        hcr.Offset(0, 4).Value = Me.ComboBox2.Text
        hcr.ofset(0, 5).Value = Me.ComboBox3.Text
        hcr.Offset(0, 6).Value = Me.TextBox6.Text
        hcr.Offset(0, 23).Value = CDate(textbox7.Text)
        hcr.Offset(0, 23).NumberFormat = "dd.mm.yyyy"
        hcr.Offset(0, 24).Value = CDate(textbox8.Text)
        hcr.Offset(0, 24).NumberFormat = "dd.mm.yyyy"
        hcr.Offset(0, 25).Value = textbox9.Text
        hcr.Offset(0, 26).Value = CDate(textbox10.Text)
        hcr.Offset(0, 26).NumberFormat = "dd.mm.yyyy"
        hcr.Offset(0, 27).Value = textbox11.Text
        hcr.Offset(0, 28).Value = textbox12.Text
        hcr.Offset(0, 29).Value = textbox13.Text
        hcr.Offset(0, 30).Value = textbox14.Text
        Exit For
    End If
Next hcr
        temizle
    Call UserForm_Initialize
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Bu kodlarda güzel hatta ben bunları kullanıyım daha hızlı olur Teşekkür Ederim.. Kolay geLsin..
 
Katılım
4 Ağustos 2008
Mesajlar
117
Excel Vers. ve Dili
Türkçe
Buyrun çalışmam inşallah eksik bişey yoktur.. Belki içinden işinize yarayan bişey olur.. iyi çalışmalar iyi günler..

Şifre = 5995445
 

Ekli dosyalar

Üst