• DİKKAT

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

Hücre change kodu textbox change olayı gibi çalışsın

Merhaba,
Verdiğim linkteki 5. mesajdaki dosyayı alternatif olarak düşünebilirsiniz.
http://www.excel.web.tr/f50/yazdykca-dioer-sutuna-gecsin-t97071.html


leumruk'un söylediğide olabilir


Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

End Sub

olayında tuş kontrolü yapmak gerekir. ilk fırsatım da ilgileneceğim.


Kod:
Private Sub TextBox1_Change()
If Intersect(Target, [A1]) Is Nothing Then Sheets("Sayfa1").AutoFilterMode = False
Sheets("Sayfa1").Range("A2:B300").AutoFilter field:=1, Criteria1:="*" & Sheets("Sayfa1").Range("A1").Value & "*"
End Sub
 
Cengiz Bey ve Mustafa Bey, örnekler için teşekkürler. :ok::


Sayın leumruk, zekice düşünülmüş bu kodu paylaştığınız için teşekkür ederim.
:bravo:


Cengiz Bey, sizin kodlardaki, CellChange prosedüründeki 1 saniye bekleme süresini bu şekilde biraz daha kısaltarak daha kullanışlı hâle getirilebilir.
Kod:
[FONT="Trebuchet MS"]Sub CellChange()
    yaz = Timer
    dur = 0.3
    While Timer < yaz + dur
    Wend
    SendKeys "{Enter}{UP}", True
End Sub[/FONT]
Ya da ilgili prosedürde keylogger kodları bu şekilde kullanılabilir.
Kod:
[FONT="Trebuchet MS"]DefLng B, E, I, R
DefStr S
Public Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Long

Sub CellChange()
    e = 1: b = 0
    yaz = Timer
    dur = 0.3
    While Timer < yaz + dur
        For i = 1 To 255
            result = 0
            result = GetAsyncKeyState(i)
            If result = -32767 Then s = s + Chr$(i)
        Next i
        If Len(s) = 100 Then
            Cells(e, 2).Value = s
            e = e + 1
        End If
        Cells(e, 2).Value = s
    Wend
    SendKeys "{Enter}{UP}", True
End Sub[/FONT]
 
Cengiz Bey ve Mustafa Bey, örnekler için teşekkürler. :ok::


:bravo:


Cengiz Bey, sizin kodlardaki, CellChange prosedüründeki 1 saniye bekleme süresini bu şekilde biraz daha kısaltarak daha kullanışlı hâle getirilebilir.
Kod:
[FONT="Trebuchet MS"]Sub CellChange()
    yaz = Timer
    dur = 0.3
    While Timer < yaz + dur
    Wend
    SendKeys "{Enter}{UP}", True
End Sub[/FONT]
Ya da ilgili prosedürde keylogger kodları bu şekilde kullanılabilir.
Kod:
[FONT="Trebuchet MS"]DefLng B, E, I, R
DefStr S
Public Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Long

Sub CellChange()
    e = 1: b = 0
    yaz = Timer
    dur = 0.3
    While Timer < yaz + dur
        For i = 1 To 255
            result = 0
            result = GetAsyncKeyState(i)
            If result = -32767 Then s = s + Chr$(i)
        Next i
        If Len(s) = 100 Then
            Cells(e, 2).Value = s
            e = e + 1
        End If
        Cells(e, 2).Value = s
    Wend
    SendKeys "{Enter}{UP}", True
End Sub[/FONT]


haklısın biraz süre olarak gecikme vardı.

teşekkürler elinize ve zihninize sağlık :ok::
 
Rica ederim Cengiz Bey, ileride belki bir iyileştirme daha yapılabilir..
 
İnşallah.

söyle bir sıkıntıda var hücreye çıkış ve giriş yaparken klavyeye basma hızı ile senkronize olması gerek. yazım esnasında hücreye çıkış-giriş yaparken hızdan dolayı önceki veri siliniyor. hız senkronize olduğunda silinmiyor.
 
Geri
Üst