- Katılım
- 5 Eylül 2007
- Mesajlar
- 1,247
- Excel Vers. ve Dili
- ofis 2010
- Altın Üyelik Bitiş Tarihi
- 21-07-2024
Merhaba,
CTRL ile seçtiğim hücre sabit kalarak mause ile muhtelif hücrelerdeki değeri tıklayarak ilk seçili hücrede toplamının alınması sağlanıyor. Ancak bu makroda üçüncü tıkladığım hücreyi toplam dahil ediyor ancak ikinci yani ilk toplama dahil ettiğim değeri siliyor. Sonrasında sorunsuz hücreleri tıkladıkça toplama dahil ediyor. Üçüncü tıklamada, ikinci tıklamadaki değeri silmemesini nasıl yapılabilir.
Makroda nasıl bir güncelleme yapılabilir.
CTRL ile seçtiğim hücre sabit kalarak mause ile muhtelif hücrelerdeki değeri tıklayarak ilk seçili hücrede toplamının alınması sağlanıyor. Ancak bu makroda üçüncü tıkladığım hücreyi toplam dahil ediyor ancak ikinci yani ilk toplama dahil ettiğim değeri siliyor. Sonrasında sorunsuz hücreleri tıkladıkça toplama dahil ediyor. Üçüncü tıklamada, ikinci tıklamadaki değeri silmemesini nasıl yapılabilir.
Makroda nasıl bir güncelleme yapılabilir.
Kod:
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Function IsCtrlPressed() As Boolean
IsCtrlPressed = (GetKeyState(vbKeyControl) And &H8000) <> 0
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static previousSelection As Range
Dim total As Double
Dim cell As Range
' Ctrl tuşuna basılı mı kontrol et
If IsCtrlPressed() Then
If previousSelection Is Nothing Then
' İlk seçimde önceki seçimi kaydet
Set previousSelection = Target
Else
' Önceki seçimdeki hücreleri temizle
previousSelection.ClearContents
'Yeniden toplama yapmadan önce total değerini sıfırla
total = 0
End If
' Seçilen hücrelerin değerlerini toplamak için
For Each cell In Target
' Tek bir hücre olduğunda işlem yap
If cell.Cells.Count = 1 Then
total = total + cell.Value
End If
Next cell
' Tıklanan hücreye toplam değeri yaz
Target.Cells(1, 1).Value = total
Else
' Ctrl tuşu basılı değilse önceki seçimi temizle
Set previousSelection = Nothing
End If
End Sub