Anasayfadan Hücre Kopyalanması ve Ek Bilgiler Girilmesi..

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
Merhaba;

Bir tablom var, bu tabloda Anasayfa adında bütün müşterilerin ödemelerini tutuyorum (Bandrol, Trafik, Tescil, vs..) her müşterinin farklı farklı ödemeleri olabiliyor.. Bundan dolayı her ödeme için farklı sayfalar açtım ve Anasayfa'daki ödemeleri sayfalara aktarıyorum (Ömer hocam sayesinde) ama burada iki sıkıntım var..

1- Sayfalara kopyalanan müşterilerin karşılarına farklı bilgiler giriyorum, ama güncelle dediğimde bu bilgiler siliniyor.(nedeni aşağıdaki modül kodundaki kırmızı ile gösterdiğim satır)
2- Anasayfa'dan bi müşterinin ödemeleri gerçekleştikten sonra o satırı siliyorum ve silindiği zaman ödemelerin bulunduğu ilgili sayfadan da karşılarına denk gelen bilgiler ile silinmesini istiyorum.

Kod:
Sub Bandrol()
 
    Dim i As Long, sat As Long
    
    Application.ScreenUpdating = False
    Sheets("Bandrol").Select
    
    sat = 3
    With Sheets("Ana Sayfa")
        [COLOR="Red"]Range("A3:G" & Rows.Count).ClearContents[/COLOR]
        For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row
            If .Cells(i, "F") <> "" Then
                Cells(sat, "A") = sat - 2
                Cells(sat, "B") = .Cells(i, "B")
                Cells(sat, "C") = .Cells(i, "F")
                sat = sat + 1
            End If
        Next i
    End With
    
     Application.ScreenUpdating = True
        
End Sub
Dosya Ektedir.. Teşekkürler..
 

Ekli dosyalar

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
yok mu hocalarımdan sonuca gidebilecek bir cevap ?
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
"Range("A3:G" & Rows.Count).ClearContents"

bu kodda her halukarda D,E,F,G hücrelerini siliyor güncelle diyince, kodu silersekte yazdıklarım duruyor fakat ana sayfadan müşteriyi silince yazılı olanlar bir alttakine kayıyor.. demek istediğim şudur ki;
bu kodu "Eğer" kodu ile bağdaştırabilir miyiz? yani eğer ilgili "B" hücresi boşsa sil, değilse dokunma.. gibi?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sayın tirEdsOul,

Konuyla ilgili size açıklama yazmıştım geri dönmemişsiniz. Bu kodlar bu haliyle sizin işinizi görmez. Çözüm algoritmasıyla ilgili yazdıklarıma cevap verirseniz oradan çözüme daha hızlı bir şekilde gidebiliriz.
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
ben dediğinizi yaptım sanıyorum Ömer hocam..

Benim anladığım;

* Sayfalardaki müşteri isimlerini ana sayfada arasın, bulamazsa sayfadan silsin.
* Bulursa ilgili sayfa sütununun müşteriye karşılık gelen satır hücresi boşsa yine silsin, boş değilse silmeden o müşteriye ait yeni bakiyeyi sayfadakiyle değişsin.
* Son olarak ana sayfada bakiyesi olupta ilgili sayfada kaydı olmayan müşteri ilgili sayfaya aktarılsın.

İstedikleriniz bunlar.

İlave var mı, değişecek olan var mı?, iptal olan var mı? vs...
* Evet, anasayfada ödemeye denk gelen ismi, ödeme sayfasına Müşteri ismi ile beraber ödemesini alsın, bir daha ki aramada aynı ismi bulamazsa karşılığına denk gelen bilgileri ile silsin.
* Evet
* Hayır anasayfadaki Alacak-Borç bakiye bizi ilgilendirmiyor, sadece ödemeler ilgilendiriyor (Bandrol, Trafik, Tescil vs..)
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
yapılması mümkün olmayan birşeyse de söylerseniz sevinirim, en azından boşa umut bağlamaz başka alternatifler düşünmeye çalışırım..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bondrol sayfası için. Detaylı deneme yapmadım, hatalı sonuç alırsanız detaylı açıkayınız.

Kod:
Sub Bandrol()
 
    Dim i As Long, sat As Long, c As Range
    Dim Adr As Variant, Sa As Worksheet
 
    Set Sa = Sheets("Ana Sayfa")
 
    Application.ScreenUpdating = False
 
    For i = Cells(Rows.Count, "B").End(xlUp).Row To 3 Step -1
        With Sa.Range("B:B")
          Set c = .Find(Cells(i, "B"), , xlValues, xlWhole)
            If Not c Is Nothing Then
              Adr = c.Address
                Do
                  If Sa.Cells(c.Row, "F") = "" Then
                    Rows(i).Delete
                  End If
                Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> Adr
            Else
                Rows(i).Delete
            End If
        End With
    Next i
 
    sat = Cells(Rows.Count, "B").End(xlUp).Row + 1
    For i = 3 To Sa.Cells(Rows.Count, "A").End(xlUp).Row
        If Sa.Cells(i, "F") <> "" Then
        Set c = Range("B:B").Find(Sa.Cells(i, "B"), , xlValues, xlWhole)
            If c Is Nothing Then
                Cells(sat, "A") = sat - 2
                Cells(sat, "B") = Sa.Cells(i, "B")
                Cells(sat, "C") = Sa.Cells(i, "F")
                sat = sat + 1
            End If
        End If
    Next i
 
    Range("A3") = 1
    Range("A3").DataSeries xlColumns, xlLinear, xlDay, 1, sat - 3
 
    Set c = Nothing: Set Sa = Nothing
 
    Application.ScreenUpdating = True
 
End Sub
.
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
Valla hocam ne söylesem az, çok güzel olmuş ellerinize emeğinize sağlık..
Gözüme çarpan tek sıkıntı var, önceki kodlamada bandrol sayfasında Sıra numarasını her seferinde düzgün olarak veriyordu, ama bu kodlama da sıra numaraları birbirine giriyor. benim için büyük bi sorun değil bununla da yaşabilirim :))

Konudan farklı bir soru sormak istiyorum; acaba hücre özelliklerine müdahale edememek mümkün mü? yani ben ana sayfadan satır sildiğimde, üst üste gelen iki satırın zemin renklerinin farklı kalmasını istiyorum..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Hücre biçimi olayını biraz daha açarmısınız. Sıra numarasını ikisiyle birlikte tekrar gözden geçiririm.
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
Anasayfa da satırlar bir açık renk bir koyu renk olarak sıralı.. ama ana sayfadan bi müşteri sildiğimde aradaki bu sefer iki renk üst üste gelmiş oluyor.. bunu engelleyebilir miyiz?
Örnek;
1. Satır Zemin Rengi
2. Satır Zemin Rengi
3. Satır Zemin Rengi

buradan ikinci satırı sildiğimizde iki renk üst üste gelmiş oluyor..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Engelleme değilde, bozulduktan sonra kod ile eski haline çevirebiliriz. Yada hic bozulmadan koşullu biçimlendirme ile yapabiliriz. Tercih sizin.?
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
hangisi daha iyi olacaksa takdir sizin hocam.. koşullu biçimlendirme ile biraz uğraşmıştım ama becerememiştim..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
hangisi daha iyi olacaksa takdir sizin hocam.. koşullu biçimlendirme ile biraz uğraşmıştım ama becerememiştim..
Koşullu biçimlendirme için tarif edeyim.

A3: D298 aralığını seçin ve zemin rengini beyaz yapın, daha sonra alan seçili iken koşullu biçimlendirmye,

=MOD(SATIR();2)=0

formülünü yazıp biçimden zemin rengini gri olarak belirleyip tamam ile işlemi bitirin.

.
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
Allah razı olsun hocam, ellerinize emeğinize sağlık çok teşekkürler..

Sıralama konusunun çok bi önemi yok hocam, yapbilirsenizde olur, olmasa da olur..

Teşekkürler..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Set c = Nothing: Set Sa = Nothing

satırından önce aşağıdaki kodları ekleyerek deneyin.

Range("A3") = 1
Range("A3").DataSeries xlColumns, xlLinear, xlDay, 1, sat - 3

#7 numaralı mesajı ben bu şekilde düzenledim.
 

tirEdsOuL

Altın Üye
Katılım
3 Şubat 2009
Mesajlar
326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altın Üyelik Bitiş Tarihi
24-08-2026
Herşey için çok sağolun hocam, tıkır tıkır çalışıyor artık..

Dilerseniz konu başlığını [Çözüldü] olarak değiştirebilirsiniz..
 
Üst