bir kolondaki aynı değere ait satırları yeni bir sheete

Katılım
7 Nisan 2005
Mesajlar
42
Selam arkadaşlar bir datanın A kolonunda iller bilgisi var. Diğer kolonlarda da farklı bilgiler var. Benim istediğim Sheet1 deki datadan aynı illere ait olan bilgi satırlarını yeni bir shette kopyalammasını ve sağlayacak bir makro. Makro çalıştığında sheet1 deki datalar A kolonuna göre alfabetik sırayla her bir il için yeni bir sheet açılıp buraya kopyalanacak birde sheet adları da ilgili ilin adını alırsa harika olur.

Ã?rnek dosyam ekte ben manuel olarak illere ait sheet leri yaptım anlaşılabilmesi için. Yardımlarınız için şimdiden teşekkürler.
 
Katılım
3 Mart 2005
Mesajlar
120
dosyanın formatı böyle mi olacak ve de bu rakamlar toplama gibi bi işleme tabi tutulacak mı? Subtotal özelliği kullanılabilir çünkü..
 
Katılım
7 Nisan 2005
Mesajlar
42
Format sheet1 ne ise aynı şekilde formatıyla birlikte kopyalanacak. Bilgi bulunan satır ve sütun sayısı artabilir. Satırın bütün olarak kopyalanmasını istiyorum teşekkürler.
 
Katılım
1 Mart 2005
Mesajlar
249
Sayfa üzerine koyacağın butonun kod sayfasına aşağıdakileri yapıştır. Kolay gelsin.
[vb:1:675cf4027c]Private Sub CommandButton1_Click()
Dim sh As Worksheet, sh1 As Worksheet
Dim i As Integer, j As Integer
Dim k As Integer, x As Integer
Range("A1").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range( _
"B1"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

Set sh = Worksheets("Sheet1")
For i = 1 To sh.Range("a65536").End(xlUp).Row
For j = 1 To Worksheets.Count
If Worksheets(j).Name = sh.Cells(i, 1) Then
Worksheets(j).Select
GoTo ATLA
End If
Next j
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sh.Cells(i, 1).Value
ATLA:
Set sh1 = ActiveSheet
k = sh1.Range("A65536").End(xlUp).Row
If sh1.Cells(k, 1) = "" Then k = 0
For x = 1 To 4
sh1.Cells(k + 1, x) = sh.Cells(i, x)
Next x
Next i[/vb:1:675cf4027c]
 
Katılım
7 Nisan 2005
Mesajlar
42
Cako arkadaşım kodları denedim harika olmuş eline, aklına sağlık. Ben makrolu olarak da dosyayı eke koyuyorum bir çok arkadaşın benzeri bir yapıda kullanabileceğini düşünerek. sanıyorum kullanan her arkadaş da sana teşekkür edecektir. Sağol.
 
Katılım
4 Mayıs 2005
Mesajlar
1
Bu sayfaya emeği geçen, soruyu soran, yanıtı veren ve ilgilenen tüm arkadaşlara selamlar
hepinize çok teşekkür ederim.
Bu sayfayı yeni keşefttim
Selamlar
Mustafa Kaplan
 
Katılım
16 Mart 2005
Mesajlar
63
Arkadaşlar emeği geçen herkese ben de teşekkür ediyorum.
Benim de bir sorum olacak Sayın tamercan ın eklediği örnekte butona her bastığımızda sheet1 deki kayıtlar tekrar ekleniyor. Var olan kayıtların tekrar eklenmemesi ve varsa sadece yeni eklenen kayıtların eklenmesi için ne gibi bir değişiklik yapmamız gerekir.
 
Katılım
1 Mart 2005
Mesajlar
249
Eğer var olan kayıtlar kelimesinin alamını tam ifade ederseniz olur.
Sözü edilen çözümdeki hangi sütun verinin var olup olmadığını bilmiyorum.
Adlarmı , adlar ile beraber numaralar mı?
Anlatabildim sanırım.
 
Katılım
7 Nisan 2005
Mesajlar
42
Var olan kayıtlar kavramında sanıyorum sheet1 de data bulunan satırlar kastediliyor. Yani makro ilk çalıştırıldığında bu mevcut satırları yeni sheetlere kopyalıyor. Sonra ek bir kayıt girilip tekrar çalıştırıldığında öncekilerle birlikte tüm satırları tekrar kopyalıyor. Cako arkadaşım Aklıma şöyle bir kontrol yapılabilir gibi geliyor ama tabiki doğrusunu sen bilirsin. Makroya sheet1 deki A kolonunda data bulunan satır sayısı (x) ile diğer sheetlerdeki A kolonlarında data bulunan satır sayılarının (Y) toplamının kontrolü yaptırılıp x>y ise y+1 satırdan başlayarak kopyalatılabilir mi? x=y ise se kopyalama yapılmayacak. örnek başlangıçta Sheet1 de 20 data var kontrol çalışıyor diğer sheetler boş olduğundan yani 20>0 kopyalama çalışacak ve 0+1 den yani 1 inci satırdan başlıyor 20 kayıt yeni sheetlere kopyalanıyor. daha sonra 5 yeni kayıt giriliyor. makro tekrar çalıştırıldığında sheet1 de 25 satır kayıt var diğerlerinde toplam 20 kayıt var 25>20 olduğundan kopyalama 20+1 yani 21 den başıyor gibi. İlgilenen herkese teşekkürler.
 
Katılım
18 Nisan 2005
Mesajlar
67
Tamercan

bu açıklamanı yukarıdaki makroya ekleyerek gönderebilirmisin? Ben makro üzerinde düzeltme yaptım ama başarısız oldum da.
 
Katılım
7 Nisan 2005
Mesajlar
42
Melwitch arkadaşım ekte gönderdiğim dosya daha önce sheet1 de 20 kayıt varken makro çalıştırılmış ve şu anda da 5 yeni kayıt girilmiş hali şayet hiç bir değişiklik yapmadan makroyu tekrar çalıştırırsak diğer sheetlere sheet1 deki 25 datayı tekrar yazıyor ve sheetlerde toplam 45 kayıt oluşuyor. Oysa kontrol olsa ikinci çalıştırmada 21 inci satırdan itibaren samsun ve antalya satırlarını mevcut shetlere yazıp sonra ek kayıtlar içinden ilk kayıtları girilmiş Adana,Van ve İzmir kayıtlarını ise yeni açılmış sheetlere yazmış olacaktır. ilgine teşekkürler.
 
Katılım
7 Nisan 2005
Mesajlar
42
melwict arkadaştan bir cevap çıkmadı. sayın Cako makroda belirtilen ilave düzeltme yapılabilir mi? Bakabildin mi? yapsan yapsan sen yaparsın diye düşünüyorum yapılabilirse çok daha güzel bir makro olacak teşekkürler.
 
Katılım
18 Nisan 2005
Mesajlar
67
tamercan özür dilerim. sanırım bir hata yaptım. Ben makroyu sen yazmışsın gibi senin adına mesaj yolladım. Aslında senin fikrini makroya ilave edip yeni düzenlenmiş halinin gönderilmeisinin benim içinde iyi olacağını ve kendime ait benzer bir tabloda kullanabileceğimi düşünmüştüm. Yani bende çözüm istiyordum :kafa:

Senide bekletmiş oldum. Çözümü diğer arkadaşlar yapabilirse bende sevineceğim. :)

syg
 
Katılım
7 Nisan 2005
Mesajlar
42
Sayın üstadımız Cako form iki sayfa olunca dikkatimden çakmış lütfen üsteki mesajımı dikkate alma. Son şekli ile makro tam istendiği gibi harika olmuş test ettim eline, aklına sağlık.
 
Katılım
8 Ekim 2004
Mesajlar
117
Excel Vers. ve Dili
OFFICE 2010 PRO TR
üstad bu çalışma harika olmuş eline sağlık.
başka bir liste için kullandım ama 31 karekterden fazla olan firma isimleri var bunları atmıyor. uzun isimleri veya değişik karekter içerenleri otomatik kısalttırıp düzelttirebilirmiyiz?
 
Üst