• DİKKAT

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

Aktif satırda formül sonucu versin

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba arkadaşlar hayırlı sabahlar.

Gerçek sayfamda verilerim çok fazla, ekkte gönderdiğim örnek sayfamda C sütununa soyadını, D sütununa ismi yazdığımda AC sütununda soyadını ve adını otomatik olarak birleşik yazıyor.
Soyadı ve adı girdiğimde AC sütunundaki formül her seferinde en baştan hesaplayarak sonucu yazdığı için işlem uzun sürüyor.

Benim istediğim hangi satırda soyadı ve adı yazdığımda o satırdaki AC sütununda formül sonucunu yazsın istiyorum.

Yardım edecek arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Isim birlestirme islemini
Makro ile buton tiklayarak yapabiliriz.

.
 
Sayın Hüseyin Bey ilginize çok teşekkür ederim. Güzel bir firik aklıma gelmemişti.

Şöyle bir şey olabilir mi? Gönderdiğim sayfanın AD sütununda fare ile çift tıkladığımda aşağıdaki kod günün tarihini sadece o hücreye atıyor.

Benim istediğimde bu şekilde bir şeydi. Bu şekilde olabilir mi?


Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 30 Then
If Target.Row >= 2 Then
ActiveCell.FormulaR1C1 = Format(Now, "dd.mm.yyyy")
End If
End If
End Sub
 
Aşağıdaki gibi yapmaya çalıştım ancak hata verdi.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 30 Then
If Target.Row >= 2 Then
ActiveCell.FormulaR1C1 = Format(Now, "dd.mm.yyyy")
End If
End If

[COLOR="Red"]If Target.Column = 29 Then
If Target.Row >= 2 Then
ActiveCell.FormulaR1C1 = "=RC[-26]&"" ""&RC[-25]"
    .Value = .Value
    End With
End If
End If[/COLOR]
End Sub
 
Arkadaşlar aşağıdaki gibi yaptım bu seferde formülün kendisini verdi.
Formülün sonucunu verdirirsek olacak bu iş.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 30 Then
If Target.Row >= 2 Then
ActiveCell.FormulaR1C1 = Format(Now, "dd.mm.yyyy")
End If
End If

[COLOR="red"]If Target.Column = 29 Then
If Target.Row >= 2 Then
ActiveCell.FormulaR1C1 = "=RC[-26]&"" ""&RC[-25]"
End If
End If[/COLOR]
End Sub
 
. . .

Liste uzarsa çift tıklama işlemi zor olabilir.

İsimlerle işlem yaptıktan sonra aşağıdaki kodları çalıştırın.
Tablonuzda buna benzer bir kodlama vardı zaten.

Kod:
Sub kod()
    Application.ScreenUpdating = False
    For i = 2 To Cells(Rows.Count, "B").End(3).Row
        Cells(i, "AC") = Cells(i, "C") & " " & Cells(i, "D")
    Next i
    Application.ScreenUpdating = true
End Sub

. . .
 
Merhaba Sayın ERASLAN.

Aşağıdaki kod ile, C ve D sütunu dolu (ad ve soyad yazılmış) ve AD sütununa çift tıklarsanız;
-- AC sütununa AD ve SOYADI birleştirir,
-- AD hücresine günün tarihini yazar.
Yani Module1'deki kod'a gerek yok, onu silebilirsiniz.
Kod:
[FONT="Arial Narrow"][B][COLOR="Blue"]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)[/COLOR][/B]
If ActiveCell.Column <> 30 Or Cells(ActiveCell.Row, 3) = "" Or Cells(ActiveCell.Row, 4) = "" Then Exit Sub
    Cells(ActiveCell.Row, 29) = Cells(ActiveCell.Row, 3) & " " & Cells(ActiveCell.Row, 4)
    Cells(ActiveCell.Row, 30) = Format(Now, "dd/mm/yyyy")
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
Sayın Hüseyin Bey ve Sayın Ömer Bey orjinal dosyam iş yerinde olduğu için ve vardiyalı çalıştığımdan dolayı bilgisayar başına yeni geçtim, ilgilerinize çok teşekkür ederim. Kodlar gayet güzel çalışıyor ellerinize sağlık.

Sayın Ömer Bey sizin kodu kullanacağım, şöyle bir şey ortaya çıkıyor.
Sadece AD sütununda herhangi bir hücreye çift tıkladığımda aynı hücreye günün tarihini ve AC sütunundaki soyadı ve adını yazıyor, AC sütununa çift tıkladığımda hiç birşey olmuyor.

Benim istediğim AC sütunundaki hücreye çift tıkladığımda soyadı adı birleştirmesi yapsın, AD sütunundaki hücreye çift tıkladığımda günün tarihini atsın istiyorum, bu işlem ayrı ayrı olursa daha iyi olacak.

Kodlarda yer değiştirme yaptım ama olmadı.
 
Son düzenleme:
Sayın Ömer Bey aşağıdaki gibi kodda değişiklik yaptım 1.kod (kırmızı renkli) çalıştı, 2.kod çalışmadı.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
[COLOR="Red"]If ActiveCell.Column <> 29 Then Exit Sub
    Cells(ActiveCell.Row, 29) = Cells(ActiveCell.Row, 3) & " " & Cells(ActiveCell.Row, 4)[/COLOR]
If ActiveCell.Column <> 30 Then Exit Sub
    Cells(ActiveCell.Row, 30) = Format(Now, "dd.mm.yyyy")
End Sub
 
Merhaba Sayın ERASLAN.
.
Kod:
[FONT="Arial Narrow"][COLOR="Blue"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)[/B][/COLOR]
If ActiveCell.Column < 29 Or ActiveCell.Column > 30 Or _
    Cells(ActiveCell.Row, 3) = "" Or Cells(ActiveCell.Row, 4) = "" Then Exit Sub
If ActiveCell.Column = 29 Then _
    Cells(ActiveCell.Row, 29) = Cells(ActiveCell.Row, 3) & " " & Cells(ActiveCell.Row, 4)
If ActiveCell.Column = 30 Then Cells(ActiveCell.Row, 30) = Format(Now, "dd.mm.yyyy")
    Columns("AC:AD").AutoFit: Cells(ActiveCell.Row + 1, ActiveCell.Column).Activate
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
Sayın Ömer Bey aradığım buydu işte ellerinize sağlık çok teşekkür ederim, hayırlı geceler hayırlı çalışmalar.
 
Estağfurullah, iyi günler dilerim.
 
Geri
Üst