Çözüldü Kapalı dosyadan aynı hücre içindeki tarihler

cahan2010

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Hayırlı akşamlar,
Devam_durumu_çizelgesi ve personel-kapali-dosya olmak üzere İki dosya oluşturdum.

Bur da kapalı dosyadan yıllık izinlerini ve raporların bilgilerini hücrelerin içinden 2 tarihi ayrı ayrı tarih olarak çıkarıp Çalışan İzni İzleyici sayfasında ilgili yerlere verilerin çekilmesi.

Kapalı dosya olan personel-kapali-dosya dan: Yıllık izin tarihleri -1 (G3) ; Yıllık izin tarihleri -2 (I3) ; Yıllık izin tarihleri -3 (K3); Yıllık izin tarihleri 4 (M3) ; Yıllık izin tarihleri 5 (O3); Yıllık izin tarihleri 6 ( Q3) hücrelerinde yıllık izinlerini hücre içinden tarihleri alarak, devam_durumu_çizelgesi dosyasında Çalışan İzni İzleyici sayfasında C4 hücresinden aşağıya Başlangıç Tarihi, D4 hücresinden aşağıya Başlangıç Tarihi ni otomatikman veri çekilip yazacak.

Kapalı dosya olan personel-kapali-dosya dan: Rapor tarihleri 1 (S3); Rapor tarihleri -2 ( U3) ; Rapor tarihleri -3 (W3); Rapor tarihleri -4 (Y3) ; Rapor tarihleri - 5 (AA3) ; Rapor tarihleri 6 (AC3) hücrelerinden yıllık izinlerini hücre içinden tarihleri alarak, devam_durumu_çizelgesi dosyasında Çalışan İzni İzleyici sayfasında C4 hücresinden aşağıya Başlangıç Tarihi, D4 hücresinden aşağıya Başlangıç Tarihi ni otomatikman veri çekilip yazacak.
 

Ekli dosyalar

Sadece bir şey sormak istiyorum.

Bir çalışan'ın bir yılda 50 falan izin, rapor vs durumu olsa ne yapacaksınız?
Kullanıcıların en büyük ve en kritik hata, verileri alt alta yazmak yerine yan yana yazması şeklindedir.
Aynı sizin yaptığınız gibi.

Eğer verilerinizi yan yana yazmamış olsaydınız, ADO yöntemi ile oldukça kolay bir şekilde istediğiniz yerlere yerleştirirdik.

Yapacağınız şey çok basit:
Sıra, Adı ve Soyadı, TC, Sicil, Unvan, Yıllık İzin, Başlangıç, Bitiş, Gün, Mazeret, ...
Üstteki başlıkları oluşturup alt alta kaydetmek.

Excel'de veri tutma mantığı böyle çalışır ve olası bir raporlamada her şey oldukça basittir.

Verilerinizi tek bir satır yerine birden fazla satırda olacak şekilde revize edebilirseniz, bu konuda destek daha kolay olacaktır. Benim bu iş yüküne girmeyi gözüm kesmedi, çok net olarak bunu söyleyebilirim.
 
Sadece bir şey sormak istiyorum.

Bir çalışan'ın bir yılda 50 falan izin, rapor vs durumu olsa ne yapacaksınız?
Kullanıcıların en büyük ve en kritik hata, verileri alt alta yazmak yerine yan yana yazması şeklindedir.
Aynı sizin yaptığınız gibi.

Eğer verilerinizi yan yana yazmamış olsaydınız, ADO yöntemi ile oldukça kolay bir şekilde istediğiniz yerlere yerleştirirdik.

Yapacağınız şey çok basit:
Sıra, Adı ve Soyadı, TC, Sicil, Unvan, Yıllık İzin, Başlangıç, Bitiş, Gün, Mazeret, ...
Üstteki başlıkları oluşturup alt alta kaydetmek.

Excel'de veri tutma mantığı böyle çalışır ve olası bir raporlamada her şey oldukça basittir.

Verilerinizi tek bir satır yerine birden fazla satırda olacak şekilde revize edebilirseniz, bu konuda destek daha kolay olacaktır. Benim bu iş yüküne girmeyi gözüm kesmedi, çok net olarak bunu söyleyebilirim.
Sağ olun. Dediğiniz şekilde verileri revize ettim.
 
Veriler yine zorlu bir yapıda.
Eklediğim dosyaları inceleyin.

Sadece hastalık izni ve yıllık izin için şartları oluşturdum. (alanlar doğru mu kontrol edersiniz)
Geri kalan izinlerin 3 alanını siz gerekli şekilde çoğaltabilirsiniz diye düşünüyorum.

Bu işlemlere hiç gerek kalmadan, bir çalışanın her iznini ayrı satıra kaydedip, izin türünü yazsanız yeterli olacakken, Excel gereksiz yere kodlarla yorulmaktadır.

Çalışma prensibi:
Her iki dosyayı bilgisayarınızda aynı klasöre çıkarınız.
Açık isimli dosyayı çalıştırınız.
E1 hücresinden izin türünü seçip, Rapor butonuna basınız.

Bilginize.
 

Ekli dosyalar

Emeğinize sağlık. İnceliyorum. Çalışan izleyici sayfası run time error veriyor. Rapor tuşuna basınca.
Veriler yine zorlu bir yapıda.
Eklediğim dosyaları inceleyin.

Sadece hastalık izni ve yıllık izin için şartları oluşturdum. (alanlar doğru mu kontrol edersiniz)
Geri kalan izinlerin 3 alanını siz gerekli şekilde çoğaltabilirsiniz diye düşünüyorum.

Bu işlemlere hiç gerek kalmadan, bir çalışanın her iznini ayrı satıra kaydedip, izin türünü yazsanız yeterli olacakken, Excel gereksiz yere kodlarla yorulmaktadır.

Çalışma prensibi:
Her iki dosyayı bilgisayarınızda aynı klasöre çıkarınız.
Açık isimli dosyayı çalıştırınız.
E1 hücresinden izin türünü seçip, Rapor butonuna basınız.

Bilginize.
Emeğinize sağlık. E1 hücresinden izin türünü seçip, Rapor butonuna basınca run time error veriyor. Diğer sayfaları inceliyorum. Birşeyler öğrenebilirmiyim diye.
 
6 numaralı mesajımda bahsettiğim kısım nedeniyle hata almaktasınız.

Sadece hastalık izni ve yıllık izin için şartları oluşturdum. (alanlar doğru mu kontrol edersiniz)
Geri kalan izinlerin 3 alanını siz gerekli şekilde çoğaltabilirsiniz diye düşünüyorum.

E1 hücresinde "Rapor" seçeneğini seçtiğinizde, o kısma gelen ilgili 3 sütunu kodlara ilave etmeniz gerekir.
Kodların ilgili bloğu aşağıdaki gibi:
Kod:
You must log in to view
(5 satır)
Ben "Hastalık İzni" ve "Yıllık İzin" için üstteki tanımlamaları yaptım ama sütunların doğruluğuna emin değilim.

Burada yapılan husus, E1 hücresinde seçtiğiniz izin türüne göre, "Kapalı" dosyadaki 3 sütunun hangisinin olduğunu referans göstermek şeklinde.
Bunu da en iyi siz bilmektesiniz.

Excel'de doğru veri yapısı aşağıdaki gibi olmalıdır:

1621891157722.webp
 
Moderatörün son düzenlenenleri:
6 numaralı mesajımda bahsettiğim kısım nedeniyle hata almaktasınız.



E1 hücresinde "Rapor" seçeneğini seçtiğinizde, o kısma gelen ilgili 3 sütunu kodlara ilave etmeniz gerekir.
Kodların ilgili bloğu aşağıdaki gibi:
Kod:
You must log in to view
(5 satır)
Ben "Hastalık İzni" ve "Yıllık İzin" için üstteki tanımlamaları yaptım ama sütunların doğruluğuna emin değilim.

Burada yapılan husus, E1 hücresinde seçtiğiniz izin türüne göre, "Kapalı" dosyadaki 3 sütunun hangisinin olduğunu referans göstermek şeklinde.
Bunu da en iyi siz bilmektesiniz.

Excel'de doğru veri yapısı aşağıdaki gibi olmalıdır:

1621891157722.webp
Bahsettiğiniz kodlar destekacik.xlsx bahsettiğiniz kodlar module 1 içerisinde galiba.
If Sheet1.Range("E1").Value = "Hastalık İzni" Then
verialani = "[Sıhhi İzin Başlama tarihi], [Sıhhi İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Sıhhi İzin Toplam]"
ElseIf Sheet1.Range("E1").Value = "Yıllık İzin" Then
verialani = "[Yıllık İzin Başlangıç tarihi], [Yıllık İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Kullanılan izin]"
End If
 
Moderatörün son düzenlenenleri:
Kod:
You must log in to view
(2 satır)

Şeklindeki olan kısımları alt alta çoğaltın.

Örneğin rapor seçilince kapalı dosyadaki başlık ne ise karşılığı, o alanları da [] içine yazın. Bu kadar.
Ama önerim eklediğim resimdeki gibi bir veritabanında veri tutmanız olur.
 
Kod:
You must log in to view
(2 satır)

Şeklindeki olan kısımları alt alta çoğaltın.

Örneğin rapor seçilince kapalı dosyadaki başlık ne ise karşılığı, o alanları da [] içine yazın. Bu kadar.
Ama önerim eklediğim resimdeki gibi bir veritabanında veri tutmanız olur.
Üstadım, emeğine sağlık.


"Örneğin rapor seçilince kapalı dosyadaki başlık ne ise karşılığı, o alanları da [] içine yazın. Bu kadar.
Ama önerim eklediğim resimdeki gibi bir veritabanında veri tutmanız olur."
Dosyada düzeltme yaptım, orda da hata yaptım herhalde. Onu da inceleyeyim.

Modulede alt alta kopyalayınca kodlar böyle oluştu, ancak rapor butonuna tıklayınca bir şey eksik ondan aşağıdaki hataları veriyor.
If Sheet1.Range("E1").Value = "Hastalık İzni" Then
verialani = "[Sıhhi İzin Başlama tarihi], [Sıhhi İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Sıhhi İzin Toplam]"
ElseIf Sheet1.Range("E1").Value = "Yıllık İzin" Then
verialani = "[Yıllık İzin Başlangıç tarihi], [Yıllık İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Kullanılan izin]"
ElseIf Sheet1.Range("E1").Value = "Mazeret İzin" Then
verialani = "[Mazeret İzin Başlangıç tarihi], [Mazeret İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Mazeret İzin Toplamı]"
ElseIf Sheet1.Range("E1").Value = "Günlük İzin" Then
verialani = "[Günlük İzin Başlangıç tarihi], [Günlük İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Günlük İzin Toplamı]"
ElseIf Sheet1.Range("E1").Value = "Doğum İzin" Then
verialani = "[Doğum İzin Başlangıç tarihi], [Doğum İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Doğum İzin Toplamı]"
End If

Bu kodu da kopylalayıp çoğaltmak gerekir mi.
If Sheet1.Range("E1").Value = "Hastalık İzni" Then
verialani = "[Sıhhi İzin Başlama tarihi], [Sıhhi İzin Bitiş tarihi], '" & Sheet1.Range("E1") & "', [Sıhhi İzin Toplam]"


Doğum izni, Tatil, İdari izin, Hafta Tatili, Bayram Tatili, Mazeret izni bu hatayı veriyor.
Microsoft Visual Basic
Run-time error '-2147217900 (80040e14)':
SELECT deyimi, saklı bir sözcük veya yanlış yazılmış veya eksik bir bağımsız değişken içeriyor veya noktalama işareti yanlış.

Yıllık izin, günlük izin bu hatayı veriyor.
Microsoft Visual Basic
Run-time error -2147217865 (80040e37)':
Microsoft Access veritabanı altyapısı 'Sayfa1$' nesnesini bulamadı. Nesnenin varolduğundan ve adını ve yolunun adını doğru
yazdığınızdan emin olun. 'Sayfa1$' yerel nesne değilse, ağ bağlantınızı denetleyin veya sunucu yöneticisine başvurun.
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Veritabanı yapısını değiştirdiğiniz (istediğim ve Excel'in istediği yapıya çekmeniz) için kod yapısı artık daha sadeleşti.

EK'teki örneği inceleyiniz.
Açılan Listeden izin türünü seçip, Rapor butonuna tıklamanız yeterli olacaktır.

Lakin bu yöntem oldukça ince detaylar barındırır.
Mesela başlıkta yazacağınız bir fazladan boşluk (yaptığınız başlıklarda vardı mesela) kodların hata vermesine sebep olacaktır.

Mantığını anlamaya çalışırsanız oldukça fayda sağlarsınız.
 

Ekli dosyalar

  • kapali1.xlsx
    kapali1.xlsx
    12.6 KB · Görüntüleme: 7
  • 1621977259425.webp
    1621977259425.webp
    7.8 KB · Görüntüleme: 7
Veritabanı yapısını değiştirdiğiniz (istediğim ve Excel'in istediği yapıya çekmeniz) için kod yapısı artık daha sadeleşti.

EK'teki örneği inceleyiniz.
Açılan Listeden izin türünü seçip, Rapor butonuna tıklamanız yeterli olacaktır.

Lakin bu yöntem oldukça ince detaylar barındırır.
Mesela başlıkta yazacağınız bir fazladan boşluk (yaptığınız başlıklarda vardı mesela) kodların hata vermesine sebep olacaktır.

Mantığını anlamaya çalışırsanız oldukça fayda sağlarsınız.
Açılan Listeden izin türünü seçip, Rapor butonuna tıklayınca yine hata verdi.
 
Eklediğim iki dosyayı aynı klasöre çıkarıp denediğinizde mi hata aldınız?
Ben işlemi deneyerek ekledim dosyaları.

Hatanın sebebini anlayabilmek adına, kapsamlı olarak görecek şekilde ekran resmini ekler misiniz?
 

Ekli dosyalar

  • hata.webp
    hata.webp
    41.2 KB · Görüntüleme: 4
Benim eklediğim "KAPALI" dosyayı kullanmamışsınız ya da kapalı olan sayfadaki verilerin yer aldığı sayfanın adını değiştirmişsiniz.

Bu yöntemde;
Sayfa adlarının ve 1. Sütunda yer alan başlıkların değiştirilmemesi gerekir. Eğer değişiklik yapacaksanız, kodlardan da değiştirmelisiniz.

Ya gerçek dosyanızı ekleyin ona göre kodları yazalım ya da verilerinizi eklediğim dosyaya herhangi bir sayfa adı ve sütun başlıkları değişikliği yapmadan ekleyin.

3. seçenek olarak ise, kodları kendi sayfa adınız ve sütun başlıklarına göre değiştirin.
 
Benim eklediğim "KAPALI" dosyayı kullanmamışsınız ya da kapalı olan sayfadaki verilerin yer aldığı sayfanın adını değiştirmişsiniz.

Bu yöntemde;
Sayfa adlarının ve 1. Sütunda yer alan başlıkların değiştirilmemesi gerekir. Eğer değişiklik yapacaksanız, kodlardan da değiştirmelisiniz.

Ya gerçek dosyanızı ekleyin ona göre kodları yazalım ya da verilerinizi eklediğim dosyaya herhangi bir sayfa adı ve sütun başlıkları değişikliği yapmadan ekleyin.

3. seçenek olarak ise, kodları kendi sayfa adınız ve sütun başlıklarına göre değiştirin.
"Veritabanı yapısını değiştirdiğiniz (istediğim ve Excel'in istediği yapıya çekmeniz) için kod yapısı artık daha sadeleşti." hatta siz demiştiniz ben sadece burda değişiklik yapmıştım. Sayfa adlarının ve 1. Sütunda yer alan başlıklarında ve başka bir yerde değişiklik yapmadım. Üstadım.
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Genel Excel Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
22
Üst