• DİKKAT

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

hücre yenileme

Katılım
9 Temmuz 2012
Mesajlar
106
Excel Vers. ve Dili
Excel 2007 - Türkçe
arkadaşlar herhangi bir butona tıkladığımızda hücrenin yenilenmesini sağlayabilir miyiz?
 
Merhaba,

Yenilemekten kastınız nedir?
 
mesela hücrede değer girer gibi hücreye hani çift tıklayıp enter'e basıyoruz ya o şekilde
 
Merhaba,

Aşağıdaki gibi deneyin.

Kod:
Sub HÜCREYE_GİRİŞ()
    Range("A1").Activate
    Application.SendKeys "{F2}", True
End Sub
 
Merhaba,

Çok genel ifadeler kullanıyorsunuz. Ne yapmak istediğinizi açıkça belirtirseniz yorumlama şansımız olabilir.
 
butona tıklandığında H sütunundaki bütün hücreleri yenilemek istiyorum
 
Merhaba,

Anladığım kadarıyla hücrelere F2+ENTER yapmak istiyorsunuz. Eğer istediğiniz buysa aşağıdaki kodu deneyin.

Kod:
Sub HÜCRE_YENİLE()
    Dim X As Long
    For X = 1 To Rows.Count
        DoEvents
        Cells(X, "H").Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub
 
Merhaba,

Anladığım kadarıyla hücrelere F2+ENTER yapmak istiyorsunuz. Eğer istediğiniz buysa aşağıdaki kodu deneyin.

Kod:
Sub HÜCRE_YENİLE()
    Dim X As Long
    For X = 1 To Rows.Count
        DoEvents
        Cells(X, "H").Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub

Hocam sanırım siz yardım etmezseniz bu sorunu halledemiyeceğim sorunum ekteki dosyada kayıt programı butonu ile ekrana gelen userform ile hücrelere değerleri giriyoruz buraya kadar sorun yok ve tıkla butonu ile de H sütunundaki tarihe göre H hücresini renklendirme ve M hücresinde kalan günü felan yazıyor fakat bu buton değerleri Kayıt formu ile girdiğimde direk çalışmıyor kaydı yaptıktan sonra H sütununu yenilemem gerekiyor bende bunu userformdaki kaydet butonuna H sütununu yenileyebileceğimiz bir kod ile halledebileceğimizi düşündüm fakat başaramadım yardımcı olursanız sevinirim.
 

Ekli dosyalar

Merhaba,

Sorun şimdi anlaşıldı. Form ile çalışma hazırlıyorsunuz ve sorularınızı adım adım sorup çalışmanızı geliştirmeye çalışıyorsunuz. Ben sizin yerinizde olsam uygulamalı excel başlığı altındaki resimli anlatılan konuları iyice incelerim. Orada kullanılan kayıt mantığını ve raporlama mantıklarını kavradıktan sonra işe koyulmanız size daha çok kolaylık sağlayacaktır.

Aşağıdaki kaydet kodunu deneyin. Düz mantıkla düzenledim. Hata kontrolleri eklemedim. Siz bu kısımları dediğim başlığı inceleyerek rahatlıkla halledebilirsiniz.

Ayrıca bu kod ilerleyen zamanlarda kayıt sayınız arttıkça yavaş çalışacaktır. Çünkü her seferinde üstteki daha önce renklendirdiği satırları tekrar kontrol ediyor. Doğal olarak kayıt sayınız arttıkça kontrol etme süreside uzayacaktır.

Kod:
Private Sub CommandButton1_Click()
    If TextBox1.Text <> "" Then
        Son_Dolu_Satir = Sheets("Data").Range("A65536").End(xlUp).Row
 
        Bos_Satir = Son_Dolu_Satir + 1
 
        Sheets("Data").Range("A" & Bos_Satir).Value = _
                       Application.WorksheetFunction.Max(Sheets("Data").Range("A:A")) + 1
 
        Sheets("Data").Range("B" & Bos_Satir).Value = TextBox1.Text
 
        Sheets("Data").Range("C" & Bos_Satir).Value = TextBox2.Text
 
        Sheets("Data").Range("D" & Bos_Satir).Value = ComboBox2.Text
 
        Sheets("Data").Range("E" & Bos_Satir).Value = CDbl(TextBox4)
        Sheets("Data").Range("F" & Bos_Satir).Value = CDbl(TextBox5)
        Sheets("Data").Range("G" & Bos_Satir).Value = CDate(TextBox10.Text)
        Sheets("Data").Range("H" & Bos_Satir).Value = CDate(TextBox6.Text)
        Sheets("Data").Range("I" & Bos_Satir).Value = TextBox7.Text
        Sheets("Data").Range("J" & Bos_Satir).Value = TextBox8.Text
        Sheets("Data").Range("K" & Bos_Satir).Value = TextBox9.Text
        Sheets("Data").Range("L" & Bos_Satir).Value = TextBox15.Text
 
        Dim i As Integer
        For i = 2 To Range("E65536").End(3).Row
           If Cells(i, "H") - VBA.Date = 3 Then
               Cells(i, "M") = "3 gün kaldı"
               Cells(i, "H").Interior.ColorIndex = 44
           ElseIf Cells(i, "H") - VBA.Date = 2 Then
               Cells(i, "M") = "2 gün kaldı"
               Cells(i, "H").Interior.ColorIndex = 45
           ElseIf Cells(i, "H") - VBA.Date = 1 Then
               Cells(i, "M") = "1 gün kaldı"
               Cells(i, "H").Interior.ColorIndex = 46
           ElseIf VBA.Date = Cells(i, "H") Then
               Cells(i, "M") = "Zamanı geldi"
               Cells(i, "H").Interior.ColorIndex = 37
           ElseIf VBA.Date < Cells(i, "H") Then
               Cells(i, "M") = ""
               Cells(i, "H").Interior.ColorIndex = 0
           ElseIf VBA.Date = Cells(i, "H") Then
               Cells(i, "M") = ""
               Cells(i, "H").Interior.ColorIndex = 0
           Else
               Cells(i, "M") = "Süresi Geçti"
               Cells(i, "H").Interior.ColorIndex = 3
           End If
           Cells(i, "A") = i - 1
        Next i
        i = Empty
 
        Sheets("Data").Select
 
    Else
 
        MsgBox "FORM BİLGİLERİNİ TAM OLARAK DOLDURMANIZ GEREKİYOR", vbExclamation, "KAYIT PROGRAMI"
 
    End If
 
    Dim txt As Control
 
    For Each txt In Me.Controls
        If TypeName(txt) = "TextBox" Then txt.Value = ""
        If TypeName(txt) = "ComboBox" Then txt.Value = ""
    Next
 
    UserForm_Initialize
End Sub
 
Merhaba,

Sorun şimdi anlaşıldı. Form ile çalışma hazırlıyorsunuz ve sorularınızı adım adım sorup çalışmanızı geliştirmeye çalışıyorsunuz. Ben sizin yerinizde olsam uygulamalı excel başlığı altındaki resimli anlatılan konuları iyice incelerim. Orada kullanılan kayıt mantığını ve raporlama mantıklarını kavradıktan sonra işe koyulmanız size daha çok kolaylık sağlayacaktır.

Aşağıdaki kaydet kodunu deneyin. Düz mantıkla düzenledim. Hata kontrolleri eklemedim. Siz bu kısımları dediğim başlığı inceleyerek rahatlıkla halledebilirsiniz.

Ayrıca bu kod ilerleyen zamanlarda kayıt sayınız arttıkça yavaş çalışacaktır. Çünkü her seferinde üstteki daha önce renklendirdiği satırları tekrar kontrol ediyor. Doğal olarak kayıt sayınız arttıkça kontrol etme süreside uzayacaktır.
Sonunda sorun çözüldü teşekkür ederim tavsiyenizi de dikkate alıcam teşekkür ederim tekrar
 
Merhaba,

Anladığım kadarıyla hücrelere F2+ENTER yapmak istiyorsunuz. Eğer istediğiniz buysa aşağıdaki kodu deneyin.

Kod:
Sub HÜCRE_YENİLE()
    Dim X As Long
    For X = 1 To Rows.Count
        DoEvents
        Cells(X, "H").Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub


merhaba üstad,

ben bu kodu çalıştırdım işe yarıyor gibi fakat benim sutunumda 700 satır var bu kod en son satıra kadar gidiyor (1 milyon küsür) bundan dolayı yarıda kesmek zorunda kalıyorum ve hata alıyorum. bu seferde komutları uygulamamış oluyor. bunu yalnızca dolu hücreler için çalıştırabilirmiyiz.
 
Merhaba,

Soruyu soran arkadaşımız "tüm sütun için" diye belirttiği için kod bu şekilde çalışıyor.

Belirli bir alanda F2+ENTER yapmak için aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub HÜCRE_YENİLE()
    Dim Veri As Range
    For Each Veri In Range("A1:A100")
        DoEvents
        Veri.Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub
 
Merhaba,

Soruyu soran arkadaşımız "tüm sütun için" diye belirttiği için kod bu şekilde çalışıyor.

Belirli bir alanda F2+ENTER yapmak için aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub HÜCRE_YENİLE()
    Dim Veri As Range
    For Each Veri In Range("A1:A100")
        DoEvents
        Veri.Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub

peki hocam nakit akış tablosu hazırladım. topla.çarpım formülünü kullandım. verileri aldığım sayfaya vade tarihi ve tutar yazdırıyorum. (bankadan aldığım verilerde kopyala değerleri yapıştır diyerek) fakat formül yazdığım yere bu bilgiler gelmiyor. (hepsi değil bazı banka ekstrelerinden kopyaladıklarım) manuel olarak hücredeyken f2+enter yaptığımda düzeliyor. fakat yukarıdaki kodu çalıştırdığımda işlemi yaptığını görüyorum, ama formül yazılı hücrelerde bir değişiklik olmuyor. sizce neden çalışmıyordur.
 
Hesaplama yönteminiz manuel olarak ayarlanmış olabilir.

Formüller sekmesinden HESAPLAMA SEÇENEKLERİ bölümünü otomatik yapınca düzelmesi gerekir.
 
Eğer mümkünse dosyanızın küçük bir örneğini paylaşım sitelerine yükleyip linkini foruma ekleyin. İnceleyelim.
 
Merhaba,

Soruyu soran arkadaşımız "tüm sütun için" diye belirttiği için kod bu şekilde çalışıyor.

Belirli bir alanda F2+ENTER yapmak için aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub HÜCRE_YENİLE()
    Dim Veri As Range
    For Each Veri In Range("A1:A100")
        DoEvents
        Veri.Select
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next
End Sub


merhaba, bu kodun A sütununda son dolu satıra kadar çalışma gibi bir durumu olur mu ben başaramadım.
 
Geri
Üst