Kullanıcı adını hücreye yazdırmak.

Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Merhaba

Çalışma sayfasında herhangi bir satıra kayıt yapıldığında,yanındaki boş hücreye
kayıtı yapan kullanıcıyı nasıl yazdırırım.

Saygılar
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Dosyanız ilişiktedir.
 

Ekli dosyalar

Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Elinize Sağlık ama ?

Merhaba,
Dosyanız ilişiktedir.
Sayın Dede Bey, çok güzel olmuş fakat veri yazılan hücrenin tam karşısına
değilde iki alta yada iki üste yada daha farklı hücreye yazıyor tam karşısına
yazmıyor.

Yani mouse hangi hücreye getiriyorsanız onun bir üstüne yazıyor.Direkt olarak veri yazılan hücrenin karşısına yazamazmı

Saygılar
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Örnek dosya göndermediğiniz için, Dosyanızın yapısını bilmiyorum.
Benim gönderdiğim dosyada, A sütununda herhangibir hücrede değişiklik yaptıktan(bilgi girdikten) sonra ENTERe basarsanız bilgi girdiğiniz satırın B sütununa kullanıcı adını yazar.
Veri girilen hücrenin excel tarafından algılanması için hücreyi terk etmek gerekir. Dosyadaki makro A sütunundaki değişikliği izleyip değişklikten sonraki aktif satırın bir üstündeki B sütununa kullanıcı adını yazacak şekilde düzenlendi. Enter yerine mouse kullanılarak uzak bir hücre tıklandığında dediğiniz durumun oluşması bundandır.
 

Korhan Ayhan

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

Sn. dEdE beyin önerdiği koddaki Cells(ActiveCell.Row - 1, 2) = deg(1) kod bloğunu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Target.Next = deg(1)
Sayfaya ait kodlarda Target ibaresi en son işlem yapılan hücreyi sembolize eder.
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Dosyayı gönderdim

Selamlar,

Sn. dEdE beyin önerdiği koddaki Cells(ActiveCell.Row - 1, 2) = deg(1) kod bloğunu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Target.Next = deg(1)
Sayfaya ait kodlarda Target ibaresi en son işlem yapılan hücreyi sembolize eder.
Bu eklemeden sonra kenara ekleme yaptı ama kapalı iken yazmadı.Ben yeniden izah edeyim.

1-Kapalı olan bir dosyam var ve buna başka dosyadan datalar kaydediyorum.

2-Bu dataları kapalı dosyaya yazdığı zaman yanınada kayıtı yapan
kullanıcının bilgisi yazsın.

Dede beyin gönderdiğine yazıyor ama onda satır karşısına değil ratgele bir satıra atabiliyor.Sizinkinde kapalı iken işlem görmedi.

Saygılar
 

Ekli dosyalar

Korhan Ayhan

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

Sn. HD1975,

Ben sorunuzda KAPALI DOSYA şeklinde bir ibare göremedim. Lütfen sorularınızı açık bir dille ifade ediniz.
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
kodu değiştirmek hakkında

Merhaba




Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
deg = Split(Environ(28), "=")
Cells(ActiveCell.Row - 1, 2) = deg(1)
End Sub

İşaretlediğim kod,aktif hücreye değilde satırda veriyi H sütünuna yazması için
kodu nasıl değişebiliriz.


Saygılar
 

Korhan Ayhan

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

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Cells(Target.Row , "H") = deg(1)
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Teşekkürler

Selamlar,

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Cells(Target.Row , "H") = deg(1)
Korhan Bey,tam istediğim gibi elinize sağlık.

Yalnız dosya kapalı ikende çalışan bir kodu varmı bunun.

Kullandığım dosya açık olanda var kapalı olanda.

Açıkta problem yok fakat kapalıda işlev görmüyor.

Veri diye bir dosyam var ve kapalı başka kitaptan kayıt yapıyorum.

Saygılar
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,595
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
deg = Split(Environ(28), "=")
Cells(Target.Row, [B][COLOR=red]"H"[/COLOR][/B]) = deg(1)
End Sub
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Merhaba,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
deg = Split(Environ(28), "=")
Cells(Target.Row, [B][COLOR=red]"H"[/COLOR][/B]) = deg(1)
End Sub
[/QUOT

Sayın uzmanım,kod gayet güzel çalışıyor ama kapalıda iş görmüyor.

Göndermiş olduğum dosyaya dış bir kitaptan bazı notlar kaydediyorum.

1-Gönderiş olduğunuz kodu kapalı olan dosyanın sayfasına atıyorum ve kapatıyorum.

2-Veri girdiğim kitabı açıp not giriyorum ve kaydediyorum.

3-Tekrar kapalı dosyayı açıyorum ama notlar gelmiş kullanıcı adı yok.

4-Dede Bey'in yaptığı Activecell kodu ile kapalı iken yazdı,fakat onda bir sağdaki hücreye yazıyor ve mouse'u dikkate alıyor mouse hangi hücrede ise
onun bir üstüne yazıyor,dolayısıyla dosya kapalı iken bu mouse sorunu yüzünden rastgele yerlere yazıyor.

Saygılar
 

Korhan Ayhan

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

Kapalı dosyaya verileri aktardığınız kodu verin yardımcı olalım.
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Doyyı gönderdim

Selamlar,

Kapalı dosyaya verileri aktardığınız kodu verin yardımcı olalım.
Göndermiş olduğum dosyamda not,veri,borcalacak,notlarım diye dosyalar var

Not dosyasında girdiğim notlar notlarım dosyasına kaydediliyor.
Notlarım dosyası kapalı oan bir dosya.

Bu dosyaya veri kaydedilince satırın bittiği hücrenin sağınada kullanıcı ismini
yazacak

Saygılar
 

Ekli dosyalar

Korhan Ayhan

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

NOTLARIM isimli dosyanızın I1 hücresine "Kullanıcı" yazın ve kaydedip kapatın. Bu kitaba veri aktaran butondaki kodu aşağıdaki şekilde değiştirip deneyin.

Kod:
Private Sub CommandButton1_Click()
Set con = CreateObject("adodb.connection")
If con.State = 1 Then con.Close
con.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & _
"\NOTLARIM.xls;extended properties=""excel 8.0;hdr=yes"""
Kullanıcı = Split(Environ(28), "=")
With Sayfa1
Set rs = CreateObject("adodb.recordset")
rs.Open "select * from [sayfa1$]", con, 1, 3
rs.addnew
    rs("Kişi no") = .Range("b3").Value
    rs("Adı") = .Range("b4").Value
    rs("Adresi") = .Range("b6").Value
    rs("Tel1") = .Range("b8").Value
    rs("Tel2") = .Range("b9").Value
    rs("Not") = .Range("b12").Value
    rs("Randevu tarihi") = .Range("c12").Value
    rs("İşlem tarihi") = .Range("d12").Value
    rs("Kullanıcı") = Kullanıcı(1)
rs.Update
End With
On Local Error Resume Next
con.Close
Set con = Nothing
End Sub
 
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Teekkür ediyorum

Mükemmel olmuş.Allah Razı Olsun

Saygılar
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
deg = Split(Environ(28), "=")
Cells(Target.Row, "H") = deg(1)
End Sub
Bu kodu benim dosyama uyguladım ama benim server' daki diğer bilgisayarların ismini alamadı...sadece ben kendi bilgisayarımda değişiklik yaptığımda benim adımı yazıyor (c:doc and sett/m.koyuncu şeklinde) diğerlerinde ise Windows veya Server Grup adını yazıyor???
 
Üst