• DİKKAT

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

250 Sheeti taratıp belli kritere göre tek sheet'de birleştirmek

Katılım
6 Eylül 2007
Mesajlar
118
Excel Vers. ve Dili
2003 - Türkçe
Merhaba,

Çok acil olarak bir çalışmayı tamamlamam gerekiyor. Fonksiyonlarla ilk kısmını tamamladım ancak, ikinci kısmı için sanırım makro şart, ancak makrolar hakkında hiç bilgi sahibi değilim, yardımcı olabilirseniz çok sevinirim.

Amacım, 250 shetteki stok kartlarından A sütunları boş olmayan satırları bir araya getirip, tümünü küçükten büyüğe sıraya sokmak.

Yani 250 adet hammadde sheetindeki, A sütununda rakam olan satırları tek sheette toplamak ve bunları küçükten büyüğe sıralatmak.

Bu işi yapmamdaki amaç stok kartlarındaki çıkış miktarlarını ve çıkış yapılan günlerdeki o hammadde ile ilgili dataları bir arada (TOPLU KAYIT DEFTERİ sheetinde) eskiden yeniye sıralatabilmek.

A,B,C sütunlarındaki yeşil renkli hücreleri, hammaddenin çıkış yapılmış günlerini tanımlayabilmek ve bunları bir araya getirdiğimde küçükten büyüğe sıralama kriteri olarak kullanmak için hazırladım.

Eğer makroyla bulunabilecek bir çözümde bu bilgiye ihtiyaç yoksa A,B,C sütunlarını göz ardı edebilirsiniz.

Önemli olan stok kartlarında çıkış işlemi olan satırlara göre gerekli bilgileri bir arada eski tarihten yeni tarihe sıralayabilmek.

Örnek dosyam ektedir. ( Toplamda 250 hammadde kartım olacak )

Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Sub aktar()
Dim sat1 As Long, sat2 As Long, i As Long, sh As Worksheet
Sheets("TOPLU KAYIT DEFTERİ").Select
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("A3:H65536").ClearContents
sat1 = 3
For Each sh In Worksheets
    If CInt(InStr(1, sh.Name, "Stok kartı Hammadde")) > 0 Then
        sat2 = sh.Cells(65536, "D").End(xlUp).Row
        For i = 4 To sat2
            If IsNumeric(sh.Cells(i, "A").Value) Then
                If sat1 >= 65533 Then
                    MsgBox "[ " & sh.Name & " ] isimli sayfanın tamamı alınamdı." & vbLf _
                    & "Satır doldu!", vbCritical, "UYARI"
                    Exit For
                End If
                Cells(sat1, "B").Value = sh.Cells(i, "C").Value
                Cells(sat1, "C").Value = sh.Cells(i, "G").Value
                Cells(sat1, "D").Value = sh.Cells(i, "H").Value
                Cells(sat1, "E").Value = sh.Cells(i, "D").Value
                Cells(sat1, "F").Value = sh.Cells(i, "I").Value
                sat1 = sat1 + 1
            End If
        Next i
    End If
Next sh
Range("B3:F" & sat1 - 1).Sort Range("E3")
For i = 3 To sat1 - 1
    Cells(i, "A").Value = i - 1
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlandı." & vbLf & _
"evrengilen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
                
End Sub
 

Ekli dosyalar

SAYIN Evren Gizlen, (İlk kelimeyi bilerek büyük yazdım, ifadem kelimenin tam anlamıyla anlaşılsın diye :) )

Gece 3'e kadar nasıl yaparım, acaba olacak mı diye kara kara düşünmekle geçirdim.

Sabahın erken saatinde benim için vakit ayırıp (detaylı inceleyemedim, hemen teşekkür etmek istedim size) sorunuma çözüm bulduğunuz için ne kadar teşekkür etsem azdır.

İşlem bitişindeki İnfo Box'ı silmeyeceğim, sizden hatırası olsun, her data aktarımında sizi hatırlayayım :)

Tekrar tekrar teşekkürler :)
 
SAYIN Evren Gizlen, (İlk kelimeyi bilerek büyük yazdım, ifadem kelimenin tam anlamıyla anlaşılsın diye :) )

Gece 3'e kadar nasıl yaparım, acaba olacak mı diye kara kara düşünmekle geçirdim.

Sabahın erken saatinde benim için vakit ayırıp (detaylı inceleyemedim, hemen teşekkür etmek istedim size) sorunuma çözüm bulduğunuz için ne kadar teşekkür etsem azdır.

İşlem bitişindeki İnfo Box'ı silmeyeceğim, sizden hatırası olsun, her data aktarımında sizi hatırlayayım :)

Tekrar tekrar teşekkürler :)

Rica ederim.
İyi çalışmalr.:cool:
 
Sayın Evren Gizlen,

Şimdi dosyayı ayrıntılı inceledim. Hazırladığınız şekilde tam olarak doğru bilgileri bulup getiriyor.

Ancak, örnek dosya olması açısından hammaddeleri "Hammadde 1, Hammadde 2" şeklinde isimlendirmiştim. Tabii pratikte bunlara " Sodyum Klorür, Hidrojen Peroksit vb. " gerçek isimlerini yazacağım.

Kurguladığınız makro örnek olarak yazdığım "Hammadde 1, Hammadde 2" isimleri üzerinden çalışıyor. Dilerseniz şöyle yapabilirim, her hammadde isminin başına 1 , 2 , 3.. (1 Sodyum Klorür, 2 Hidrojen Peroksit gibi) rakam ekleyebilirim, yada her birinin başına "HM" yada başka bir ibare ekleyebilirim ( HM Sodyum Klorür, HM Hidrojen Peroksit gibi)


Toplam 250 stok kartı olacak, ancak makrodaki For i=4 döngüsünü For i=250 yaparsam sanırım tüm stok kartlarına bakar.


Makroyu Hammadde isimleri örnekteki gibi düzenli gitmeyecek şekilde düzeltebilr misiniz?
 
Üstteki sorumu geri alıyorum,

Siz zaten gereken şekilde hazırlamışsınız, hammadde isimlerini dilediğim gibi yazabiliyorum.

Makrodaki stok kartı sheet isimlerini "HM" ile başlasın şeklinde düzelttim, dilediğim kadar stok kartı yaratabiliyorum.



Sayın Evren Gizlen,

Şimdi dosyayı ayrıntılı inceledim. Hazırladığınız şekilde tam olarak doğru bilgileri bulup getiriyor.

Ancak, örnek dosya olması açısından hammaddeleri "Hammadde 1, Hammadde 2" şeklinde isimlendirmiştim. Tabii pratikte bunlara " Sodyum Klorür, Hidrojen Peroksit vb. " gerçek isimlerini yazacağım.

Kurguladığınız makro örnek olarak yazdığım "Hammadde 1, Hammadde 2" isimleri üzerinden çalışıyor. Dilerseniz şöyle yapabilirim, her hammadde isminin başına 1 , 2 , 3.. (1 Sodyum Klorür, 2 Hidrojen Peroksit gibi) rakam ekleyebilirim, yada her birinin başına "HM" yada başka bir ibare ekleyebilirim ( HM Sodyum Klorür, HM Hidrojen Peroksit gibi)


Toplam 250 stok kartı olacak, ancak makrodaki For i=4 döngüsünü For i=250 yaparsam sanırım tüm stok kartlarına bakar.


Makroyu Hammadde isimleri örnekteki gibi düzenli gitmeyecek şekilde düzeltebilr misiniz?
 
Üstteki sorumu geri alıyorum,

Siz zaten gereken şekilde hazırlamışsınız, hammadde isimlerini dilediğim gibi yazabiliyorum.

Makrodaki stok kartı sheet isimlerini "HM" ile başlasın şeklinde düzelttim, dilediğim kadar stok kartı yaratabiliyorum.
Promlema Nema. :D
 
:bravo: Harika çalışıyor, :mutlu:

Nema problema :hey:
 
Geri
Üst