Skip to main content

AccessTr.neT


Excel De Makro Çalıştığında Satır Atlatarak Kayıt Yapıyor.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
26
2314

Excel De Makro Çalıştığında Satır Atlatarak Kayıt Yapıyor.

Çözüldü #1
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]
.rar CariTakip.rar (Dosya Boyutu: 56,78 KB | İndirme Sayısı: 5)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
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
Cevapla
#3
(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.
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 06/06/2020, 18:41, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#4
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

Cevapla
#5
(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]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#6
.select kısmını silip deneyin normalde hata yoktu bende.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task