• DİKKAT

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

Textbox formül sorunu

Katılım
13 Temmuz 2013
Mesajlar
241
Excel Vers. ve Dili
Türkçe 2007
Arkadaşlar

Private Sub TextBox1_Change()
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub



Private Sub UserForm_Initialize()
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub

Yukarıdaki makroda A1 hücresindeki değer 1 den büyükse yeşil küçükse kırmızı olarak textboxta gorunmesını sağlıyorum fakat makro çalıştığı zaman A1 hücresinde yer alan formül kayboluyor sadece değer kalıyor. A1 hücresinde =TOPLA(B2:B3) formülü var. Bu sorunu nasıl çözebilirim?
 
Merhaba;
Kodlarınızın A1 hücresine yazma olayı yok. (başka kodlarla bu işlemi yapıyor olabilirsiniz.)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub
Private Sub UserForm_Activate()
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub

İyi çalışmalar.
 
Sayın muygun, textbox properties kısmında ControlSoruce Alanına A1 şeklinde hücrenin adresini yazdım veriyi bu şekilde alıyor. Sanırım bundan dolayı hücredeki formülü ezip değeri atıyor. A1 hücresindeki veriyi kodlarla nasıl yazdırabiliriz? hücredeki değer userform acık olduğunda dahi değişebilir textbox'a yansımalı..
 
Sayın muygun, textbox properties kısmında ControlSoruce Alanına A1 şeklinde hücrenin adresini yazdım veriyi bu şekilde alıyor. Sanırım bundan dolayı hücredeki formülü ezip değeri atıyor. A1 hücresindeki veriyi kodlarla nasıl yazdırabiliriz? hücredeki değer userform acık olduğunda dahi değişebilir textbox'a yansımalı..

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

Private Sub Worksheet_Change(ByVal Target As Range)
Dim geçici
If Target.Address = "$A$1" Then
TextBox1 = [A1]
ElseIf Range("a1").Value <> geçici Then
TextBox1 = [A1]
Else
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
geçici = Range("a1").Value
End Sub

Userforma;

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub
Private Sub UserForm_Activate()
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
TextBox1 = [A1]
End Sub

Şeklinde deneyin.

İyi çalışmalar.
 
Sayın muygun denedim fakat userform acıkken hücrede değişiklik yaptığımda textboxa yansımıyor. userformu kapatıp acınca yansıyor. Bu sorunu nasıl çözebiliriz?
 
Son düzenleme:
Merhaba;
Sayfanın kod bölümüne;

Private Sub Worksheet_Change(ByVal Target As Range)
Dim geçici
If Target.Address = "$A$1" Then
TextBox1 = [A1]
ElseIf Range("a1").Value <> geçici Then
TextBox1 = [A1]
Else
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
geçici = Range("a1").Value
End Sub

Userforma;

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub
Private Sub UserForm_Activate()
If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
TextBox1 = [A1]
End Sub

Şeklinde deneyin.

İyi çalışmalar.


Sayın muygun denedim fakat userform acıkken hücrede değişiklik yaptığımda textboxa yansımıyor. userformu kapatıp acınca yansıyor. Bu sorunu nasıl çözebiliriz?
 
Merhaba;

Private Sub UserForm_Initialize()
TextBox1.ControlSource = "Sayfa1!A1"
End Sub

Şeklinde deneyin.
İyi çalışmalar.
 
Sayın muygun değişikliği algılıyor bu seferde renklendirmeyi yapmıyor ve userformu kapatınca a1 hücresindeki formülü ezip değeri atıyor.
 
Alternatif olarak aşağıdaki kodları deneyiniz.

Kod:
Private Sub TextBox1_Change()
    If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
    If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
End Sub

Private Sub UserForm_Initialize()
    If Cells(1, 1) > 1 Then TextBox1.ForeColor = RGB(10, 210, 10)
    If Cells(1, 1) < 1 Then TextBox1.ForeColor = vbRed
    TextBox1.ControlSource = "Sayfa1!A1"
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    TextBox1.ControlSource = ""
End Sub
 
Korhan bey ve Muygun yardımlarınızdan dolayı çok teşekkür ediyorumm..
 
Geri
Üst