A sayfasında koşu sağlayan veriler b sayfasına yazılsın

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
günlük (a) sayfasının a sütununda ev yazan hücre varsa A sayfasının c,d,e sütunlarını b sayfasının 11. satır ile 44. satır arasında a, b, e sütunlarına taşı, 44. satır dolduğunda hata mesajı gönder ve çalışmayı durdur.


Ben yaptım ancak a sayfasında kontorlleri yapıyor ancak b sayfasını a da koşulu sağlayan ilk satırla dolduruyor :(

Yardım lütfen

Kod:
Private Sub CommandButton1_Click()
Dim St As String    'Günlük!A (sütunu)   Stok tipleri 12,2,24,45
Dim it As String    'Günlük!B (sütunu)   İşlem Tipleri P(Peşin St) V (Veresiye St) T (Tahsilat İsl)

Dim g As Integer    'Günlük Satır no (for... next için)
Dim e As Integer    'Tsb Satır no / 12lik ev tüpler 11 to 44 (for... next için)
Dim p As Integer    'Tsb Satır no / 2 lik piknik tüpler 11 to 44 (for... next için)
Dim l As Integer    'Tsb Satır no / 24 lük lokanta tüpleri 11 to 23 (for... next için)
Dim s As Integer    'Tsb Satır no / 45 likSanayi tüpleri 11 to 23 (for... next için)
Dim v As Integer    'Tsb Satır no / veresiye işlemleri
Dim t As Integer    'Tsb Satır no / tahsilat işlemleri
'                                   Cells(satır, sütun)
'St = Sheets("günlük").Range("a3")
'it = Sheets("günlük").Range("b3")

    
    
'---------------------------------------------------------------------------------
'For Next ile
'Günlük sayfasında A sütununda 3 nolu satırdan 120 nolu satıra kadar konrol et değeri 12 ise C,D,E sütunlarının ilgili satırını
'tsb sayfasında A,B,E sütunlarının ilgili satırlarına b sütunubn ilgili satırı boş ise yaz
    For g = 3 To 120           'günlük sayfası döngü
                                                           'it = Sheets("günlük").Cells(g, 2)
                                                            'MsgBox "G= " & g
                                                            ' And Sheets("günlük").Cells(g, 2) = "P" Or it = "p" Or "V" Or it = "v" Then       'Günlük sayfasında Kontrol
        If Sheets("günlük").Cells(g, 1) = "Ev" Then               'Günlük sayfasının A sütununda 3 nolu satırdan 120 nolu satıra kadar "ev" yazıyorsa
            For e = 11 To 44                                      ' Tsb sayfasının 11 ci ve 44. satırlarına
              If Sheets("tsb").Cells(e, 2) = "" Then              ' İlk boş satırdan başlayarak
                  Sheets("tsb").Cells(e, 1) = Sheets("günlük").Cells(g, 3) 'Fiş No        ' tsb a sütununa günlük c sütununu
                  Sheets("tsb").Cells(e, 2) = Sheets("günlük").Cells(g, 4) 'Adı Soyadı    ' tsb c sütununa günlük d sütununu
                  Sheets("tsb").Cells(e, 5) = Sheets("günlük").Cells(g, 5) 'Tutarı        ' tsb e sütununa günlük e sütununu yaz
               End If
            Next
         End If
     Next
End Sub
Yuakrıdaki kod bir yere kadar doğru çalışıyoor ancak tsb sayfasına idaima lk koşulu yazıyor
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodlarınızı aşağıdaki şekilde değiştirerek deneyiniz.

Kod:
For g = 3 To 120           'günlük sayfası döngü
       If Sheets("günlük").Cells(g, 1) = "Ev" Then 'Günlük sayfasının A sütununda 3 nolu satırdan 120 nolu satıra kadar "ev" yazıyorsa
            e = Sheets("tsb").[b45].End(3).Row + 1
                If e = 45 Then
                MsgBox "Tablo dolduğu için kayıt yapılamadı.", , "UYARI"
                Exit Sub
                End If
                  Sheets("tsb").Cells(e, 1) = Sheets("günlük").Cells(g, 3)  'Fiş No        ' tsb a sütununa günlük c sütununu
                  Sheets("tsb").Cells(e, 2) = Sheets("günlük").Cells(g, 4)  'Adı Soyadı    ' tsb c sütununa günlük d sütununu
                  Sheets("tsb").Cells(e, 5) = Sheets("günlük").Cells(g, 5)  'Tutarı        ' tsb e sütununa günlük e sütununu yaz
         End If
   Next
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Hocam eliniz kolunuza zihninize sağlık,
Peki

A sayfasının c,d,e sütunlarını b sayfasının 11. satır ile 44. satır arasında a, b, e sütunlarına taşı, a, b, e sütunlarında 44. satır dolduğu zaman kopyalamaya b sayfsaının g,h,k sütunlarına devam et nasıl denir?

Bu kodu piknik için aynen uygulayacam

ama
lokanta için 11 den 23. satıra kadar yazması lazım (s,t,w) kolonlarına valla son kolanları w23 yapınca
sanayi için 32 den 44. satıra kadar yazması lazım (s,t,w) kolonlarına valla son kolanları w44 yapınca
gerek kalmadı.
 
Son düzenleme:
Üst