Hücreye rakam girince ilave yapan dosyalarım

Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Merhaba, sağlıklı günler herkese

Farklı makrolardan oluşan ama, birbiriyle aynı işi yapan iki adet dosyam vardır.

Bu iki adet dosyada, düzeltilmesi geren minik ve basit sorunlar vardır.

Bu sorunları çok güzel bir biçimde belirtmeye çalıştım.

Sayın uzmanlarımdan düzeltilmesini rica ederim.


https://www.dosya.tc/server27/66txjw/HUCREYE_RAKAM_GIRINCE_ILAVE_YAPAN_DOSYAM_1.xls.html



https://www.dosya.tc/server27/duj8rr/HUCREYE_RAKAM_GIRINCE_ILAVE_YAPAN_DOSYAM_2.xls.html



Saygılarımla
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
1.Dosyanız için Worksheet_Change olayında ilgili kısmı aşağıdaki gibi değiştirin.
Not: IF sorgularında Eski değerle yeni değerin aynı olup olmadığını da ilave ettim
Rich (BB code):
    If Target <> "" Then
        If Eski_Veri = "" Then 'Or InStr(1, Eski_Veri, "+") > 0 Then
            Target = Target
        ElseIf Eski_Veri <> "" And InStr(1, Target, "+") > 0 And Target <> Eski_Veri Then
            Target = Replace(Eski_Veri, ".", ",") & "+" & Target
        ElseIf Eski_Veri <> "" And InStr(1, Target, ",") = 0 And Target <> Eski_Veri Then
            Target = Replace(Eski_Veri, ".", ",") & "+" & Replace(Target, ",", ".")
        End If
    End If
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
1.Dosyanız için Worksheet_Change olayında ilgili kısmı aşağıdaki gibi değiştirin.
Not: IF sorgularında Eski değerle yeni değerin aynı olup olmadığını da ilave ettim
Rich (BB code):
    If Target <> "" Then
        If Eski_Veri = "" Then 'Or InStr(1, Eski_Veri, "+") > 0 Then
            Target = Target
        ElseIf Eski_Veri <> "" And InStr(1, Target, "+") > 0 And Target <> Eski_Veri Then
            Target = Replace(Eski_Veri, ".", ",") & "+" & Target
        ElseIf Eski_Veri <> "" And InStr(1, Target, ",") = 0 And Target <> Eski_Veri Then
            Target = Replace(Eski_Veri, ".", ",") & "+" & Replace(Target, ",", ".")
        End If
    End If
Sayın NextLevel
Çok teşekkürler, deneyip hemen bildireceğim
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Sayın NextLevel, kodu verdiğinizle değiştirip denedim. Fakat şöyle bir şey oldu.
Mesela A1 e 4 yazdım
sonra tekrar 4 yazdım
4+4 olması gerekirken, sadece 4 olarak görünüyor.

Yani aynı rakamları yazınca etki etmiyor.
(rakamlar farklı olursa sorun olmuyor)
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sanırım F2 tuşu basılınca Change olayında bunu anlamak gereken bir satır yazmak lazım ancak ben şu an bilmiyorum. Bilgisi olan birileri elbet çıkacaktır.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kodu ThisWorkbook bölümüne uygulayın. (İki dosyanız içinde yapın)

Dosyanızı kaydedip kapatıp açıp deneyin.

Bu işleme ek olarak formül çubuğunuda gizlemenizde fayda var.

C++:
Private Sub Workbook_Activate()
    Application.OnKey "{F2}", ""
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{F2}"
End Sub

Private Sub Workbook_Deactivate()
    Application.OnKey "{F2}"
End Sub

Private Sub Workbook_Open()
    Application.OnKey "{F2}", ""
End Sub

Aşağıdaki kodu ise 2. dosyanızda uygulayın.

C++:
Option Explicit
Dim İlk_Veri As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If Target = Empty Then Exit Sub
    Application.EnableEvents = False
    If Target <> "" Then
        If İlk_Veri <> "" Then
            Target = İlk_Veri & "+" & Target.Text
        End If
    Else
        Target = Target.Text & "+"
    End If
Son: Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    İlk_Veri = Target
End Sub
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Sayın Korhan Ayhan uzmanım
önce teşekkür ederim yardımınız için.
????
Aynen dediklerinizi yaptım. İki dosya da düzelmiş oldu. Fakat F2 özelliği de pasif hale gelmiş oldu. Yani F2 ye basıp hücre içi düzenleme yapmak, sık kullandığım bir alışkanlık.

Acaba F2 yi pasif hale getirmeden yukarıdaki örnek dosyaları tamir edebilmemiz mümkün olabilir mi?

Saygılarımla
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Uzmanım şimdi aklıma şöyle bir şey geldi. F2 aktif hale gelemiyorsa bile en kötü ihtimalle, düzenlemeleri kendi sütununda yapmam, kopyalarım başka bir sütuna, orada yaparım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hücreyi düzenlemek İçin benim bildiğim 3 yöntem var.

Hücre üzerine direk veri yazmak ya da kopyala-yapıştır yapmak.
Hücreyi seçip F2 yaparak değişiklik-giriş yapmak.
Hücreye çift tıklayarak değişiklik-giriş yapmak.

Sizde hücreye giriş anında bazı kontroller yapmak istiyorsunuz. Hücre içine girdiğinizde Excel bunu değişiklik olarak algılar. Hiçbir işlem yapmasanız da hücre içine girdiğiniz için Excel bunu değişiklik yapılmış gibi yorumlar.

Bu durumda istediğiniz işlem bana yapılamaz gibi geliyor.

Belki diğer arkadaşların aklına farklı bir çözüm gelebilir.
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Hücreyi düzenlemek İçin benim bildiğim 3 yöntem var.

Hücre üzerine direk veri yazmak ya da kopyala-yapıştır yapmak.
Hücreyi seçip F2 yaparak değişiklik-giriş yapmak.
Hücreye çift tıklayarak değişiklik-giriş yapmak.

Sizde hücreye giriş anında bazı kontroller yapmak istiyorsunuz. Hücre içine girdiğinizde Excel bunu değişiklik olarak algılar. Hiçbir işlem yapmasanız da hücre içine girdiğiniz için Excel bunu değişiklik yapılmış gibi yorumlar.

Bu durumda istediğiniz işlem bana yapılamaz gibi geliyor.

Belki diğer arkadaşların aklına farklı bir çözüm gelebilir.
Uzmanım ve diğer tüm uzmanlarımız, varlığınız yeter. Sizin son düzeltmeleriniz yetti de arttı bile sağolun varolun.

Fakat kafama takılan minik bir şey oldu. Hani yukarıda “formül çubuğunu gizlemenizde fayda var” demiştiniz ya, (yer kaplamasın diye sıklıkla gizlerim formül çubuğunu);
farklı bir sebebi var mıdır acaba?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
F2 tuşunu pasif yaptık ama mouse ile formül çubuğuna tıklayıp enter yaptığınızda yine aynı sorunu yaşayacaksınız. Bu sebeple gizleyin dedim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit
Dim İlk_Veri As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If Target = Empty Then
        İlk_Veri = Target
        Exit Sub
    End If
    Application.EnableEvents = False
    If Target <> "" Then
        If İlk_Veri <> "" Then
            Target = İlk_Veri & "+" & Target.Text
        End If
    Else
        Target = Target.Text & "+"
    End If
Son: Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    İlk_Veri = Target
End Sub
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Deneyiniz.

C++:
Option Explicit
Dim İlk_Veri As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If Target = Empty Then
        İlk_Veri = Target
        Exit Sub
    End If
    Application.EnableEvents = False
    If Target <> "" Then
        If İlk_Veri <> "" Then
            Target = İlk_Veri & "+" & Target.Text
        End If
    Else
        Target = Target.Text & "+"
    End If
Son: Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    İlk_Veri = Target
End Sub
Sayın uzmanım düzeldi, sağolunuz
 
Üst