Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Excel'e Yeni Başlayanlar
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Excel'e Yeni Başlayanlar Excel kullanmaya yeni başladıysanız sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 29-12-2017, 12:03   #1
giwara
 
Giriş: 28/12/2017
Mesaj: 11
Excel Vers. ve Dili:
Office 365, ZohoDocs
Varsayılan Hücreye Değer Girildiğinde Saat Ataması

Merhaba arkadaşlar,

Elimizdeki dosyada A hücresine değer girdiğimizde C hücresine saati atamamız gerekiyor. Ve bu saatin değişmemesi yani sabit kalması gerekiyor.

Böyle bir kod normal excel dosyasında çalışıyor. Fakat bizim kullandığımız sistemde maalesef kodu çalıştıramıyoruz.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:A65536]) Is Nothing Then Cells(Target.Row, "B") = Format(Now, "hh:mm")
If Not Intersect(Target, [C1:C65536]) Is Nothing Then Cells(Target.Row, "D") = Format(Now, "hh:mm")
End Sub
[A1:A65536] kodunda sıkıntı veriyor. Biz de başka kod bulduk.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns("G"), Target.Parent.UsedRange) Is Nothing Then
        On Error GoTo Safe_Exit
        Application.EnableEvents = False
        Dim rng As Range
        For Each rng In Intersect(Target, Columns("G"), Target.Parent.UsedRange)
            If CBool(Len(rng.Value2)) And Not CBool(Len(rng.Offset(0, 1).Value2)) Then
                rng.Offset(0, 1) = Now
                 ElseIf Not CBool(Len(rng.Value2)) And CBool(Len(rng.Offset(0, 1).Value2)) Then
                rng.Offset(0, 1) = vbNullString
            End If
        Next rng
    End If
Safe_Exit:
    Application.EnableEvents = True
End Sub
Şu anda kullandığımız kod bu. Ve bu kod sistemimizde sorunsuz çalışıyor. Bu kodda G satırından birine değer girdiğimizde H hücresinde saat yazıyor.

Bizim sıkıntımız ise G'ye değer girdiğimizde mesela I hücresine yazmasını istiyoruz.
İkinci sıkıntımız ise bu saat yazma işlemini farklı farklı sütunlarda gerçekleştirebilmemiz mümkün müdür? Mesela G'ye yazdık I'da çıktı. J'ye değer girip K'da saat yazdırabilir miyiz? Yani aynı işlemi başka sütunlarda da gerçekleştirmek istiyoruz.

Bu kodu çoğaltmayı denedim ama başaramadım. Yardımcı olabilecek biri var mıdır?
giwara Çevrimdışı   Alıntı Yaparak Cevapla
Eski 29-12-2017, 14:51   #2
muygun
Özel Üye
 
muygun kullanıcısının avatarı
 
Giriş: 06/07/2004
Mesaj: 6,899
Excel Vers. ve Dili:
Excel-2003 Türkçe
Varsayılan

Merhaba;
" Biz de başka kod bulduk." dediğiniz kodda;
Columns("G")
İbaresi kodların hangi sütun için işlem yapacağını belirtir. (siz bu harfi ihtiyacınıza göre tanımlayın)
Offset(0, 1)
İbaresinde 1 rakamı ise işlem yaptığınız sütundan sonraki yazacağı alanı belirler.
Yani G sütununda işlem yapıyorsanız yazacağı alan aynı satırda bir sonraki sütun (yani "H" sütunu) demektir.
Bu rakamı artırarak yada eksilterek istediğiniz alana yazdırabilirsiniz.
Offset(0, 2) G sütunundan 2 sonraki sütun
Offset(0, -2) G sütunundan 2 önceki sütun
gibi...

İyi çalışmalar
__________________
Excel-2003 - Türkçe
muygun Çevrimdışı   Alıntı Yaparak Cevapla
Eski 29-12-2017, 19:42   #3
giwara
 
Giriş: 28/12/2017
Mesaj: 11
Excel Vers. ve Dili:
Office 365, ZohoDocs
Varsayılan

Çok teşekkürler.

Bu kodu 2. veya 3.defa kullanma şansımız var mı? A sütununa girdiğimizde C sütununda saat yazıyor. Ama D'ye herhangi veri girdiğimizde F sütunundan da saat yazılmasını istiyoruz.
giwara Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-12-2017, 00:49   #4
muygun
Özel Üye
 
muygun kullanıcısının avatarı
 
Giriş: 06/07/2004
Mesaj: 6,899
Excel Vers. ve Dili:
Excel-2003 Türkçe
Varsayılan

Merhaba;
Sayfanın kod bölümüne;

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Columns("A"), Target.Parent.UsedRange) Is Nothing Then
Application.EnableEvents = False
For Each rng In Intersect(Target, Columns("A"), Target.Parent.UsedRange)
If CBool(Len(rng.Value2)) And Not CBool(Len(rng.Offset(0, 2).Value2)) Then
rng.Offset(0, 2) = Now
ElseIf Not CBool(Len(rng.Value2)) And CBool(Len(rng.Offset(0, 2).Value2)) Then
rng.Offset(0, 2) = vbNullString
End If
Next rng
End If

If Not Intersect(Target, Columns("D"), Target.Parent.UsedRange) Is Nothing Then
Application.EnableEvents = False
For Each rng In Intersect(Target, Columns("D"), Target.Parent.UsedRange)
If CBool(Len(rng.Value2)) And Not CBool(Len(rng.Offset(0, 2).Value2)) Then
rng.Offset(0, 2) = Now
ElseIf Not CBool(Len(rng.Value2)) And CBool(Len(rng.Offset(0, 2).Value2)) Then
rng.Offset(0, 2) = vbNullString
End If
Next rng
End If

Application.EnableEvents = True
End Sub

Şeklinde kodları yerleştirerek deneyin.
Başka bir sütun için
If Not
ile başlayıp,
End If
ile biten aralığı kopyalayın ve ;
End If
satırından sonra yapıştırın.
Sonrada sütun adını isteğe göre değiştirin.

İyi çalışmalar.
__________________
Excel-2003 - Türkçe
muygun Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-12-2017, 09:17   #5
giwara
 
Giriş: 28/12/2017
Mesaj: 11
Excel Vers. ve Dili:
Office 365, ZohoDocs
Varsayılan

Çok teşekkürler ellerine sağlık.
giwara Çevrimdışı   Alıntı Yaparak Cevapla
Eski 31-12-2017, 11:06   #6
giwara
 
Giriş: 28/12/2017
Mesaj: 11
Excel Vers. ve Dili:
Office 365, ZohoDocs
Varsayılan

Son bir sıkıntımız kaldı. Sırala işlemini kullandığımız için saatler kayıyor. Sırala işlemini bu formülün içine nasıl dahil edebiliriz?

Mesela A B C D E F hücrelerin sıralıyoruz. Gün içinde sıralama sürekli değişiyor. Ama saat sütununa sırala eklediğimizde formül çalışmaz hale geliyor. Sırala fonksiyonu koymadığımızda da saatler kayıyor.

Nasıl çözüm yolu bulabiliriz?
giwara Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 11:46


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Rampa- Rotary- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Çorlu Sürücü Kursu- Şişli Avukat- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Havuz- Makina- Danışmazlar-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden