AccessTr.neT
Önce Bul Sonra Kaydet Veya Farklı Kaydet - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Önce Bul Sonra Kaydet Veya Farklı Kaydet (/konu-once-bul-sonra-kaydet-veya-farkli-kaydet.html)

Sayfalar: 1 2 3 4 5 6 7


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - comp_wolf - 26/04/2019

(26/04/2019, 10:56)haliliyas yazdı: "Range("G6").Value" yerine Range("G6").Value denediniz mi?
ilk ve son -"- çift tırnak işaretini kaldırarak

üstat dediğiniz şekilde 
"Range("G6").Value" yerine Range("G6").Value denediniz mi
denedim ama olmadı tarih değişince 3. bir exel dosyası oluşturuyor.
ilk açılışta dosya ismini G6 ve G7 hücrelerinde yazana göre açıyor yaa,
acaba başka tarihde aynı dosya açıldığı zaman dosya ismi içinde G6 hücresinde yazan geçiyor ise şarta devam edecek geçmiyor ise else ile sonraki adıma geçecek ?
kodlar buraya kadar tamam ama bir tek dosya ismi içinde G6 hücresinde yazan geçiyor mu kodunu ekleyebilirsek olacak... Img-grin


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - berduş - 26/04/2019

 Range("G6").Value alanı tarih mi? 
bana  Range("G6").Value alanının değerini ve bu alana göre yaptığınız isimlendirme örneğini yazar mısınız?
herhangi bir veriyi metne çevirmek için CStr() kullanılır. aşağıdaki kodu dener misiniz?

Cstr( Range("G6").Value)


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - comp_wolf - 26/04/2019

(26/04/2019, 11:17)haliliyas yazdı:  Range("G6").Value alanı tarih mi? 
bana  Range("G6").Value alanının değerini ve bu alana göre yaptığınız isimlendirme örneğini yazar mısınız?
herhangi bir veriyi metne çevirmek için CStr() kullanılır. aşağıdaki kodu dener misiniz?

Cstr( Range("G6").Value)

üstat dediğiniz gibi denedim kodu, yine uyarı veriyor, adlı bir dosya ismi zaten mevcut var.  değiştirmek istermisiniz diye soruyor ama dosya ismini ilk açılışın üzerine değil de yeni tarihe ekliyor.
ben size kodun tamını göndereyim dediğiniz gibi.


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - berduş - 26/04/2019

1 -
StrDosyaAdi = Dir$(CurrentProject.Path & "\*.xlsm")
If StrDosyaAdi <>"" and InStr(StrDosyaAdi,  CStr(Range("G6").Value), 1 )>0 Then 'hem dosya adı varsa hem de dosya adında G6 hücresinin değeri varsa
GoTo 30  'xlsm varsa yapılacaklar
Else
GoTo 20  'yoksa yapılacaklar
End If
2 - diyelim ki etkin Excel dosyasının olduğu klasörde *.xlsm dosyası var ve isminde G6 değeri de var, o zaman ne yapacak dosyayı güncelleyip kapatacak mı?
dosyayı güncelleyip adını mı tarihe göre değiştirecek?


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - comp_wolf - 26/04/2019

(26/04/2019, 12:32)haliliyas yazdı: 1 -
StrDosyaAdi = Dir$(CurrentProject.Path & "\*.xlsm")
If StrDosyaAdi <>"" and InStr(StrDosyaAdi,  CStr(Range("G6").Value), 1 )>0 Then 'hem dosya adı varsa hem de dosya adında G6 hücresinin değeri varsa
GoTo 30  'xlsm varsa yapılacaklar
Else
GoTo 20  'yoksa yapılacaklar
End If
2 - diyelim ki etkin Excel dosyasının olduğu klasörde *.xlsm dosyası var ve isminde G6 değeri de var, o zaman ne yapacak dosyayı güncelleyip kapatacak mı?
dosyayı güncelleyip adını mı tarihe göre değiştirecek?

üstat elinize sağlık,
1 de kullandığımız kod ile hem dosya adı varsa hemde dosya adında G6 hücresinin değeri varsa
2 de diyelim ki etkin exel dosyasının olduğu klasörde *.xlsm dosyası var ve isminde G6 değeri de var ise o zaman dosyayı güncelleyip kapatacak. eğer yok ise else deki kod ile yani yeni klasör açıp dosyayı oraya kaydedecek üstat.
ben sizin dediğiniz gibi yaptım kodları ama üzerine kaydediyor ilk açılışta üzerine kaydetmeden yeni dosya oluşturması gerekti.
If StrDosyaAdi <>"" and InStr(StrDosyaAdi,  CStr(Range("G6").Value), 1 )>0 Then 'hem dosya adı varsa hem de dosya adında G6 hücresinin değeri varsa
bu kod da hem dosya adı varsa hem de G6 hücresinin değeri varsa diyor yaa biz sadece G6 değeri varsa yapamıyormuyuz bu kod kısmını acaba ?
yani biz o kırmızı ile yazılı kod kısmında and InStr(StrDosyaAdi, kısmı nasıl kaldıra biliriz?


Cvp: Önce Bul Sonra Kaydet Veya Farklı Kaydet - berduş - 26/04/2019

yalnız bir şeyi belirtmem lazım 
StrDosyaAdi = Dir$(ThisWorkbook.Path & "\*.xlsm") sadece .xlsm ile biten ilk dosyayı alır
5 tane Excel dosyası olsa bile  
StrDosyaAdi =excel1.xlsm olur diğer dosyaları incelemez.
klasörde tek Excel dosyası varsa sorun değil ama birden fazla Excel dosyasında sadece kodun bu kısmını yazarsanız işe yaramaz.
asıl kod aşağıdak gibi olmalı.

StrDosyaAdi = Dir$(ThisWorkbook.Path & "\*.xlsm") 

Do While StrDosyaAdi <> ""
'.....yapılacak işler mesela If  InStr(StrDosyaAdi,  CStr(Range("G6").Value), 1 )>0 Then

   StrDosyaAdi = Dir$
Loop
siz  and instr().... kısmı olsun mu istiyorsunuz olmasın mı tam anlamadım son cümleniz ve ondan 1 önceki cümlenizden zıt anlamlar çıkıyor.)