• DİKKAT

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

Veri Kaydetme

  • Konbuyu başlatan Konbuyu başlatan wishm
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Değerli site üyeleri konu başlığından da anlaşılacağı üzere sorum veri kaydetme ile ilgili, ancak biraz değişik epey uğraştım olmadı. Yapmak istediğim kısaca şu. Ekte sunmuş olduğum şekliyle bir excel çalışma kitabım var ve bu çalışma kitabında sayısı zaman içerisinde artış gösteren şekilde "musteri1", "musteri2",.... gibi sayfalarım var. Bu sayfalara musterilere ait verileri giriyorum. Tam bu noktada yapmak istediğimi şu satır1' e veri girişi yaptıktan sonra herhangi bir işlem yapmadan "kaydet" vb gibi herhangi bir işlem yapmadan bu verilerin aynen "data" isimli sayfaya aktarılmasını ve "örneğin musteri1" sayfasındaki verilerin tamamı silinse bile bu verilerin data sayfasından silinmeyip orada kalmasını istiyorum. Bunu yada sizlerinde fikirlerine açık olmakla beraber benzer bir uygulamayı nasıl yapabilirim. Yardımlarınız ve ilginiz için şimdiden teşekkür ederim. Saygılarımla.
 

Ekli dosyalar

Yanıtınız için teşekkür ederim sayın muratozmenler. Alternatif çözüm noktasında kesinlikle işime yarayacak bir çalışma. Ancak sorumda da belirttiğim üzere "KAYDET" vb gibi bir işlem yapmadan bu işlemi yapmak benim için önemli çünkü yapacağım işlemleri direkt excel sayfası üzerinde yapıyorum ve bu sayfa sınırlı sayıda satıra sahip. Yeri geldiğinde (yani satırlar dolduğunda) silip yeni baştan yeni veriler kaydediliyor. İşte bu noktada daha önce kaydedilmiş verileri saklama ihtiyacı duyuyorum ve bu işlemi de sayfada herhangi bir komut butonuna tıklatmadan yapmak istiyorum. Yukarıda da belirttiğim üzere ilginiz ve yanıtınız için tekrar teşekkür eder cevabınızı alternatif çözüm olarak değerlendireceğimi bilmenizi isterim. Saygılarımla.
 
Değerli site üyeleri bu konuda yardımcı olabilecek yada fikir verebilecek birileri varsa sevinirim.
 
Merhaba,

ThisWorkbook sayfasına kopyalayınız..

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo Son
[SIZE=2]If ActiveSheet.Name = "data" Then Exit Sub[/SIZE]
Set S1 = Sheets("data")
If Intersect(Target, [E2:E65536]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
Dim Satır As Long
Dim Sütun As Long
Satır = S1.[A65536].End(3).Row + 1
Sütun = [IV1].End(1).Column
Range(Cells(Target.Row, "A"), Cells(Target.Row, Sütun)) _
.Copy S1.Range("A" & Satır)
Son:
End Sub

.
 
Teşekkür ederim ömer bey istediğim şey tam olarak bu. Cevabınıza ek şunuda sormak istiyorum. "A, B, C, D, E" sütunlarına veri giriliyor. Burada "E" sütununa veri girlmediği taktirde kayıt yapmıyor. Acaba "A-E" sütunlarından herhangi birine veri girildiğinde kayıt yaptırma şansı varmı? Yani kayıt için "E " sütununa veri girilme zorunluluğu ortadan kalıdırılabilirmi?. Cevabınız için şimdiden teşekkür ederim. Saygılarımla.
 
Değerli site üyeleri istediğim herne kadar kendiliğinden kayıt olsada sanırım bu biraz zor olacak. Kendimce alternatif olarak CheckBox aracılığıyla bu kaydı yapmak yani ilgili satırın sağ tarafında CheckBox olacak ve işaretlenince data sayfasına kayıt yapacak bunu nasıl sağlayabilirim. Forumda arama yaptım ancak ilgili konular forumdan silinmiş dolayısiyle bu konuda yardımcı olabilirseniz memnun olurum. İlginiz ve yanıtlarınız için şimdiden teşekkür ederim. Saygılarımla.
 

Ekli dosyalar

Değerli site üyeleri bu konuda yardımcı olabilirseniz memnun olurum. Saygılarımla.
 
Merhaba,

CheckBox yerine F sütununa X girmenniz daha mantıklı olacaktır. F sütununa sadece X girdiğiniz değerler aktarılacaktır..

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo Son
If ActiveSheet.Name = "data" Then Exit Sub
Set S1 = Sheets("data")
If Intersect(Target, [F2:F65536]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Target <> "X" Then Exit Sub
Dim Satır As Long
Dim Sütun As Long
Satır = S1.[A65536].End(3).Row + 1
Sütun = [IV1].End(1).Column
Range(Cells(Target.Row, "A"), Cells(Target.Row, Sütun)) _
.Copy S1.Range("A" & Satır)
Son:
End Sub

.
 
Sayın Ömer yanıtınız için teşekkür ederim. Kodları çalışmama uyguladım ancak istediğim sonucu alamadım. Mantıksal olarak herhangi bir kodlama hatası söz konusu değil. Yukarıda da bahsettiğim üzere bu işlemi excel sayfası üzerinde yapıyorum. Takdir edersiniz ki sayfada formüller mevcut dolayısiyle bu işlemi gerçekleştirirken hüzre değerini değil hücrenin sahip olduğu formülü data sayfasına aktarıyor. Bu da benim istediğim değil. CheckBox ile formülü değil hücrede hesaplanan değeri salt olarak aktarma şansından hareketle ChecBox' la yapılabilir diye düşünmüştüm. Yardımlarınız ve yanıtınız için teşekkür ederim. ChecBox konusunda yardım edebilirseniz ayrıca memnun olurum. saygılarımla.
 
Değerli site üyeleri CheckBox ile kayıt işlemi konusunda yardımcı olabilirseniz memnun olurum. Saygılarımla.
 
Sayın Ömer yanıtınız için teşekkür ederim. Kodları çalışmama uyguladım ancak istediğim sonucu alamadım. Mantıksal olarak herhangi bir kodlama hatası söz konusu değil. Yukarıda da bahsettiğim üzere bu işlemi excel sayfası üzerinde yapıyorum. Takdir edersiniz ki sayfada formüller mevcut dolayısiyle bu işlemi gerçekleştirirken hüzre değerini değil hücrenin sahip olduğu formülü data sayfasına aktarıyor. Bu da benim istediğim değil. CheckBox ile formülü değil hücrede hesaplanan değeri salt olarak aktarma şansından hareketle ChecBox' la yapılabilir diye düşünmüştüm. Yardımlarınız ve yanıtınız için teşekkür ederim. ChecBox konusunda yardım edebilirseniz ayrıca memnun olurum. saygılarımla.

Eğer problem formülü değilde hücre değerini aktarmak ise aşağıdaki gibi deneyiniz. Bunun dışında ısrarla neden ChecBox kullanmak istediğinizi anlamadım. Sayfalarda binlerce ChecBox koymak bana hic mantıklı gelmiyor. Son isteğinizle ilgili kodlar aşağıdadır. Lakin bu sizin için yeterli değilse ChecBox kullanmak istiyorum derseniz, yeni bir konu başlığı açarak sorunuzu sormanızı tavsiye ederim. Benim yapabileceğim bu kadar.

İyi çalışmalar..

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
On Error GoTo Son
If ActiveSheet.Name = "data" Then Exit Sub
Set S1 = Sheets("data")
If Intersect(Target, [F2:F65536]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Target <> "X" Then Exit Sub
Dim Satır As Long
Dim Sütun As Long
Satır = S1.[A65536].End(3).Row + 1
Sütun = [IV1].End(1).Column
Range(Cells(Target.Row, "A"), Cells(Target.Row, Sütun)).Copy
S1.Range("A" & Satır).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Son:
Application.ScreenUpdating = True
End Sub

.
 
Sayın Ömer yardımlarınız için teşekkür ederim. Son verdiğiniz kodları çalışmama uyarlamaya çalışacağım. Saygılarımla.
 
Sayın Ömer Bey yukarıda vemiş olduğunuz kodları çalışmamda kullandım. Şuan başka bir çalışma yaptım ve benzeri bir metod gerekti. Sizin verdiğiniz bu kodları denedim ancak aktarma işlemini yapamadım. Ekte göndermiş olduğum dosyaya bu kodlarınızı nasıl uyarlıyabilirim. Yardımlarınız için şimdiden teşekkür ederim. Saygılarımla.
 

Ekli dosyalar

Değerli site üyeleri bu konuda bana yardımcı olabilecek birileri yokmu acaba. Ömer Bey' in yukarıda verdiği kodları nasıl uyarlıyabilirim yada bahsettiğim sorunumu nasıl çözebilirim. Yardımlarınız için şlimdiden teşekkür ederim. Saygılarımla.
 
Son düzenleme:
Merhaba,

Ne istediğinizi açıklamamışsınız. Butonmu kullanacaksınız yada hangi sütundaki veriyi girince aktarım yapılacak.

Konu üzerinden 1 ay geçtiğini de düşünürsek konuyu hatırlamam için açıklama yaparmısınız..

.
 
Sizin "mesaj 12" ' de verdiğiniz kodları yaptığım çalışmamda kullandım ve gayet başarılı şekilde çalışıyor. Mevcut uygulamada "F" sütununa "X" değeri girince "sayfa1", "sayfa2"....."sayfa30" "data" sayfasına otomatik olarak aktarıyordu. Buraya kadar tam istediğim gibi ve çalışmamda kullandım. Şuan ise yeni bir çalışma yapıyorum ve yapmak istediğim yine aynı mantıkla verilerimi "mesaj 14" verdiğim formatta "data" sayfasına aktarmak istiyorum. Sorun burada başladı. Daha önce verdiğiniz ve çalışmamda kullanarak çalıştırdığım bu kodları yeni çalışmama uyarlıyamadım. Yardım talebimde bu konuda. İlginiz ve yanıtınız için şimdiden teşekkür ederim. Saygılarımla.
 
X değerini I sütuna gireceğinizi düşünerek yazdım.

Kod:
Option Compare Text
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
On Error GoTo Son
If ActiveSheet.Name = "data" Then Exit Sub
Set S1 = Sheets("data")
If Intersect(Target, [I16:I65536]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Target <> "X" Then Exit Sub
Dim Satır As Long
Satır = S1.[A65536].End(3).Row + 1
Range("D" & Target.Row & ":H" & Target.Row).Copy
S1.Range("A" & Satır).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Son:
Application.ScreenUpdating = True
End Sub

.
 
Ömer Hocam teşekkür ederim. Tam istediğim şeydi. Emeğinize sağlık. Tekrar teşekkür ederim. Saygılarımla.
 
Geri
Üst