• DİKKAT

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

Command Button yerine hücreye bağlama

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,543
Excel Vers. ve Dili
2021 LTSC TR
Kod:
Private Sub CommandButton3_Click()
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AC").Value = Worksheets(ActiveSheet.Name).Cells(i, "AC").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AD").Value = Worksheets(ActiveSheet.Name).Cells(i, "AD").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[N180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "N").Value
Worksheets(ActiveSheet.Name).Cells(i, "AE").Value = Worksheets(ActiveSheet.Name).Cells(i, "AE").Value + YER
Next i
MsgBox "1. HAKKEDİŞ AKTARIMI TAMAMLANDI"
End Sub
Kod:
Private Sub CommandButton4_Click()
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AF").Value = Worksheets(ActiveSheet.Name).Cells(i, "AF").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AG").Value = Worksheets(ActiveSheet.Name).Cells(i, "AG").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[N180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "N").Value
Worksheets(ActiveSheet.Name).Cells(i, "AH").Value = Worksheets(ActiveSheet.Name).Cells(i, "AH").Value + YER
Next i
MsgBox "2. HAKKEDİŞ AKTARIMI TAMAMLANDI"
End Sub

Kod:
Private Sub CommandButton5_Click()
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AI").Value = Worksheets(ActiveSheet.Name).Cells(i, "AI").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[K180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "K").Value
Worksheets(ActiveSheet.Name).Cells(i, "AJ").Value = Worksheets(ActiveSheet.Name).Cells(i, "AJ").Value + YER
Next i
For i = 7 To Worksheets(ActiveSheet.Name).[N180].End(3).Row
YER = Worksheets(ActiveSheet.Name).Cells(i, "N").Value
Worksheets(ActiveSheet.Name).Cells(i, "AK").Value = Worksheets(ActiveSheet.Name).Cells(i, "AK").Value + YER
Next i
MsgBox "3. HAKKEDİŞ AKTARIMI TAMAMLANDI"
End Sub

yukarıda ki kod Command Buttona bağlı çalışan kod
bu kodu

buton yerine
c3 de ki veri doğrulama ile açılan hücreye bağlayabilir miyiz?
Böyle olursa 8 tane command buttondan kurtulmuş olacağım.

Teşekkür eder saygılarımı sunarım
 
Merhaba.

Elbette bu kodları, belirli bir hücredeki (C3) değişime (elle yazarak veya veri doğrulama listesinden seçim yaparak) bağlı olarak,
istediğiniz sırayla tetiklemek/çalıştırmak mümkündür.

Sorun olabilecek/değişiklik yapılması gerekebilecek kısım ise;
mevcut CommandButton_Click kodlarındaki ActiveSheet....kısımları olabilir.
Onu'da doğrudan, işlem yapılacak sayfa adını kullanarak düzeltmek mümkün gibi görünüyor.
Tabi kullandığınız CommandButton'ların hangi sayfada/sayfalarda konumlandırdığınız da önemli.
İsterseniz mevcut kodların çalıştığı örnek belge yüklerseniz daha net sonuca ulaşabileceğinizi düşünüyorum.

Örneğin aşağıdaki gibi bir yapı olabilir veya kodlar tek bir kod blokunda birleştirilip
Call...şeklinde bu yeni kod çağrılabilir ya da doğrudan kodlar aşağıdaki Call.... kısımlarının yerine eklenebilir.
(bu tür kod'un Modül yerine ilgili sayfanın kod bölümüne uygulanması lazım)
.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [[B][COLOR="Red"]C3[/COLOR][/B]]) Is Nothing Then Exit Sub
[B][COLOR="Blue"]Call ......
Call ......
Call ......[/COLOR][/B]
End Sub
 
Geri
Üst