Soru Koşullu Satır Kopyalama ve Silme

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Merhaba;
Acil Yardım........ lütfen

SSH sayfasında A2'den A..... 'e kadar devam eden bilgilerin, M sütununda her hangi bir satıra "Hazır" yazdığımda ilgili bilgileri Sayfa2'ye sıra numarası 1 den başlayarak sıralı bir şekilde kopyalamasını ve sonra SSH sayfasındaki verinin silinmesini rica ediyorum
Bu sayfada on binlerce giriş var ve içinden çıkamaz hale geldim, yardımcı olabilirseniz çok sevinirim.
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Örnk dosyanızı yollarsanız yardımcı oluruz..
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Kusura Bakmayın Yoğunluktan dosayayı eklememişim.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodları SSH sayfasının kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırıp deneyin. İlk mesajınızda M sütunu demişsiniz ama dosya yapınızdan N sütununa Hazır yazacakmışsınız gibi anladım. Bu nedenle N sütununda Hazır yazınca çalışacak şekilde ayarladım. Yalnız büyük küçük harf duyarlıdır, sadece Hazır yazınca çalışır, önce veya sonra boşluk vs karakter olursa çalışmaz:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
son = Cells(Rows.Count, "C").End(3).Row
If Intersect(Target, Range("N2:N" & son)) Is Nothing Then Exit Sub
If Target = "Hazır" Then
    sor = MsgBox(Cells(Target.Row, "E") & " firmasının " & Chr(10) & _
          Format(Cells(Target.Row, "C"), "dd/mm/yyyy") & " tarihli," & Chr(10) & _
          Cells(Target.Row, "G") & " modeline ait " & Chr(10) & _
          Cells(Target.Row, "I") & " adet " & _
          Cells(Target.Row, "H") & Chr(10) & _
          " Parça siparişi diğer sayfaya aktarılacaktır." & Chr(10) & Chr(10) & _
          "Onaylıyor musunuz?", vbYesNo)
    If sor = vbYes Then
        Application.EnableEvents = False
            yeni = Sheets("Sayfa2").Cells(Rows.Count, "A").End(3).Row + 1
            Rows(Target.Row).Copy: Sheets("Sayfa2").Cells(yeni, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        Rows(Target.Row).Copy: Sheets("Sayfa2").Rows(yeni).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False

            Sheets("Sayfa2").Cells(yeni, "A") = yeni
            Rows(Target.Row).Delete
        Application.EnableEvents = True
    End If
End If
End Sub
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Gerçekten Çok Teşekkür Ederim. Elinize Emeğinize Sağlık. İstediğimden daha iyi olmuş. Hakkınızı Helal Edin.
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Merhaba;
Tekrar aynı konu için rahatsız ediyorum.
SSH sayfası N sütununa "Hazır" yazdığım zaman açılan mesagebox a hayır dersem "Hazır" yazısı sabit kalıyor. Bir kaç kez alt alta hazır yazıp hayır dersem aşağıda kırmızı renk ile belirttiğim hatayı alıyorum.
Bir de her iki sayfanın A1 satırından başlayarak otomatik sıra numarası vermesini sağlayabilir miyiz?
 

Ekli dosyalar

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
SSH sayfası "M" sütunu olacaktı.

"Aldığım Hata Runtime-Error (13)"


Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Son
If Intersect(Target, Range("M2:M50000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Replace(Replace(Target, "i", "İ"), "ı", "I"))
Son: Application.EnableEvents = True
Son = Cells(Rows.Count, "C").End(3).Row
If Intersect(Target, Range("M2:M" & Son)) Is Nothing Then Exit Sub
On Error Resume Next
If Target = "HAZIR" Then
sor = MsgBox(Cells(Target.Row, "E") & " Firmasının " & Chr(10) & _
Format(Cells(Target.Row, "C"), "dd/mm/yyyy") & " Tarihli," & Chr(10) & _
Cells(Target.Row, "G") & " Modeline Ait " & Chr(10) & _
Cells(Target.Row, "I") & " Adet " & _
Cells(Target.Row, "H") & Chr(10) & _
" Parça siparişi diğer sayfaya aktarılacaktır." & Chr(10) & Chr(10) & _
"ONAYLIYOR MUSUNUZ?", vbYesNo)
If sor = vbYes Then
Application.EnableEvents = False
yeni = Sheets("Hazırlanan_SSH").Cells(Rows.Count, "A").End(3).Row + 1
Rows(Target.Row).Copy: Sheets("Hazırlanan_SSH").Cells(yeni, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows(Target.Row).Copy: Sheets("Hazırlanan_SSH").Rows(yeni).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Sheets("Hazırlanan_SSH").Cells(yeni, "A") = yeni
Rows(Target.Row).Delete
Application.EnableEvents = True

End If
End If
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ben kodu aşağıdaki gibi kullanınca herhangi bir hata almadım. "Hayır" deyince hücrenin boş kalmasını sağlayacak şekilde kodu güncelledim.

Hata almadığım için sizdeki hatanın nedenini bilmiyorum ama kodda kullandığınız "On error" satırlarını mümkün oldukça kullanmamanızı tavsiye ederim. Çünkü o satırlar hataları görmenizi engeller, ortadan kaldırmaz, halının altına süpürür.,

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Son = Cells(Rows.Count, "C").End(3).Row
If Intersect(Target, Range("M2:M" & Son)) Is Nothing Then Exit Sub
Application.EnableEvents = False
    Target = UCase(Replace(Replace(Target, "i", "İ"), "ı", "I"))
Application.EnableEvents = True
If Target = "HAZIR" Then
    sor = MsgBox(Cells(Target.Row, "E") & " Firmasının " & Chr(10) & _
          Format(Cells(Target.Row, "C"), "dd/mm/yyyy") & " Tarihli," & Chr(10) & _
          Cells(Target.Row, "G") & " Modeline Ait " & Chr(10) & _
          Cells(Target.Row, "I") & " Adet " & _
          Cells(Target.Row, "H") & Chr(10) & _
          " Parça siparişi diğer sayfaya aktarılacaktır." & Chr(10) & Chr(10) & _
          "ONAYLIYOR MUSUNUZ?", vbYesNo)
    If sor = vbYes Then
        Application.EnableEvents = False
            yeni = Sheets("Hazırlanan_SSH").Cells(Rows.Count, "A").End(3).Row + 1
            Rows(Target.Row).Copy: Sheets("Hazırlanan_SSH").Cells(yeni, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        Rows(Target.Row).Copy: Sheets("Hazırlanan_SSH").Rows(yeni).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False

            Sheets("Hazırlanan_SSH").Cells(yeni, "A") = yeni
            Rows(Target.Row).Delete
        Application.EnableEvents = True
    Else
        Application.EnableEvents = False
            Target.ClearContents
        Application.EnableEvents = True
    End If
End If
End Sub
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Tekrar teşekkür ederim. Sizi uğraştırıyorum kusura bakmayın.
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Merhaba Ek'te bulunan dosyam ile ilgili yardıma ihtiyacım var. Gerekli açıklamaları dosya içerinde paylaştım.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ürün Adını tıkladığınızda Useformddaki ListBox1 den ürün adını doğru çekebilmeniz için aşağıda dediğiklerimi uygulamanız yeterli olacaktır.

Userform1 kodlarınızdaki aşağıdaki satırları silin
C++:
Private Sub ListBox1_change()
ActiveCell.Value = ListBox1.Value
Cells(ActiveCell.Row, "D") = ActiveCell.Row - 1
End Sub
ListBox1 DblClick olayındakı kdolarınız aşağıdakiyle değiştirin.
C++:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If ListBox1.ListIndex < 0 Then Exit Sub
    Cells(ActiveCell.Row, "D") = ListBox1.List(ListBox1.ListIndex, 0)
    Unload Me
End Sub
Sorunuzun diğer kısmı için DEPO sayfasına kayıtlarını ne zaman alacağınızı, nasıl bir işlem yapmak istediğinizi biraz daha tarif etmelisiniz.
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Merhaba, yazdığınız kodu kopyaladıktan sonra userform da hangi hücrede ne seçersem seçeyim d sütunundaki aktif hücreye bilgi girişi yapıyor.
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Sipariş Takip ve Depo sayfalarında yazmış olduğum notlara göre yardımcı olabilirseniz sevinirim
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Merhaba, yazdığınız kodu kopyaladıktan sonra userform da hangi hücrede ne seçersem seçeyim d sütunundaki aktif hücreye bilgi girişi yapıyor.
Bu kısmı çözdünüz mü?
Ben son gönderdiğiniz dosyayı indirdim ama bir sorun göremedim.
 

Ankara55

Altın Üye
Katılım
17 Şubat 2021
Mesajlar
22
Excel Vers. ve Dili
Ofis 2019 TR 32 Bit
Ofis 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
16-03-2027
Evet hallettim. Diğer sorunlarım kaldı.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sorularınızı yapmaya çalışmadığınız tam anlamadım.

Satır eklerken kodlar hata vermesin istiyorsanız aşağıdaki ikinci satırı mevcut Change olayındaki kodlara ekleyiniz.

C++:
If Intersect(Target, Range("N3:N" & Son)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
 
Üst