uyarı mesajına göre (vbyes - vbno) seçeneğine kayıt yapsın

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,478
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
Merhaba arkadaşlar;
Button click yordamının altına
Aşağıdaki kod çalışıyor

Kod:
Private Sub CommandButton9_Click()

Set S1 = Sheets("Rapor")
    With ListBox6
        S1.Cells(S1.Rows.Count, 1).End(3)(2, 1).Resize(.ListCount, .ColumnCount) = .List
         End With

End Sub
end[code]

Ancak aşağıdaki gibi çalışmasını istiyorum.

butona tıkladığımızda Rapor sayfasında a5'den R200'e kadar olan alanı silecek sonra üstteki kodu çalıştıracak
Uyarı mesajı çıkacak : uyarı mesajboxda "ÜRETİM PLANINA DEVAM ETMEK İSTİYOR MUSUNUZ") diye soracak EVET'i seçersem userformda aynı butonla tekrar kayıt yapmamı sağlayacak. ve bu sefer kayıtta aralık seçip silmeyecek en alttaki dolu satırdan devam edip üstteki kodu çalıştıracak. Evet mesajını seçtikçe bu işlemi tekrarlayacak.
HAYIR ı seçersem "ilgili aydaki üretim planınız oluşturulmuştur" diye bir mesaj verip kapatacak.

İnşallah anlatabilmişimdir.



eğer mesaja HAYIR
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kod bloğunu deneyebilirsiniz. Kendi kodlarınıza uyarlarsınız.

C++:
Option Explicit

Sub Test()
    Dim Onay As Byte
    
    Onay = MsgBox("Üretim Planına devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2)
    
    If Onay = vbNo Then Exit Sub
    
    Rem buraya kayıt kodlarınızı yazınız...
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,478
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
Aşağıdaki kod bloğunu deneyebilirsiniz. Kendi kodlarınıza uyarlarsınız.

C++:
Option Explicit

Sub Test()
    Dim Onay As Byte
   
    Onay = MsgBox("Üretim Planına devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2)
   
    If Onay = vbNo Then Exit Sub
   
    Rem buraya kayıt kodlarınızı yazınız...
End Sub
Hocam özür anlayamadım.
Kodları button click düğmesinin altına mı yazacağım?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Biraz uğraşırsanız çözebileceğinizi düşünüyorum.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,478
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
Biraz uğraşırsanız çözebileceğinizi düşünüyorum.
Hocam merhaba;
Evet sonunda anladım:) aşağıdaki gibi yaptım.

Kod:
Option Explicit

Sub Test()

    Dim Onay As Byte
    Set S1 = Sheets("Rapor")
    S1.Range("A5:R200").ClearContents
   
    Onay = MsgBox("Üretim Planına devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2)
    
    If Onay = vbNo Then Exit Sub
    Rem
    
      With ListBox6
       S1.Cells(S1.Rows.Count, 1).End(3)(2, 1).Resize(.ListCount, .ColumnCount) = .List
    End With
End Sub

Private Sub CommandButton9_Click()
Call Test
End Sub end[code]

Yanlız hocam ben soruyu yanlış sormuşum çok özür dilerim.

Koddaki mantık şu şekilde olacaktı:
Butona tıkladığımızda Rapor sayfasının a5:R200 aralığını silip temizleyecek. Sonra aşağıdaki kodu çalıştıracak yani listbox6  verilerini Rapor sayfasına aktaracak.
[code]
  With ListBox6
       S1.Cells(S1.Rows.Count, 1).End(3)(2, 1).Resize(.ListCount, .ColumnCount) = .List
    End With end[code]

Butona tekrar tıkladığımda msgbox uyarı mesajı verecek ("Üretim planına devam etmek istiyor musunuz") diye Burada Hayır dersem bir şey yapmadan koddan çıkacak
Evet dersem : Bu defa Rapor sayfasında ki o a5:R200 aralığını silmeyecek onun yerine A sütununda en son satırda kaldığı yerden listbox6 yı sayfaya aktaracak.

İnşallah anlatabilmişimdir.

Saygı ve Sevgilerimle
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu tarz silme, renklendirme, biçimlendirme tarzında kodları MAKRO KAYDET yöntemini kullanarak kendinizde elde edip kodlarınıza uyarlayabilirsiniz.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,478
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
Bu tarz silme, renklendirme, biçimlendirme tarzında kodları MAKRO KAYDET yöntemini kullanarak kendinizde elde edip kodlarınıza uyarlayabilirsiniz.
Hocam renklendirme yada biçimlendirme yok kodlarımda.
Koşula bağlı olarak kayıt şeklinde bir kod
yani ;
en başta belirlenen aralığı silecek, sayfaya listboxdan verileri aktaracak.
yine buttona tıkaldığımızda bu defa soracak ("Üretim planına devam etmek istiyor musunuz") evet seçilirse sayfadaki o aralığı silmeden diğer kayıt üzerine ekleme yapacak.
hayır seçilirse kayıttan çıkacak

Kusura bakmayın gerçekten ben derdimi anlatamadım üstadım.

Saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben mesajımda ki ifadeleri örnek olarak kullandım.

Siz diyorsunuz ki "en başta belirlenen aralığı silecek"

Bende diyorum ki bu işlemin kodlarını MAKRO KAYDET yöntemini kullanarak elde edebilirsiniz. Neden derseniz bunlar temel kodlardır. Uzun süredir forumu takip eden üyelerimizin bu tarz durumları çözebileceğini düşünüyorum.

Sadece biraz çaba gerekiyor...
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,478
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
Ben mesajımda ki ifadeleri örnek olarak kullandım.

Siz diyorsunuz ki "en başta belirlenen aralığı silecek"

Bende diyorum ki bu işlemin kodlarını MAKRO KAYDET yöntemini kullanarak elde edebilirsiniz. Neden derseniz bunlar temel kodlardır. Uzun süredir forumu takip eden üyelerimizin bu tarz durumları çözebileceğini düşünüyorum.

Sadece biraz çaba gerekiyor...
Hocam aşağıdaki şekilde çözdüm. Teşekkürler yönlendirmeniz ve zorlamanız için :)

Kod:
Private Sub CommandButton9_Click()

Set s1 = Sheets("Rapor")
If MsgBox("Üretim planı silinsin mi", vbYesNo) = vbYes Then
Set s1 = Sheets("Rapor")
    s1.Range("A5:R200").ClearContents
With ListBox6
       s1.Cells(s1.Rows.Count, 1).End(3)(2, 1).Resize(.ListCount, .ColumnCount) = .List
    End With
    
    
Else

With ListBox6
       s1.Cells(s1.Rows.Count, 1).End(3)(2, 1).Resize(.ListCount, .ColumnCount) = .List
    End With
    
    End If
Saygı ve sevgilerimle
 
Üst