- Katılım
- 9 Ocak 2009
- Mesajlar
- 557
- Excel Vers. ve Dili
- 2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub aktar()
Dim k As Range, sat As Long, i As Long, sh As Worksheet
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
sat = Cells(65536, "S").End(xlUp).Row + 1
For Each sh In Worksheets
If IsNumeric(sh.Name) Then
Set k = sh.Range("AZ:AZ").Find(Range("R1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
If sat >= 65533 Then
MsgBox "Satır doldu.Kayıtların tamamı aktarılmadı!", vbCritical, "UYARI"
Exit Sub
End If
Range("S" & sat & ":Z" & sat).Value = sh.Range("AZ" & k.Row & ":BH" & k.Row).Value
sat = sat + 1
End If
End If
Next
Application.ScreenUpdating = True
MsgBox "Aktarma Başarı ile tamamlandı." & vbLf & _
vbLf & "evrengizlen@hotmaial.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
Bu gibi durumlarda sayfa ismlerine diğerlerinden ayıran bir özellik eklemek gerek.Merhabalar
Bu Örnek Çalışmadaki Sayfa İsimleri 1 2 3 4 diye gidiyor Fakat Bu çalışmada Sayfa İsimlerini A B C D E Diye Değiştirirsek Makro hata Veriyor.Ben şöyle düşündüm
If ısalphabetic(sh.Name) Then fakat olmadı Kod nasıl değişirse Makro çalışır.
Buyurun istediğiniz şartları sağlayan dosya ektedir.Merhabalar
Bu Örnek Çalışmadaki Sayfa İsimleri 1 2 3 4 diye gidiyor Fakat Bu çalışmada Sayfa İsimlerini A B C D E Diye Değiştirirsek Makro hata Veriyor.Ben şöyle düşündüm
If ısalphabetic(sh.Name) Then fakat olmadı Kod nasıl değişirse Makro çalışır.
Sub aktar()
Dim k As Range, sat As Long, i As Long, sh As Worksheet
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
sat = Cells(65536, "S").End(xlUp).Row + 1
For Each sh In Worksheets
If Not IsNumeric(sh.Name) And Not IsDate(sh.Name) And Len(sh.Name) = 1 Then
Set k = sh.Range("AZ:AZ").Find(Range("R1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
If sat >= 65533 Then
MsgBox "Satır doldu.Kayıtların tamamı aktarılmadı!", vbCritical, "UYARI"
Exit Sub
End If
Range("S" & sat & ":Z" & sat).Value = sh.Range("AZ" & k.Row & ":BH" & k.Row).Value
sat = sat + 1
End If
End If
Next
Application.ScreenUpdating = True
MsgBox "Aktarma Başarı ile tamamlandı." & vbLf & _
vbLf & "evrengizlen@hotmaial.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
Dosyanız ektedir.Merhaba
Teşekkür ederim.Bu Kodları kullanarak ekteki çalışmaya uyarlamaya çalıştım ama olmadı.
RAPOR Sayfasında A1 hücresinde yazılı TARİH M den Başlayıp H Sayfasına kadar(Gizli Sayfalar Duracak bu sayfalarda herhangi bir işlem olmayacak) diğer sayfaların M sütununda bulup hangi tarih yazılı ise bilgileri getirecek bir makroya ihtiyacım var.
Sub aktar()
Dim k As Range, sat As Long, i As Long, sh As Worksheet
Sheets("RAPOR").Select
Application.ScreenUpdating = False
Range("A2:M65536").ClearContents
sat = Cells(65536, "B").End(xlUp).Row + 1
For Each sh In Worksheets
If Len(sh.Name) = 1 And Not IsNumeric(sh.Name) And Not IsDate(sh.Name) And sh.Visible = True Then
Set k = sh.Range("M:M").Find(Range("A1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
If sat >= 65533 Then
MsgBox "Satır doldu.Kayıtların tamamı aktarılmadı!", vbCritical, "UYARI"
Exit Sub
End If
Range("B" & sat & ":J" & sat).Value = sh.Range("A" & k.Row & ":I" & k.Row).Value
Cells(sat, "K").Value = sh.Cells(k.Row, "M").Value
Cells(sat, "M").Value = sh.Name
sat = sat + 1
End If
End If
Next
Application.ScreenUpdating = True
MsgBox "Aktarma Başarı ile tamamlandı." & vbLf & _
vbLf & "evrengizlen@hotmaial.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
Sizin dosyanızdaki şart sayfalrın sayısal olmasıdır.Ve tek haneli olmasıdır.Bunun dışındaki sayfalardan veri almaz.sayın evren bey benim için gerekli olan cevabı verdiğiniz için teşekkür ederim sayısalda olsa isimde olsa verileri bulup getiriyor bir sorun yok teşekkür ederim tekrardan....
Bu silinme konusunu soruyu sorarken ilk başta söylemeniz lazımdı.Söylemediğiniz için tahmine dayalı yazıldı kodlar.Bu yanlışı sadece siz değil soru soran tüm arkadaşlar yapıyorlar.Sorunuza bir bakınız bu konuda bir açıklama yapmışmısınız?Merhaba
Çok güzel olmuş fakat RAPOR Sayfasında A1 de Başka bir tarih seçildiğinde Tablodaki veriler silinse çünkü eski tarihli veriler tabloda kalıyor.birde RAPOR Sayfasında K sütununa M sütunundaki Tarihleride gelirse daha süper olacak.
Rica ederim.Merhabalar
İlginizden dolayı çok ama çok teşekkür ederim.Tam istediğim gibi olmuş.
Sizin dosyanızdaki şart sayfalrın sayısal olmasıdır.Ve tek haneli olmasıdır.Bunun dışındaki sayfalardan veri almaz.
İyi çalışmalar.![]()
3 sayfanın adları nedir?Ayrıca evren bey 3 sayfa dışındaki sayfalardan veri almasını yani o üç sayfadan veri almasın nasıl bir ekleme yapmamız gerekir...
Aşağıdaki kodlar işinizi görür.Ana,örnek,bordro
Sheets("BORDRO").Range("S3:Z500").ClearContents
Dim k As Range, sat As Long, i As Long, sh As Worksheet
Sheets("BORDRO").Select
Application.ScreenUpdating = False
sat = Cells(65536, "S").End(xlUp).Row + 2
For Each sh In Worksheets
If UCase(sh.Name) <> "ANA" And UCase(sh.Name) <> "ÖRNEK" And UCase(sh.Name) <> "BORDRO" Then
Set k = sh.Range("AZ:AZ").Find(Range("K1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
If sat >= 65533 Then
MsgBox "Satır doldu.Kayıtların tamamı aktarılmadı!", vbCritical, "UYARI"
Exit Sub
End If
Range("S" & sat & ":Z" & sat).Value = sh.Range("ba" & k.Row & ":BH" & k.Row).Value
sat = sat + 1
End If
End If
Next
Application.ScreenUpdating = True
MsgBox "Aktarma Başarı ile tamamlandı." & vbLf & _
vbLf & "evrengizlen@hotmaial.com", vbOKOnly + vbInformation, "E V R E N"
Rica ederim.çok teşekkür ederim evren bey yine yardımıma siz koştunuz tekrar tekrar teşekkürler...