• DİKKAT

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

Numaratör ve Eksik Kodlar

Katılım
24 Temmuz 2011
Mesajlar
16
Excel Vers. ve Dili
2016
Türkçe
Arkadaşlar merhaba.
Öncelikle hepinize paylaşımlarınız için teşekkür ederim. Sitenizden öğrendiğim kodlar ve vb ile ihtiyaçlarımın büyük kısmını giderdim fakat araştırıp bulmama rağmen anlayamadığım için bazı eksiklikler kaldı.

Aşağıdakiler konusunda yardımcı olabilirseniz sevinirim.
1- Resimde bir kod hatası var, bir türlü gideremedim ve böyle bir çözüm ürettim. "kullanma" isminde oluşturduğum kodu sildiğim zaman "makro2" isimli kod çalışmıyor zira "makro2" kodlarının son satırındaki end sub'ın altında sarı ile işaretli çizgiler oluşmuyor ve kod çalışmıyor. Kod sırasında mı bir hata yaptım acaba?
2- Bu dosyayı xlsx fromatında kaydedince, kaydettiğim dosyayı açamıyorum. xlsx için ne yapmam gerekiyor?
3- Alttaki tablo müşteri kopyası ve üstte yazılanlar aşağıda da çıkıyor. "=" komutunu kullandım. Fakat görüldüğü üzere üstteki hücre boş ise altta "0" çıkıyor. Üstteki hücreye değer girilmediği zaman alttaki hücrenin de boş olması sağlanabilir mi?
4- "Farklı Kaydet" butonu "Arıza Takip No" ne ise, o isimde bir dosyayı masaüstümdeki servis klasörüne xls formatında kaydediyor. Her seferinde arıza takip no'yu elle girmek gerekiyor. "Arıza Takip No" butonunu her tıkladığımda servis klasörü içindeki en büyük rakamlı dosya isminden 1 fazla bir sayısı yandaki kutuya yazmasını sağlayacak bir numaratör nasıl yaparım ve mantığı ne olur? Ya da o sayısı 1 artıracak farklı bir öneriniz var mı?

Uzun bir sorular silsilesi oldu, kusuruma bakmayın. Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

  • sorun.JPG
    sorun.JPG
    55.4 KB · Görüntüleme: 23
  • Örnek.xls
    Örnek.xls
    58.5 KB · Görüntüleme: 18
Arkadaşlar merhaba.
Öncelikle hepinize paylaşımlarınız için teşekkür ederim. Sitenizden öğrendiğim kodlar ve vb ile ihtiyaçlarımın büyük kısmını giderdim fakat araştırıp bulmama rağmen anlayamadığım için bazı eksiklikler kaldı.

Aşağıdakiler konusunda yardımcı olabilirseniz sevinirim.
1- Resimde bir kod hatası var, bir türlü gideremedim ve böyle bir çözüm ürettim. "kullanma" isminde oluşturduğum kodu sildiğim zaman "makro2" isimli kod çalışmıyor zira "makro2" kodlarının son satırındaki end sub'ın altında sarı ile işaretli çizgiler oluşmuyor ve kod çalışmıyor. Kod sırasında mı bir hata yaptım acaba?
2- Bu dosyayı xlsx fromatında kaydedince, kaydettiğim dosyayı açamıyorum. xlsx için ne yapmam gerekiyor?
3- Alttaki tablo müşteri kopyası ve üstte yazılanlar aşağıda da çıkıyor. "=" komutunu kullandım. Fakat görüldüğü üzere üstteki hücre boş ise altta "0" çıkıyor. Üstteki hücreye değer girilmediği zaman alttaki hücrenin de boş olması sağlanabilir mi?
4- "Farklı Kaydet" butonu "Arıza Takip No" ne ise, o isimde bir dosyayı masaüstümdeki servis klasörüne xls formatında kaydediyor. Her seferinde arıza takip no'yu elle girmek gerekiyor. "Arıza Takip No" butonunu her tıkladığımda servis klasörü içindeki en büyük rakamlı dosya isminden 1 fazla bir sayısı yandaki kutuya yazmasını sağlayacak bir numaratör nasıl yaparım ve mantığı ne olur? Ya da o sayısı 1 artıracak farklı bir öneriniz var mı?

Uzun bir sorular silsilesi oldu, kusuruma bakmayın. Yardımlarınız için şimdiden teşekkür ederim.

merhaba
1 sorunuz için
Kod:
Option Explicit
bu kod bahsettiğiniz kod'un hemen üstünde olduğu için hata alıyorsunuz.
Module1'deki kodları bununla değiştirin
Kod:
Option Explicit
Sub farklı_kaydet()
Dim ts
ts = "C:\Users\Gele\Desktop\Servis\"
ActiveWorkbook.SaveAs Filename:=(ts & Sheets("Sayfa1").Range("AF5")) & ".xls"
End Sub
Sub Makro1()
Range("AB4") = Format(Now, " dd.mm.yyyy")
Range("AB4").Select
End Sub
Sub Makro2()
Range("AF4") = Format(Now, " dd.mm.yyyy")
Range("AF4").Select
End Sub
Sub Kullanma()
Range("AF4") = Format(Now, " dd.mm.yyyy")
Range("AF4").Select
End Sub
Sub yazdır()
Dim ts
ts = "Sayfa1"
Sheets(ts).PrintOut Copies:=1
End Sub
2. sorunuzun cevabı ise şu : 2007 ve üstü sürümlerde makrolu dosyayı direk kaydedemiyorsunuz bunun yerine .xlsm yani makro içerebilen dosya şeklinde kayıt yapmanız gerekiyor 2007 için resimli anlatım yapmıştım tıklayın lütfen
3. sorunuzun yanıtı ise
Kod:
=EĞER(E3="";"";E3)
bu şekilde yapabilirsiniz
4. sorunuzu tam anlamadım biraz daha açıklama istesem olur mu_?
 
İhsan Bey öncelikle çok teşekkür ederim.
1. "Option Explicit" ne olduğunu bilmediğim için gördüğümü kopyalamıştım, şimdi düzeldi.
2. Anladığım kadarıyla kaydetme türünü xls yerine xlsm yaptığımda sorun düzelecek.
3. Bu komutu nasıl kullanacağımı anlamadım, özür dilerim.
4. Müşteri ürünü için aradığında arıza takip numarasını soruyoruz ve servis klasörü içindeki söylediği numaralı dosyayı açıp yazdığımız bilgilere göre cevap veriyoruz. Her yeni ürün alımında, servis klasörü içindeki en büyük sayılı dosyanın ne olduğunu bulup, onun bir fazlasını yeni arıza takip numarası olarak ilgili kutuya yazıyoruz (servis klasörü içindeki son xls dosyası 2069 ise yenisine 2070 yazıp, 2070.xls olarak aynı klasöre kaydediyoruz.) Ben istiyorum ki "Arıza Takip No" diye bir buton oluşturdum, o butona tıkladığım zaman AF5 kutusuna 2070 diye kendisi yazsın. Fakat araştırma yaparken neyi nasıl yapacağımı tam bulamadım. 2070 ismini servis klasörüne bakarak mı yapabiliyor ya da aynı sayma işlemini kitap1 sayfasında gizli bir sütunda mı yapması lazım bilemiyorum. Sadece Arıza Takip No isimli butona bastığımda AF5 kutusuna 2070 yazsın.

Ancak bu kadar anlatabiliyorum İhsan Bey. Tekrar teşekkür ederim.
 
dosyanızı hazırlıyorum bir taraftan.
şimdi size şöyle bir şey sorayım.
4. sorunuzla alakalı
şimdi mesela 2069 nolu dosya var ise bunu neye göre kontrol ettireceğiz.
hücreye yazdığınız numara yok ise o numarayı kaydetse olur mu_?
hücrede yazdığınız numara var ise 1 numara üstünü yazdırarak kayıt yaparız oda var ise gene bir üstüne baktırabiliriz sanırım.
yada siz bu numaraları takip edin kendinizin verdiği bir numaraya göre kayıt yapsın.
her iki şekildede sizden tam yok istiyorum
örneğin
gibi
 
dosyanızı hazırlıyorum bir taraftan.
şimdi size şöyle bir şey sorayım.
4. sorunuzla alakalı
şimdi mesela 2069 nolu dosya var ise bunu neye göre kontrol ettireceğiz.
hücreye yazdığınız numara yok ise o numarayı kaydetse olur mu_?
hücrede yazdığınız numara var ise 1 numara üstünü yazdırarak kayıt yaparız oda var ise gene bir üstüne baktırabiliriz sanırım.
yada siz bu numaraları takip edin kendinizin verdiği bir numaraya göre kayıt yapsın.
her iki şekildede sizden tam yok istiyorum
örneğin gibi

İşte İhsan Bey, ben neye göre kontrol ettirebileceğimi bilmiyorum. Sadece AF5 hücresine servis klasöründeki en yüksek sayının 1 fazlasını yazmasını istiyorum. Mantıksız birşey mi istiyorum onu da bilmiyorum aslında, excel'de çok zayıfım.
- Hücreye yazığım numara yok ise diye birşey diyemiyorum zira o numara servis klasöründeki en yüksek sayılı dosyanın 1 fazlası olması gerekiyor.
- Hücreye yazdığı numara var ise de olmuyor zira her müşteri için tek bir arıza kayıt numarası girmemiz lazım. Fakat varsa 1 üstü, o da varsa 1 üstü şeklinde kayıt dosya ismini ilgilendiriyor sanırım, aynı zamanda AF5 hücresindeki sayıyı da değiştirecekse o da olur sanırım.
- şu anda zaten ben servis klasöründeki en yüksek sayıya bakıyorum ve 1 fazlasını AF5 klasörüne yazıp "farklı kaydet" tuşuna basıyorum.

Umarım yardımcı olmuştur İhsan Bey, bu saatte bu kadar uğraşıyorsunuz, nasıl teşekkür edeceğimi bilemiyorum. Sağolun.
 
İhsan Bey aklıma bir şey geldi fakat olabilitesi hakkında hiçbir fikrim yok. Saçma ise lütfen dikkate almayınız.

Herhangi bir sütunda biz bu sayıları tutsak, gizli bir sütunda mesela. Atıyorum bb1 sütununda 2069 yazıyor. Biz hem bb2 sütununa hem de af5 sütununa 2070 sonra hem bb3 sütununa 2071 hem de yine af5 sütununa 2071 şeklinde bir şey olabilir mi?
 
İşte İhsan Bey, ben neye göre kontrol ettirebileceğimi bilmiyorum. Sadece AF5 hücresine servis klasöründeki en yüksek sayının 1 fazlasını yazmasını istiyorum. Mantıksız birşey mi istiyorum onu da bilmiyorum aslında, excel'de çok zayıfım.
- Hücreye yazığım numara yok ise diye birşey diyemiyorum zira o numara servis klasöründeki en yüksek sayılı dosyanın 1 fazlası olması gerekiyor.
- Hücreye yazdığı numara var ise de olmuyor zira her müşteri için tek bir arıza kayıt numarası girmemiz lazım. Fakat varsa 1 üstü, o da varsa 1 üstü şeklinde kayıt dosya ismini ilgilendiriyor sanırım, aynı zamanda AF5 hücresindeki sayıyı da değiştirecekse o da olur sanırım.
- şu anda zaten ben servis klasöründeki en yüksek sayıya bakıyorum ve 1 fazlasını AF5 klasörüne yazıp "farklı kaydet" tuşuna basıyorum.

Umarım yardımcı olmuştur İhsan Bey, bu saatte bu kadar uğraşıyorsunuz, nasıl teşekkür edeceğimi bilemiyorum. Sağolun.

merhaba
module'deki kodları bununla değiştirin
bakalım istediğiniz gibi mi olmuş
Not : Örnek dosya'da Sayfa2'de klasördeki excel dosyalarını listeliyor.
Buradaki listelenen isimlerin bir üstünü Af5 hücresine yazar.
Masaüstüne Servis adlı bir klasör olmalı
Kod:
Option Explicit
Sub farklı_kaydet()
Dim ts, kaplan, trabzonspor
Dim ds, dc, f, s, dosya
trabzonspor = 1
Sheets("Sayfa2").Range("A:A").ClearContents
Set kaplan = CreateObject("Wscript.Shell")
ts = kaplan.specialfolders.Item("Desktop")
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.Getfolder(ts & "\Servis")
Set dc = f.Files
For Each dosya In dc
Sheets("Sayfa2").Cells(trabzonspor, "A") = Replace( _
dosya.Name, ".xls", "")
trabzonspor = trabzonspor + 1
Next
Sheets("Sayfa1").Range("AF5") = WorksheetFunction.Max( _
Sheets("Sayfa2").Range("A:A")) + 1
ActiveWorkbook.SaveAs Filename:=(ts & "\Servis\" & Sheets("Sayfa1").Range("AF5")) & ".xls"
Application.DisplayAlerts = False
Sheets("Sayfa2").Delete: Sheets("Sayfa3").Delete
ActiveWorkbook.Save
End Sub
Sub Makro1()
Range("AB4") = Format(Now, " dd.mm.yyyy")
Range("AB4").Select
End Sub
Sub Makro2()
Range("AF4") = Format(Now, " dd.mm.yyyy")
Range("AF4").Select
End Sub
Sub Kullanma()
Range("AF4") = Format(Now, " dd.mm.yyyy")
Range("AF4").Select
End Sub
Sub yazdır()
Dim ts
ts = "Sayfa1"
Sheets(ts).PrintOut Copies:=1
End Sub
 
İhsan Bey merhaba.
Benim talep ettiğimden daha güzel ve pratik bir çözüm üretmişsiniz, çok teşekkür ederim, çok güzel olmuş.
"Arıza Takip No" isimli butona da ihtiyaç kalmadı.
Kusursuz çalışıyor.
Tekrar teşekkür eder, iyi çalışmalar dilerim.
 
İhsan Bey merhaba.
Benim talep ettiğimden daha güzel ve pratik bir çözüm üretmişsiniz, çok teşekkür ederim, çok güzel olmuş.
"Arıza Takip No" isimli butona da ihtiyaç kalmadı.
Kusursuz çalışıyor.
Tekrar teşekkür eder, iyi çalışmalar dilerim.

rica ederim
:yazici:
 
Geri
Üst