Hücre Üzerindeki Değişikliklerin Kaydını Alma

Excel VBA kodlamaları ile yapılmış örnek dosyaları burdan izleyebilir ve paylaşabilirsiniz.

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#21)  Murat OSMA » 25 Oca 2015 03:05

Erkan Akayay yazdı:Ben de emin olamadım. Ben miyim ki?

Hoş geldin Erkan abi. [op] --)(
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#22)  ykarapanca » 19 Arl 2015 19:08

KAGIT_STOK_TAKİBİ.zip
merhabalar,

Aşağıdaki kodu yazdığım zaman, ilk önce değişiklik olan hücrenin yanındaki hücrenin değerini veriyor. fakat, bir alttaki hücrenin değeri değişince, bir üstteki hücre ile birlikte veriyor. bu böyle aşağıya doğru indikçe ; 1 hücre, 2 hücre, 3 hücre .. şeklinde çıktısı oluyor. Eğer bir hücre değişiyorsa 1, iki hücre değişiyorsa 2 adet log kaydı olmasını istiyorum. nasıl düzeltebilrim sizce arkadaşlar?


Kod: Tümünü seç
Private EskiDeger As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 8 And Target.Row > 5 Then
       
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Sheets("CIKIS").Range("G" & Sheets("CIKIS").Range("G65536").End(3).Row + 1) = Target.Offset(0, -1).Value
End Sub


Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
ykarapanca
Yeni Başlamış
 
Kayıt: 02 Arl 2015 21:12
Meslek: inşaat
Yaş: 29
İleti: 18
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul / esenyurt

Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#23)  judlas » 17 Ekm 2017 10:50

ahmetilhan282 yazdı:Dosyanıza log adında bir sayfa ekleyin. Module kodu:
Kod: Tümünü seç
Public eski_deger$

ThisWorkbook kodu:
Kod: Tümünü seç
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    eski_deger = Target.Text
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Text <> eski_deger And Sh.Name <> "log" Then
        With ThisWorkbook.Sheets("log")
            satir = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(satir, 1) = Format(Now, "dd.mm.yyyy")
            .Cells(satir, 2) = Format(Now, "hh:mm")
            .Cells(satir, 3) = Sh.Name & "!" & Target.Address(0, 0)
            .Hyperlinks.Add .Cells(satir, 3), "", "=" & .Cells(satir, 3)
            .Cells(satir, 4) = eski_deger
            .Cells(satir, 5) = Target.Text
            .Cells(satir, 6) = Environ("UserName")
        End With
    End If
End Sub


Log sayfası kod sayfasına ve ThisWorkbook kod sayfasına ekleyip denemek istediğimde Excel hata verip kapanıyor.
Kullanıcı avatarı
judlas
Siteye Alışmış
 
Kayıt: 14 Kas 2014 19:58
Meslek: Network
Yaş: 40
İleti: 239
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Levent

Cevap: Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydın

İleti#24)  judlas » 13 Ağu 2018 17:27

merhaba

aşağıdaki kod düzeneğinde bir sayfada bir hücrede yazdığım veriyi log sayfasında gösteriyor fakat o hücredeki bir önceki değeri de log sayfasında bir yan satırada yazmasını istiyorum. bilgi ve yardımlarınızı rica ederim

ahmetilhan282 yazdı:
otobus yazdı:"log" çalışma sayfasında, değişen çalışma sayfası ve değişen hücreyi ayırmak mümkün müdür? "log" da ilgili hücreye tıkladığımda veya çalışma sayfasına tıkladığımda o hücreye gidecek şekilde.

"Workbook_SheetChange" kodlarını aşağıdaki şekilde güncelleyin.
Kod: Tümünü seç
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Text <> eski_deger And Sh.Name <> "log" Then
        With ThisWorkbook.Sheets("log")
            satir = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(satir, 1) = Format(Now, "dd.mm.yyyy")
            .Cells(satir, 2) = Format(Now, "hh:mm")
            .Cells(satir, 3) = Sh.Name
            .Hyperlinks.Add .Cells(satir, 3), "", "=" & .Cells(satir, 3) & "!" & Target.Address(0, 0)
            .Cells(satir, 4) = Target.Address(0, 0)
            .Hyperlinks.Add .Cells(satir, 4), "", "=" & .Cells(satir, 3) & "!" & .Cells(satir, 4)
            .Cells(satir, 5) = eski_deger
            .Cells(satir, 6) = Target.Text
            .Cells(satir, 7) = Environ("UserName")
        End With
    End If
End Sub
Kullanıcı avatarı
judlas
Siteye Alışmış
 
Kayıt: 14 Kas 2014 19:58
Meslek: Network
Yaş: 40
İleti: 239
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Levent

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#25)  judlas » 13 Ağu 2018 17:44

".Cells(satir, 5) = eski_deger" bu kod aslında bu işlemi yapıyor olması gerekiyor ama nedense hücredeki eski değeri log sheetinde 5. sütunda yazmıyor
Kullanıcı avatarı
judlas
Siteye Alışmış
 
Kayıt: 14 Kas 2014 19:58
Meslek: Network
Yaş: 40
İleti: 239
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Levent

Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#26)  metehan8001 » 14 Ağu 2018 15:00

judlas yazdı:".Cells(satir, 5) = eski_deger" bu kod aslında bu işlemi yapıyor olması gerekiyor ama nedense hücredeki eski değeri log sheetinde 5. sütunda yazmıyor


Merhaba, sayfanız da kod bölümüne makro için bir tane modül ekleyin ve aşağıdaki yazın.

Kod: Tümünü seç
Public eski_deger$
Kullanıcı avatarı
metehan8001
Siteye Alışmış
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 10:30
İleti: 393
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#27)  ACO » 15 Ağu 2018 15:51

Merhaba foruma yeni üye oldum.
excelde döviz kurları ile ilgili bir çalışma yapıyorum. ykb nin sitesinden döviz kurlarını webden veri al ile excel sayfasında 1 dakikada bir güncellettiriyorum. ancak benim istediğim kurlar her güncellendiğinde yan taraftaki sütunlarda kaydetsin. örneğin şu an hücredeki döviz alış kuru 5,6789 ve 1 dk sonra webden yeni kur kopyalanınca 5,1234 oldu. 1 dk sonra 5,2468 oldu. bu değişiklikleri bir sütundaki hücrelere alt alta sırayla hücre1: 5,6789 hücre2: 5,1234 hücre3: 5,2468 ve bu böyle devam etsin. ekte ilgili excel dosyasını paylaşıyorum. Yapmak istediğim bu mantıkla webden 1 dakikada bir veri kopyalandıkça: Usd Alış kuru C64'e Usd satış kuru D64'e Eur alış kuru C65'e satış kuru D65'e Altın alış kuru C66'ya satış kuru D66'ya dakikada bir otomatik kopyalanıyor. bu kurlar her güncellendiğinde Usd Alış kuru J3'e Usd satış kuru K3'e Eur alış kuru L3'e satış kuru M3'e Altın alış kuru N3'e satış kuru O3'e yapıştırsın. 1 dakika sonra güncellenen kurları bu sefer J4/K4/L4/M4/N4/O4 e yapıştırsın. 1 dakika sonra güncellenince J5/K5/L5/M5/N5/O5 e yapıştırsın. ve 3 satırındaki 4 satırındaki bilgiler değişmeden kalsın. bu düzen böyle sütunlarda aşağı doğru sayfa güncellendikçe devam etsin. bayağı detaylı yazdım, sanırım makro kurulması gerekiyor. merakla yardımlarınızı bekliyorum. değerli katkılarınız için şimdiden teşekkür ederim. yapabilirsek çok faydalı olacak.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
ACO
 
Kayıt: 15 Ağu 2018 13:50
Meslek: MALİ MÜŞAVİR
Yaş: 35
İleti: 3
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL/BAHÇELİEVLER

Cevap: Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydın

İleti#28)  judlas » 16 Ağu 2018 11:33

metehan8001 yazdı:
judlas yazdı:".Cells(satir, 5) = eski_deger" bu kod aslında bu işlemi yapıyor olması gerekiyor ama nedense hücredeki eski değeri log sheetinde 5. sütunda yazmıyor


Merhaba, sayfanız da kod bölümüne makro için bir tane modül ekleyin ve aşağıdaki yazın.

Kod: Tümünü seç
Public eski_deger$


hocam zaten log sayfasının kod bölümünde bu kod var. başka bir modülede ekledim ama yine eski değeri getirmiyor.
Kullanıcı avatarı
judlas
Siteye Alışmış
 
Kayıt: 14 Kas 2014 19:58
Meslek: Network
Yaş: 40
İleti: 239
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Levent

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#29)  metehan8001 » 16 Ağu 2018 12:26

Log sayfasının kod bölümü boş olacaktır. Thisworkbook ile modüle yazaksınız sadece.
Kullanıcı avatarı
metehan8001
Siteye Alışmış
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 10:30
İleti: 393
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#30)  judlas » 16 Ağu 2018 12:45

metehan8001 yazdı:Log sayfasının kod bölümü boş olacaktır. Thisworkbook ile modüle yazaksınız sadece.


log sayfasındaki o koduda kaldırdım modüle altında bu kod yazılı ama yine değişen bir şey olmadı
Kullanıcı avatarı
judlas
Siteye Alışmış
 
Kayıt: 14 Kas 2014 19:58
Meslek: Network
Yaş: 40
İleti: 239
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Levent

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#31)  muhittinemmi » 08 Kas 2018 21:54

Kod: Tümünü seç
Private Sub Workbook_Open()
    Set log = New Excel.Application
    log.Visible = False
    log.Workbooks.Open ThisWorkbook.Path & "\log.xlsx"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    eski_deger = Target.Text
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Text <> eski_deger Then
        With log.Workbooks("log.xlsx").Sheets(1)
            satir = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(satir, 1) = Format(Now, "dd.mm.yyyy")
            .Cells(satir, 2) = Format(Now, "hh:mm")
            .Cells(satir, 3) = Sh.Name & "!" & Target.Address(0, 0)
            .Cells(satir, 4) = eski_deger
            .Cells(satir, 5) = Target.Text
            .Cells(satir, 6) = Environ("UserName")
        End With
    End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    log.Workbooks("log.xlsx").Close True
    log.Quit
End Sub


Öncelikle bunu düşünüp yapan ve geliştirenler çok güzel iş çıkarmış tebrik ederim.

.Cells(satir, 6) = Environ("UserName") Bu değişiklik yapan bilgisayarın oturum kullanıcı adını yazıyor.

Örnek olarak ağda 15 bilgisayar var bu dosyada değişiklik yapabilen 5 bilgisayar var bazılarının oturum kullanıcı isimleri aynı fakat ağ kullanıcı adları x1 , x2, x3, x4, x5 ise, ağ kullanıcı ismini ve mac adresi veya local ip adresini yazdırmak için ne yapmak lazım gelir.
Kullanıcı avatarı
muhittinemmi
Yeni Başlamış
 
Adı Soyadı:Muhittin Eraslan
Kayıt: 01 Oca 2013 12:20
Konum: Kocaeli
Meslek: Ticaret
Yaş: 58
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#32)  Enes Recep BAĞ » 09 Kas 2018 12:33

Kod: Tümünü seç
.Cells(satir, 6) = Environ("UserName")
bu satırı;
Kod: Tümünü seç
.Cells(satir, 6) = strMsg
yazın.
Ayrıca, modül veya userform hangisindeyse kodlarınız, uygun bir alana aşağıdaki kodları yazıp deneyin.
Kod: Tümünü seç
Sub local_ip()
strMsg = Empty
    strComputer 
= "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled = 'True'")
    For Each IPConfig In IPConfigSet
        If Not IsNull
(IPConfig.IPAddress) Then
            For i 
= LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
                If Not InStr(IPConfig.IPAddress(i), ":") > 0 Then
                    strMsg 
= strMsg & IPConfig.IPAddress(i) & vbCrLf
                End If
            Next
        End If
    Next
End Sub
Kullanıcı avatarı
Enes Recep BAĞ
Forum Moderatörü
 
Adı Soyadı:Enes Recep BAĞ
Kayıt: 30 Ağu 2010 17:39
Konum: 0 549 808 82 66
Meslek: Bilgi işlem
Yaş: 36
İleti: 8226
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray / Merkez

Cevap: Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#33)  muhittinemmi » 09 Kas 2018 20:37

Enes Recep BAĞ yazdı:
Kod: Tümünü seç
.Cells(satir, 6) = Environ("UserName")
bu satırı;
Kod: Tümünü seç
.Cells(satir, 6) = strMsg
yazın.
Ayrıca, modül veya userform hangisindeyse kodlarınız, uygun bir alana aşağıdaki kodları yazıp deneyin.
Kod: Tümünü seç
Sub local_ip()
strMsg = Empty
    strComputer 
= "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled = 'True'")
    For Each IPConfig In IPConfigSet
        If Not IsNull
(IPConfig.IPAddress) Then
            For i 
= LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
                If Not InStr(IPConfig.IPAddress(i), ":") > 0 Then
                    strMsg 
= strMsg & IPConfig.IPAddress(i) & vbCrLf
                End If
            Next
        End If
    Next
End Sub


Enes bey herhangi bir hata vermiyor lakin herhangi bir sonuçta çıkmıyor 6. sutun boş çıkıyor.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
muhittinemmi
Yeni Başlamış
 
Adı Soyadı:Muhittin Eraslan
Kayıt: 01 Oca 2013 12:20
Konum: Kocaeli
Meslek: Ticaret
Yaş: 58
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#34)  askmadige34 » 09 Kas 2018 22:28

Kodları Thisworkbook kısmına değil module yazın.
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 13:04
Meslek: memur
Yaş: 38
İleti: 1550
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Hücre Üzerindeki Değişikliklerin Kaydını Alma

İleti#35)  muhittinemmi » 10 Kas 2018 11:34

olmadı biryerde sanırım bir yerde eksiklik yapıyorum.
Kullanıcı avatarı
muhittinemmi
Yeni Başlamış
 
Adı Soyadı:Muhittin Eraslan
Kayıt: 01 Oca 2013 12:20
Konum: Kocaeli
Meslek: Ticaret
Yaş: 58
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Önceki

Forum Örnek Dosyalar

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe