kaydet makrosu

Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Merhaba ,
Turizm şirketinde muhasebe yapmaktayım. Tüm yıl boyunca yurtdışından gelen rezervasyonları rezervasyon programına girmeden excele işliyorum. amaç şu ana kadar gelen rezervasyonlar için ne kadarlık bir fatura keseceğimi önceden bilmek.Bunun için Kitap1 dosyamın altında yeni ve dbase altında 2 adet sayfa açtım.
Yeni isimli Sayfada;
C3 Rezervasyon Tipi
C4 Geliş Tarihi
C5 Dönüş Tarihi
C6 Paket
C7 Müşteri No
C8 Gün
C9 Kategori
C10 Pax
C11 Fiyat
C12 Tutar
bölümleri var
C13'e ise 12 adet seçenek düğmesi var.Bunlara tüm ayların adlarının tanımladım ve
=EÐER(C13=1;"OCAK";EÐER(C13=2;"ÞUBAT";EÐER(C13=3;"MART";EÐER(C13=4;"NİSAN";EÐER(C13=5;"MAYIS";EÐER(C13=6;"HAZİRAN";EÐER(C13=7;"TEMMUZ";EÐER(C13=8;"AÐUSTOS";"""?")))))))) formülünü atadım.
Bu bilgilerinde dbase sayfasına girmesi için aşağıdaki modülü visual basıc yazdım ve bir butona bağladım.
Sub save()
Application.ScreenUpdating = False
Sheets("yeni").Select
Range("c2:c13").Select
Selection.Copy
Sheets("dbase").Select
Range("A2").Select
Selection.PasteSpecial , , , True
Range("c2:c13").clear
clear
Application.ScreenUpdating = True
ilan
End Sub


Sub ilan()
yer = Worksheets("yeni").Range("c6").Value
MsgBox " " & yer & "rezervasyon kayıdı yapıldı"
ActiveWorkbook.save
End Sub

Sub clear()
Application.ScreenUpdating = False
Sheets("yeni").Select
Range("c3:c12").Select
Selection.ClearContents
Range("c13").Select
Range("c2").Select
ActiveCell.FormulaR1C1 = "=Now()"
Range("c3").Select
End Sub

Sorum bilgi girişinden sonra kaydet dediğimde dbase sayfasının a2:k2 aralığına bunlar kaydediliyor. Fakat;
1. her yeni bilgi girişinde dbase sayfamın a2:k2 satırının üzerine yazdırıyor.Ben ise eski bilgilerin sabit kalıp yeni rezervasyonların altına kaydetmesini istiyorum.
2. yeni sayfamın c8 satırına girdiğim c5-c4 formülü ile b12 satırında bulunan c8*c10*c11formülü her kaydet dediğimde kayboluyor.
3. c13 de bulunan seçenek butonlarındaki ayları işaretlediğimde dbase sayfasına 0 olarak gelmektedir,fakat ben seçtiğim butonun adının dbase e gelmesini istiyorum
Þimdiden yardımlarınız için teşekkür ederim. Detaylı anlatmak istediğim için biraz uzun oldu, kusura bakmayın

Redne
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ã?rnek dosya ekleyebilirmisiniz ?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
1 nolu sorunuza cevap olarak sanırım makronuza aşağıdaki ilave yeterli olacaktır.

[vb:1:b2aacca4b6]Sub save()
a=worksheetfunction.countA(sheets("dbase").range("A2:A65000")) +2
Application.ScreenUpdating = False
Sheets("yeni").Select
Range("c2:c13").Select
Selection.Copy
Sheets("dbase").Select
Range("A" & a).Select
Selection.PasteSpecial , , , True
Range("c2:c13").clear
clear
Application.ScreenUpdating = True
ilan
End Sub
[/vb:1:b2aacca4b6]

birde makronuzu sanırım makro kaydetten yaptınız,bu durumda kodlar biraz uzun olmaktadır. Yukarıdaki makronuzu kısaltmakta mümkün aşağıdaki gibi deneyiniz.

[vb:1:b2aacca4b6]a=worksheetfunction.countA(sheets("dbase").range("A2:A65000")) +2
Application.ScreenUpdating = False
Sheets("yeni").Range("c2:c13").copy
Sheets("dbase").Range("A" & a).PasteSpecial , , , True
Range("c2:c13").clear
clear
Application.ScreenUpdating = True
ilan
End Sub
[/vb:1:b2aacca4b6]

NOT:Sn Raider'in belirttiği gib örnek dosya eklemeniz daha açıklayıcı olacaktır.
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Sayın leventm,
1. soruma verdiğiniz yanıt için çok teşekkür ederim. 1 sorundaki save sorununu sayenizde çözmüş oldum.
Sayın raider,
tabii ki şu an deneme aşamasında olan kitap1 dosyamı ek olarak göndermek istiyorum ama nasıl göndermem gerektiğini bilmiyorum. beni yönlendirirseniz hemen gönderirim. Size de ilginiz için teşekkür ederim
Redne
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
=EÐER(C13=1;"OCAK";EÐER(C13=2;"ÞUBAT";EÐER(C13=3;"MART";EÐER(C13=4;"NİSAN";EÐER(C13=5;"MAYIS";EÐER(C13=6;"HAZİRAN";EÐER(C13=7;"TEMMUZ";EÐER(C13=8;"AÐUSTOS";"""?")))))))) formülünü atadım.

c13 de bulunan seçenek butonlarındaki ayları işaretlediğimde dbase sayfasına 0 olarak gelmektedir,fakat ben seçtiğim butonun adının dbase e gelmesini istiyorum
Ben de anladığım kadarıyla 3ncü soruya bir cevap vermeye çalışayım.

Yukarıdaki alıntıda belirtilen formül yerine aşağıdakini kullanın.

Kod:
=metneçevir("01." & C13 & ".1900";"aaaaaa")
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosya eklemeyi aşağıdaki gibi yapabilirsiniz.

1-Mesajınızı yazdıktan sonra sayfanın en altındaki "özinleme" butonuna basın.
2-Çıkan sayfanın en altındaki "bir ataç ekle" butonuna basın.
3-Çıkan sayfadada "gözat" butonu ile dosyayı ekledikten sonra "gönder" butonuna basın.

Not:Eğer dosyanın kapasitesi fazla ise sıkıştırarak eklersiniz.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
1-Mesajınızı yazdıktan sonra sayfanın en altındaki "özinleme" butonuna basın.
2-Çıkan sayfanın en altındaki "bir ataç ekle" butonuna basın.
3-Çıkan sayfadada "gözat" butonu ile dosyayı ekledikten ve "Ataç ekle" butonuna bastıktan sonra "gönder" butonuna basın.
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Sayın raider,

gönderdiğiniz formülü denedim fakat olmadı,ama ilginiz için teşekkür ederim. Ayrıca alpen ve leventm e de teşekkür ederim
redne
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@redne;

Sonuç ayrı sayfaya yazılıyormuş, o zaman;

Kod:
=metneçevir("01." & Yeni!C$13 & ".1900";"aaaaaa")
Ancak, Yeni sayfasında C13 hücresindeki seçenek düğmelerininin hücre bağlantı referanslarını, yine C13 olarak vermeniz gerekiyor. Bunu yapmış olduğunuzu tahmin etmiştim ama, yapmamışsınız. (Seçenek düğmesinin üzerinde sağ tıklayıp, "biçimlendir" sonra da ......)
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
sayın raider,
haklısınız, ama gerçekten ilkkez seçenek düğmesini kullandım bunu yapmam gerektiğini bilmiyordum. Dediğinizi yaptım biçimlendirden denetimden $c$13 seçeneğini yazdım fakat ocak işaretli iken 1 şubat işaretliyken 2 çıkıyor bunları bulundukları ayın adında göstermem daha güzel olur. bunun için ne yapmalıyım.
Ayrıca acemiliğim için kusura bakmayın
redne
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
tuhaf.... aşağıdaki formulü yazdığınız halde hala olmuyor mu ?

=metneçevir("01." & Yeni!C$13 & ".1900";"aaaaaa")
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Sayın raider

malesef c13 alanına vermiş olduğunuz
=metneçevir("01." & Yeni!C$13 & ".1900";"aaaaaa")
yazmama rağmen hala rakkam çıkmakta

Redne :cry:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Birde aşağıdaki şekilde deneyin.


=METNEÇEVİR(TARİH("0";Yeni!$C$13;"0");"aaaa")
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ek'i inceleyiniz...
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Sayın Raider, Sayın Leventm
Yapmış olduğunuz yardımlar için teşekkür ederim. Malesef sayıyı ay adına döndüremedik. sayın raider düzelttiği dosyada da olmadığını gördüm. Olsun buda işime yarıyor. Sizlerin mesaailerini fazla harcamayayım. Ama 2. sorunuma da bir yardım edebilirseniz sevinirim.
Saygılarımla,
Redne
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Gerçekten tuhaf bir durum.

Bir de şöyle bir kontrol yapalım....

Başka, yeni bir Excel dosyasının A1 hücresine 5 yazın, B1 hücresine de;

Kod:
=metneçevir("01." & A$1 & ".1900";"aaaaaa")
Þimdi, B1 hücresinde ne görünüyor ?
 
Katılım
25 Ağustos 2004
Mesajlar
99
Herhalde Excel ayarlarından kaynaklanan bir durum bemim de başıma gelmişti.

Sayın Raider'in verdiği "=metneçevir("01." & A$1 & ".1900";"aaaaaa") " ifadesinde ".1900" den sonraki noktalı virgül yerine virgül kullanılması sorunu çözebilir.
 
Katılım
6 Ağustos 2004
Mesajlar
58
Excel Vers. ve Dili
office2003
Sayın raider
Söylediklerinizi başka bir sayfada yaptım b1 de 01.5.1900 tarihi çıkıyor. Bana da çok ilginç geldi.
Sayın mlakdag
sizin söylediğinizi , . : sekillerinde ayrı ayrı denedim fakat kabul etmiyor

Redne : :cry:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
01.5.1900 yazan hücrenin biçimlerdirmesini isteğe uyarlanmış seçeneklerinden aaaa şeklinde ayarlayın bu durumda mayıs yazacaktır.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İkinci sorunuz içinde clear makrosunu aşağıdaki gibi değiştirin.
[vb:1:3b7bafcdba] Sub clear()
Application.ScreenUpdating = False
Sheets("yeni").Select
Range("c2:c7").ClearContents
Range("c9:c11").ClearContents
Range("c13").Select
Range("c2").Select
ActiveCell.FormulaR1C1 = "=Now()"
Range("c3").Select
End Sub
[/vb:1:3b7bafcdba]

NOT:clear makronuzdaki aşağıdaki satır ile c3:c12 arasındaki formüllerde dahil tüm verileri siliyorsunuz. Sorunun sebebi bu,makrodaki bu satırı formüllere dokunmayacak şekilde parçalara ayırdım.

[vb:1:3b7bafcdba]Range("c3:c12").Select
[/vb:1:3b7bafcdba]
 
Üst