AccessTr.neT

Tam Versiyon: Excel De Makro Çalıştığında Satır Atlatarak Kayıt Yapıyor.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5
Merhaba 
Excel çalışmamda Liste kitabının YeniKayıt sayfasında CH bilgilerini doldurup yeni kayıt ekle butonuna tıkladığımda Firmalar sayfasındaki listeye satır atlatarak kaydediyor. Bunu nasıl engelleyebilirim ve kayıt sonrası  Yeni kayıt edilen CH a ait bilgileri temizlemek için nasıl bir makro uygulanabilir. Yardımlarınız için teşekkür ederim.

[Resim: do.php?img=10289]

[Resim: do.php?img=10290]
Merhaba sarıya boyadığım kodlar gereksiz.
Ayrıca örnek adındaki excelede gerek yok bir sayfa açıp oraya kaydettirebilirdiniz Liste kitabına.

[Resim: do.php?img=10293]

Silme koduda altta end subtan önce ekleyiniz.

Kod:
ActiveSheet.Range("D3:D15").ClearContents
(06/06/2020, 17:35)feraz yazdı: [ -> ]Merhaba sarıya boyadığım kodlar gereksiz.
Ayrıca örnek adındaki excelede gerek yok bir sayfa açıp oraya kaydettirebilirdiniz Liste kitabına.

[Resim: do.php?img=10293]

Silme koduda altta end subtan önce ekleyiniz.

Kod:
ActiveSheet.Range("D3:D15").ClearContents
Sn.@feraz Allah razı olsun Çok teşekkür ederim  ilginiz için Excel dersleri izleyip uygulanan metodları aynen yapıyorum. Listenin olduğu çalışma kitabı sayfalarına kaydolan her firma eklenirse tek dosya da zamanla şişer ve kasma yapar dendiği için Her bir firmaya Örnek Çalışma kitabı kopyalanıp ayrı bir Excel kitabı halinde Örnek adı değiştirilerek yeni firma adı oluşturuluyor. Ana klasörün içine açılan tüm firmalar ayrı çalışma kitapları halinde kaydoluyor farketmiş sinizdir sanırım.
Rica ederim.Sizdende.O halde kodları alttaki gibi kullanınız.Koddaki sayfa adlarını belki kendiniz değiştirmek zorunda kalabilirsiniz eğer hata olursa Tr karakterden dolayı.

- Dosya \ Seçenekler
- Güven Merkezi \ Güven Merkezi Ayarları
- Gizlilik Seçenekleri \ Kaydederken dosya özelliklerinden kişisel bilgileri kaldır seçeneğini iptal ediniz.


Kod:
Sub YeniKayýt()

    Dim ÖrnekDosya, YeniDosya, Firma As Variant
    Dim kitap As Workbook
    Dim syfYeni As Worksheet
    Dim syfFirmalar As Worksheet
    Const syfÖzet As String = "Özet"
   
    Set syfYeni = ThisWorkbook.Sheets("YeniKayýt")
    Set syfFirmalar = ThisWorkbook.Sheets("Firmalar")
   

   
    Application.ScreenUpdating = False
  
    ' Tanýmlamalar
   
    With syfYeni.Range("D3")
        If .Value = "" Then
            .Select
            MsgBox "Müsteri Adi kismi bos olamaz..", vbCritical, "Hata"
            GoTo son
        End If
       Firma = .Value
    End With
   
    ÖrnekDosya = ActiveWorkbook.Path & "\Örnek.xlsx"
    YeniDosya = ActiveWorkbook.Path & "\" & Firma & ".xlsx"
   
    ' Dosya Kopyala
   
    FileCopy ÖrnekDosya, YeniDosya
   
    ' Listedeki Bilgileri Kopyala
   
    syfYeni.Range("D3:D15").Copy
   
    ' Yeni Dosyayý Aç
   
    Set kitap = Workbooks.Open(YeniDosya)
   
    With kitap
        .Worksheets(syfÖzet).Select
        .Worksheets(syfÖzet).Range("D3").PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
   
    ActiveWorkbook.Save
    ActiveWindow.Close
   
    With syfFirmalar
        .Select
        .Rows("1:1").Copy .Range("A" & Rows.Count).End(3)(2, 1)
        .Range("B" & Rows.Count).End(3).Value = Firma
        .Range("A" & Rows.Count).End(3)(2, 1).Select
    End With
   
    With syfYeni
        .Select
        .Range("D3").Select
        .Range("D3:D15").ClearContents
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "Bitti"
son:

    Set kitap = Nothing
    Set syfYeni = Nothing
    Set syfFirmalar = Nothing
End Sub
(06/06/2020, 18:48)feraz yazdı: [ -> ]Rica ederim.Sizdende.O halde kodları alttaki gibi kullanınız.Koddaki sayfa adlarını belki kendiniz değiştirmek zorunda kalabilirsiniz eğer hata olursa Tr karakterden dolayı.

- Dosya \ Seçenekler
- Güven Merkezi \ Güven Merkezi Ayarları
- Gizlilik Seçenekleri \ Kaydederken dosya özelliklerinden kişisel bilgileri kaldır seçeneğini iptal ediniz.


Kod:
Sub YeniKayýt()

    Dim ÖrnekDosya, YeniDosya, Firma As Variant
    Dim kitap As Workbook
    Dim syfYeni As Worksheet
    Dim syfFirmalar As Worksheet
    Const syfÖzet As String = "Özet"
   
    Set syfYeni = ThisWorkbook.Sheets("YeniKayýt")
    Set syfFirmalar = ThisWorkbook.Sheets("Firmalar")
   

   
    Application.ScreenUpdating = False
  
    ' Tanýmlamalar
   
    With syfYeni.Range("D3")
        If .Value = "" Then
            .Select
            MsgBox "Müsteri Adi kismi bos olamaz..", vbCritical, "Hata"
            GoTo son
        End If
       Firma = .Value
    End With
   
    ÖrnekDosya = ActiveWorkbook.Path & "\Örnek.xlsx"
    YeniDosya = ActiveWorkbook.Path & "\" & Firma & ".xlsx"
   
    ' Dosya Kopyala
   
    FileCopy ÖrnekDosya, YeniDosya
   
    ' Listedeki Bilgileri Kopyala
   
    syfYeni.Range("D3:D15").Copy
   
    ' Yeni Dosyayý Aç
   
    Set kitap = Workbooks.Open(YeniDosya)
   
    With kitap
        .Worksheets(syfÖzet).Select
        .Worksheets(syfÖzet).Range("D3").PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
   
    ActiveWorkbook.Save
    ActiveWindow.Close
   
    With syfFirmalar
        .Select
        .Rows("1:1").Copy .Range("A" & Rows.Count).End(3)(2, 1)
        .Range("B" & Rows.Count).End(3).Value = Firma
        .Range("A" & Rows.Count).End(3)(2, 1).Select
    End With
   
    With syfYeni
        .Select
        .Range("D3").Select
        .Range("D3:D15").ClearContents
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "Bitti"
son:

    Set kitap = Nothing
    Set syfYeni = Nothing
    Set syfFirmalar = Nothing
End Sub
VB kodlarınızı yeni bir klasör açıp orda denedim. Resimdeki hatayı alıyorum.
[Resim: do.php?img=10295]



[Resim: do.php?img=10296]
.select kısmını silip deneyin normalde hata yoktu bende.
Sayfalar: 1 2 3 4 5