Forum
Merhaba, konuda da belirttiğim gibi bir excel içerisinde bulunan sadece barkod ve adet 'lerden txt dosyası yani Nebim/Winner El Terminali Dosyası formatında hazırlayabilirmiyim acaba? şimdiden teşekkürler, iyi çalışmalar..
Merhaba Erdinç Bey
Bahsettiğiniz Nebim/Winner txt dosyasının formatı belli midir? Belli ise nasıldır? Eğer örnek verebilir iseniz yardımcı olmaya çalışacağım. Eğer yalnış anlamadıysam istediğiniz şey basit bir makro ile mümkün. Ancak ben Winner bilmediğim için dosya formatını görmem gerekiyor.
İyi Çalışmalar
Merhaba aşağıdaki gibi txt. dosyası içinde sırayla ilerliyor. İlk 13 hane barkod yanında adet'i belirtiyor. Normal Excel'de bulunan barkod ve adet leri bu şekilde nasıl hazırlayıp txt ye çevirebilirim. İlginiz için teşekkürler..
8698335002077 ,4 ,0 , , , ,
8698335002091 ,4 ,0 , , , ,
8698335002107 ,4 ,0 , , , ,
8698335002138 ,2 ,0 , , , ,
8698335002145 ,2 ,0 , , , ,
8698335002190 ,2 ,0 , , , ,
8698335002206 ,2 ,0 , , , ,
Eğer sadece bu ise makroya bile ihtiyaç olmayacaktır. Gördüğüm kadarıyla 6 sütun var. 1- barkod , 2- adet , 3- 0 , 4,5,6- boş
Bunun için barkod ve adet olan (A ve B sütununda) excel sayfanızı C ye 0 koyup alta kadar çekin. D,E,F ye bir boşluk koyup alta kadar çekin ve dosyayı Virgülle ayrılmış csv olarak kaydedin.
Notepad ile açtığınızda istediğiniz şekilde oluyor sanırım. Eğer aradakiler noktalı virgül olmaz ise tümünü değiştirden virgül yaparsınız.
Eğer bu ise xyz.txt olarak farklı kaydedersiniz olur. Eğer bu değil, yalnış anladığım yerler var ise belirtirseniz ona göre bakalım.
Sanırım bu şekilde ama kabul etmiyor sebebi ise sanırım arasında boşluklardan ötürü yani A ile B sütünunu arasında 7 boşluk, B ile C sütünü arasında 13 boşluk, C ile D sütunu arasında 13, D ile E sütunu arasında 18 boşluk, E ile F arasında 20, F ile G arasında 20, G sonrası sadece 4 boşluk olması gerekiyor. Formatını nasıl bu şekilde programa uygun yapabilirim?
Boşlukların sayısını biliyorsan zaten sorun yok.
Macro ile tek for döngüsü içinde verileri alıp başka bir sheet e yazdırabilirsin.
Sonrası .txt dosyasına kaydetmek.
Excel de A stünuna barkod, b Stünuna Adet gelecek şekilde verileri yerleştirin ve Metin (Sekmeyle ayrılmış) olarka kaydedin .. İşlemeyi deneyin. Eğer olmaz ise txt dosyayı açıp tab boşluğu 5 adet boşluk(space)ile değiştirin. Kesin olur 🙂
Boşlukların sayısını biliyorsan zaten sorun yok.
Macro ile tek for döngüsü içinde verileri alıp başka bir sheet e yazdırabilirsin.
Sonrası .txt dosyasına kaydetmek.
'Macro ile tek for döngüsü içinde verileri alıp başka bir sheet e yazdırabilirsin', yazmışsınız nasıl yapabileceğimi yazabilirseniz deneyebilirim, teşekkürler..
Keşke elinizdeki excel tablosunun bir örneğini de koymuş olsaydınız.
Alınacak txt yapısının excel deki sütun yapısı ile uyumlu olduğunu düşünerek yazabilirim. Aslında basit. Excel deki sheetin sütun dizilimi uygunsa sadece ihtiyaç duyduğunuz boşluk miktarlarını sütunların sonuna eklemeniz gerekiyor. Bunu da formul üle yapabilirsiniz. Tabi sütunlar metin formatında olmalı. Misalen başka bir hücreye boşluk miktarlarını girersiniz. Sonra birleştir fonksiyonu ile misal A1 hücresini 7 boşluk girdiğiniz h1 hücresi ile birleştirirsiniz. Bunu tüm sheet'e uygularsınız.
Sonrada kopyala özel yapıştır değerler den veya formul ile temiz 2 nci bir sheet e bu hazırladığınız boşluklu sütunları çekersiniz ve farklı kaydet ile sekmeli metin olarak kaydedersiniz. Böylece txt dosyasını açtığınızda verilerin sonunda boşlukların olduğunu göreceksiniz.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Herşey tamam fakat ; aşağıda yazdığınız kısmı nasıl yapabilirm onu daha net yazabilirseniz sevinirim. Kusura bakmayın Excel için çok iyi olduğum söylenemez. Teşekkürler..
''Misalen başka bir hücreye boşluk miktarlarını girersiniz. Sonra
birleştir fonksiyonu ile misal A1 hücresini 7 boşluk girdiğiniz h1
hücresi ile birleştirirsiniz. Bunu tüm sheet'e uygularsınız.
Sonrada kopyala özel yapıştır değerler den veya formul''
Sanırım yeterli olur. Bu mantığı daha düzenli halde kullanabilirsiniz tabi.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Sizin gönderdiğiniz resimde görüldüğü gibi deniyorum A1 sutunundan G1 sutununa kadar metin formatında doldurarak sonra B2 sutununa =BİRLEŞTİR(A1;G1) Enter yaptığımda sadece A1 sutununu B2 sutununa yapıştırıyor.. Bu arada ben bu işlemi yapsam dahi atıyorum 300 satıra bu işlemleri tek tek yine uygulayacakmıyım? Kusura bakmayın tekrar bunu öğrenmezsem bayağı zorlanacam ileriki zamanlarda, teşekkürler..
Yazdığınızı tam anlamadım ama şöyle anlatayım. 1 nci satırdan itibaren ve A sütunundan G sütununa kadar veriler olduğunu düşünelim. Barkod, stok adı, adet vs felan. Amaç sütun ve satırlardaki bu verilerin sonuna gerekli olan boşluk miktarlarını eklemek değil midir? Sizin A1'den G1 e kadar birleştirme yapmız olmayacaktır.
Mesela I sütununa A sütundaki verilerin sonuna eklenmesi için gerekli olan 7 boşluğu verdik. J sütunu yine öyle B için, K yine C için gerekli boşluk miktarları diye devam ediyor. Bunları birleştirmede kaynak olarak alıcağınız için yapıyoruz bunu başka sheet e koyarak da yapabilirsiniz. Şöyle düşünün birleştir fonksiyonu misal
A sütunundaki 13 karakterin sonuna I sütunundaki 7 karakteri ekliyor böylece 20 birim oluşuyor.
Diyelim A'dan G sütununa kadar 50 satır veri var. Siz 51 nci satıra A sütununa =birleştir(A1;I1) B sütununa =birleştir(B1;J1) diye devam ederek yaparsanız.
A1 deki 8698335002077 sonuna 7 boşluk eklenmiş olacak. İlk satırı bu şekilde hazırladıktan sonra bu formüllerin olduğu hücreleri sağ alt kenarından tutup aşağıya kadar çekerseniz. İlk 50 satırdaki verinin sonlarına boşluk eklenmiş halde 51 den 101 nci satıra kadar dizmiş olursunuz. Sonra isterseniz bunlar temiz bir sayfaya copy ile alabilirsiniz. Maksat formullü hücreleri değil veri olarak almak olacaktır. txt haline getirmekte sonraki iş. Farklı kaydederken tabi ayıraç olarak ; seçmeniz gerekicek.
İnşallah şimdi tam olarak anlatabilmişimdir. 🙂
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Sizinde yaptığınız gibi yaptım fakat merak ettiğim bundan sonra aşağıdaki satırları nasıl otomatik yapabilirim? Yani sizin yaptığınız gibi her satır için ayrı ayrı uğraşmam mı gerekir? Formulu var mı bunun acaba 🙂
[URL= http://img684.imageshack.us/img684/4551/adszwd.jp g" target="_blank">http://img684.imageshack.us/img684/4551/adszwd.jp g"/> [/IMG][/URL]
Uploaded with [URL= http://imageshack.us ]ImageShack.us[/URL]
İlk satırı bu şekilde hazırladıktan sonra bu formüllerin olduğu hücreleri sağ alt kenarından tutup aşağıya kadar çekerseniz. İlk 50 satırdaki verinin sonlarına boşluk eklenmiş halde 51 den 101 nci satıra kadar dizmiş olursunuz.
Bence önceki mesajımı adım adım iyi okuyun ve uygulayın kolayca bütün hücrelere nasıl uygulanacağını yazdım zaten. Bu işin yapılabilmesinin bir kaç yöntemi var. Ben en en basitini anlatmaya çalıştım. Ne kadar otomatik olacağı sizin uğraşınıza kalıyor. VB ve macro çalışma sayfalarıyla da yapılabilir. Bence biraz onlarıda inceleyin netden. Bu yöntem den daha etkin şeyler ortaya dökebilirsiniz. En basiti olarak bu aklıma geldiği için sizin de bilgi seviyeniz sebebiyle bunu yazdım. Bu formülleri sheet lere de uygulayabiliyorsunuz. Bir sheete sadece formul girdilerini hazırlarsınız. Yine buraya oluşan formül sonucu bilgileri formul ile 3 ncü bir sheete aktarırsınız. Programdan aldığınız listeyi 1 nci sheet olarak dosyaya eklediğinizde otomatik yapar. Size 3 ncü sheetden save as yeterli olur.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Erdinç arkadaşımızla özelden görüşerek dosyaları istedim ve aldım. Dosyayı istediği gibi yaparak da alttaki link ile upload ettim.
http://rapidshare.com/files/390956971/incelemeok.rar.html
Nasıl yaptığıma ve dosyaya gelince.
A sütunu için ; B sütununa ekle deyip B dekiler C ye ve boş bir B elde ettim. B1'e =A1 & " " yaparak boşlukları ekledim. D ye de C nin aynısını yaptım ve bu sayede boşluklar eklenmiş oldu. Sonra alttaki tüm sütunlara uygulattım . ( İlgili hücrenin sağ altında + var iken çift tıklamak yeterli ) . Sonrasında diğerkleri için kaç boşluk ise saydım ve o kadar boşluk koydum. Ve yine hepsine uygulattım. Yani tüm işlemleri sadece ilk satırda yaptım. En son virgülle kaydedilmiş olarak kaydettim ve dosyayı txt olarak kaydettim.
Toplam işlemler (2037 satır) 3-5 dk sürdü.
İyi Çalışmalar
Arkadaşın excel tablosunun hazırlanması dışında sanırım txt ile ilgili sıkıntısı var. Gereksiz bir boşluk oluşuyordu buna göre denemesi gereken şeyleri söylemiştim ama sizin yardımınız sonucunda çözüldümü acaba merak ettim.
import etmeyi başarabildi mi acaba yazar inşallah.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
İbrahim Bey, sizin yaptıklarınızla herşey gayet güzel ilerledi sonuç gayet istediğim gibi oluyor ama txt olarak kaydettiğimde her sutuna boşluk verdi diğer yöntemleri denedim başaramadım. Sizin haricinizde sağolsun Yaşar Bey bir yöntemle başardı ama nasıl ben pek çözemedim müsait bir vaktinde açıklayacak.. İlginiz için teşekkür ederim ama keşke tam sonuça varabilsem :-).. Siz bir deneyin dilerseniz, ektra istemediğimiz boşluklar olmadan kaydedebilirseniz uygulamaya hazırım.. Sağolun
Erdinç Bey yukarıdaki şekilde olduğunu belirtti ama nasıl yaptığım sanırım tam açıklayıcı olmadı. Bu nedenle yaparken kısa bir video çekeceğim ve onu burada paylaşırım. Sanırım bu şekilde daha açıklayıcı olacak.