• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Dosya Birleştirme Makrosu Düzeltme

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

bulentkars

Bronz Üye
Kullanıcı Bilgileri
Katılım
30 May 2022
Mesajlar
404
Çözümler
3
Aldığı beğeni
66
Excel Versiyonu
Office 365 TR
Konuyu Başlatan
Arkadaşlar Merhaba;

Aşağıdaki kod ile C:\Şubeler\ Klasörü altındaki dosyaları birleştiriyorum.
yapmak istediğim;
1 - Makro çalışacağız zaman önce klasör açılacak ben klasörden hangi yolu seçip tamam yaptığımda hangi yolu seçersem o yola göre çalışmasını istiyorum.
2 - Birde Kopyalama yaptığım sayfa adı C100_Kart Yerine aktif sayfaları birleştimesini istiyorum.

Aşağıdaki kodda yardımcı olabilirseniz sevinirim. Şimdiden Teşekkürler
C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Örnek olarak son sütun no 1.satır olarak alttaki kodla bulunur.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Bu kodlada ilk satırdaki başlıklar i.in dinamik son sütun olarak adres verir.
Kendinize göre ayarlayabilirsiniz.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Sayın Refaz;
Tabloyu ek olarak paylaşmıssınız. Aşağıdaki 2 kodu nereye gireceğimi bilemedim. Size zahmet olmazsa tabloya ekleyip son durum tabloyu paylaşırsanız sevinirim.
MsgBox Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox Range(Cells(1, "A"), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column)).Address
 
18.mesajdaki dosyayı 2.mesajdaki dosya ile güncelledim sadece ordaki kodu.
Son mesajdaki msgbkx olanlrla işiniz yok sadece son sütun bulma ve alan olarak örnek verdim.Son sütunu hangi satır kullanaksanız yazın oraya uygulayayım.
 
18.mesajdaki dosyayı 2.mesajdaki dosya ile güncelledim sadece ordaki kodu.
Son mesajdaki msgbkx olanlrla işiniz yok sadece son sütun bulma ve alan olarak örnek verdim.Son sütunu hangi satır kullanaksanız yazın oraya uygulayayım.
Merhaba

Aslında olması gereken şu

Dosyayı açıp A: sağa doğru en dolu sütunu seçip kopyalayacak.
Örneğin dosyada A:D arası sütun dolu ise A:D arasını seçip kopyalayacak.
Veya aklıma şimdi geldi mümkün olur mu acaba
4.Seçenek Dosya birleştirme makrosu çalışacak

Klasör yeri seçilecek
Sayfa adı seçilecek

Buraya bir inpuxbox koyup kopyalanacak aralığı seçin diyecek
Örneğin yeni sayfada a:f arasını seçip tamam dediğimde
Dosyaları birleştirme yaparken A:f aralığını kopyalayacak.
Buda şimdi aklıma geldi tabi eğer mümkünse değilse en son eklediğiniz dosyayadaki aralığı A:AZ yaptırımda da iş görüyor.
Teşekkürler.
 
Dosyayı açıp A: sağa doğru en dolu sütunu seçip kopyalayacak.
Örneğin dosyada A:D arası sütun dolu ise A:D arasını seçip kopyalayacak.
Sub Subeleri_Birlestir() bu kada resimdeki sarıya boyadığım gibi yapın.Ama koda göre 4.sütun fitreleme yaptığınız için eğer sonsutun 4 den küçükse gibi şartta ekleyebilirsiniz.
Diğer inputbox için yapıncada eklerim.

Screenshot 2023-11-18 143140.png
 
Merhaba

Bu kodu daha önce web den bulduğum bir kod.
Ben tam koddan anlamadığım için mantığın A2:D arasını kopyalama yaptığını biliyorum.
Ben başka yerde kullanacağım zaman kod içerisinde A:D yi ihtiyaca göre A:F yapabiliyorum.
Bu çalışmada da benim bu koddan ziyade klasör altındaki dolayaları tek sayfaya birleştirmek istiyorum. Herkesin bundan faydalanması için de seçenek olsun kullanıcının seçeneğine göre olsun istedim.
Yani
Makro çalıştır
4 seçeneği seç
Klasör seç
Birleşecek sayfa adını seç
İnputbox üzerinden ilk yazıda yazdığım gibi
veya userform üstünde iki adet combobox olacak
Bir comboboxta örneğin A girecek diğer Comboboxta D girip tamam dediğinde makro A:D arasını kopyalama yapacak.
zamanınızı alacaksa eğer yapmayabilirsiniz. Size çok zahmet verdiğimin farkındayım. Bu haliylede kod işimi görüyor.
Allah sizden razı olsun.
 
Bir comboboxta örneğin A girecek diğer Comboboxta D girip tamam dediğinde makro A:D arasını kopyalama yapacak.
Bunun için yeni konu açın bende şaşırdım artık ne yapacağımı :)
Neyse ekteki sonu 2 olan dosyada tek inputbox açılır ve orda gifteki gibi seçin.Başlıkları seçerseniz seçilenin altından kopyalar.Sonu 1 olan ise her defasında inputbox çıkar hücre seçim için ve önceki ile aynı.
Benden bu kadar abey,dediğim gibi yeni konu açın çünkü konu çok uzadı.



Animation.gif
 

Ekli dosyalar

  • Sayfalar Arası Makro Son 2.xlsb
    42.8 KB · Gösterim: 2
  • Sayfalar Arası Makro Son 1.xlsb
    42.8 KB · Gösterim: 2
Sayın Refaz,
Elinize emeğinize sağlık.
Tam istediğim gibi oldu
Allah sizden razı olsun.
İyiki varsınız.
 
Sizdende abey.Ağer kapalı dosya çoksa her defasında exceli açtırma yerine seçilen sayfa varsa açılsın koduda eklenir.
 
Zahmet olmayacaksa size iyi olur.
Kapalı dosya fazla olabiliyor
 
29.Mesajdaki açıklamalar ile birlikte bu dosyalarda eğer kapalı dosyada seçilen sayfa yoksa açılmaz boşuna.

Kolay gelsin.
 

Ekli dosyalar

  • Sayfalar Arası Makro Son 1.xlsb
    43.7 KB · Gösterim: 1
  • Sayfalar Arası Makro Son 2.xlsb
    42.3 KB · Gösterim: 2
Çözüm
Rica ederim,kolay gelsin.Eğer yavaş çalışırsa yeni konu açın open yerine Ado ile excel açmadanda alınabilinir veri.
 
Birde yapmışken Kapalı excelleri açtırmadan Ado ile aldırdım.Eğer öncekiler yavaş olursa bunu kullanabilirsiniz.
Zip içine gifteki leri ekledim çoğaltıp.

Animation.gif
 

Ekli dosyalar

  • Test(ADO).zip
    1.2 MB · Gösterim: 5
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst