Skip to main content

AccessTr.neT


Önce Bul Sonra Kaydet Veya Farklı Kaydet

Önce Bul Sonra Kaydet Veya Farklı Kaydet

Shocked #7
(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
Cevapla
#8
 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)
Cevapla
Sad #9
(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.
Cevapla
#10
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?
Cevapla
Thumbs Up #11
(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?
Son Düzenleme: 26/04/2019, 14:47, Düzenleyen: comp_wolf.
Cevapla
#12
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.)
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task