Skip to main content

AccessTr.neT


Hücredeki Formüllü Değerleri İşlemle Silip .formula İle Silinen Formülü Hücreye Alma

Oğuz Türkyılmaz
Oğuz Türkyılmaz
8
231

Hücredeki Formüllü Değerleri İşlemle Silip .formula İle Silinen Formülü Hücreye Alma

Çözüldü #1
Merhaba herkese sağlıklı günler dilerim.
Uygulamadaki Menu sayfasında bioclimatik butonuna tıkladığınızda açılan formda mevcut değerlerle hesaplamalar yaptırıyorum. Sorunum Geri toplamasız  checkBoxına tıkladığımda işlem gerçekleşiyor ve Bioclimatic sayfası N sütununda içinde formül olan pempe renkli hücreleri sıfırlıyorum. Lakin checkboxa tekrar tıkladığımda bu sıfırlanan değerler hücreye içeriğinde formül olmadan sadece değer olarak geri alınıyor.
.Formula ile makrolarla çalışan sistemde bu değerleri içeriğindeki formülle geri getirmişti @feraz hocam lakin ben bu yeni kodda .Formula ile denemelerimde formülle geri getiremedim sadece değerleri geri alabildim. Hücrede silinen  değerleri İçeriğindeki formülle geri getirmek için kodu nasıl revize etmeliyim. Teşekkürler.
Kod
Private Sub CheckBox_GeriToplamasiz_Click()
  
Dim i As Long, son As Long
Dim shf As Worksheet

Set shf = ThisWorkbook.Worksheets("Sabitler")

Const harf As String = "N"
Const baslama As Byte = 2

son = PARAMETRELER.Cells(Rows.Count, harf).End(3).Row

            With ThisWorkbook.Worksheets("Bioclimatic")
            
            If CheckBox_GeriToplamasiz.Value = True Then
                MsgBox "Sistem Hesaplamaları, Lameller Geri Toplanmayacak Şekilde  Eksenal Hareketli olarak 
 Güncelleniyor"
                frm_PdfGonder.Label_LamelHareket.Caption = "Eksenal Hareketli Lameller"
                CheckBox_SabitPanel.Value = False
                shf.Cells.Clear
                
                For i = baslama To son
                    shf.Cells(i, 1).Value = .Range(PARAMETRELER.Cells(i, harf).Value).Value
                    .Range(PARAMETRELER.Cells(i, harf).Value) = 0
                Next
            Else
                For i = baslama To son
                    .Range(PARAMETRELER.Cells(i, harf).Value) = shf.Cells(i, 1).Value
                Next
                shf.Cells.Clear
            End If
            End With
  
End Sub

[Resim: do.php?img=11299]
[Resim: do.php?img=11297]
[Resim: do.php?img=11298]
.rar Formula.rar (Dosya Boyutu: 318,8 KB | İndirme Sayısı: 3)
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 02/10/2021, 11:18, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#2
Sayın Oğuz Türkyılmaz
Sadece hücrelerdeki formülleri örneğini Formun yüklendi olayına alttaki gibi diğer formülleri de tekrar hücreye yazdırabilirsin.
Visual Basic Code
[M23].Formula = "=L23*K23"
"Dünyayı fazla düşünme."
Cevapla
#3
(02/10/2021 13:43)userx Adlı Kullanıcıdan Alıntı: Sayın Oğuz Türkyılmaz
Sadece hücrelerdeki formülleri örneğini Formun yüklendi olayına alttaki gibi diğer formülleri de tekrar hücreye yazdırabilirsin.
Visual Basic Code
[M23].Formula = "=L23*K23"


@userx hocam bu gayet mantıklı oldu aynı kodları sadece kapat ve yeni teklif hazırla butonlarına da yazmam gerekiyor. Yoksa hesaplama yapıp çıkılırsa bir şekilde o hücre değerleri 0 olarak kalıyor.
For döngüsü ile belki çözüm üretilir onu da öğrenmek isterim ama bu çözüm basit olduğundan benim için bu uygulamada kullanacağım çözüm olacak.
Çok teşekkür ederim.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#4
Bioclimatic sayfası için alttaki döngüyü kullanır mısın? Belki isteğini karşılar.

Visual Basic Code
For j = 21 To 54
Range("M" & j) = "=" & Range("k" & j).AddressLocal & "*" & Range("L" & j).AddressLocal
Next j
"Dünyayı fazla düşünme."
Cevapla
#5
(02/10/2021 14:55)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı:
(02/10/2021 13:43)userx Adlı Kullanıcıdan Alıntı: Sayın Oğuz Türkyılmaz
Sadece hücrelerdeki formülleri örneğini Formun yüklendi olayına alttaki gibi diğer formülleri de tekrar hücreye yazdırabilirsin.
Visual Basic Code
[M23].Formula = "=L23*K23"


@userx hocam bu gayet mantıklı oldu aynı kodları sadece kapat ve yeni teklif hazırla butonlarına da yazmam gerekiyor. Yoksa hesaplama yapıp çıkılırsa bir şekilde o hücre değerleri 0 olarak kalıyor.
        For döngüsü ile belki çözüm üretilir onu da öğrenmek isterim ama bu çözüm basit olduğundan benim için bu uygulamada kullanacağım çözüm olacak.
Çok teşekkür ederim.

@userx hocam başka bir chekbox için bu formülü uyguladığımda hata alıyorum. Hem string hemde ondalık değer içeren hücreden ( C25  dolayı ). Bu işlemi nasıl gerçekleştirebilirim.

Kod
Private Sub CheckBox_MotorsuzSabit_Click()

  Dim i As Long, son As Long
  Dim shf As Worksheet

Set shf = ThisWorkbook.Worksheets("Sabitler")

Const harf As String = "O"
Const baslama As Byte = 2

son = PARAMETRELER.Cells(Rows.Count, harf).End(3).Row

            With ThisWorkbook.Worksheets("Pergole")
            
            
            If CheckBox_MotorsuzSabit.Value = True Then
            
                MsgBox "Sistem hesaplamaları Motorsuz Sabit Tente olarak güncellenecek...", vbExclamation, "WINPERAX Teklif Bilgi Ekranı"
'                frm_PdfGonder.Label_LamelHareket.Caption = "Eksenal Hareketli Lameller"
                
                shf.Cells.Clear
                
                For i = baslama To son
                    shf.Cells(i, 1).Value = .Range(PARAMETRELER.Cells(i, harf).Value).Value
                    .Range(PARAMETRELER.Cells(i, harf).Value) = 0
                Next
            Else
            
                [C25] = "=D8*2,2"
                [C30] = "=D16"
                [C34] = 1
                
                shf.Cells.Clear
            End If
            End With
  
End Sub
[Resim: do.php?img=11304]
[Resim: do.php?img=11305]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#6
Visual Basic Code
Range("c25") = "=" & Range("d8").AddressLocal & "*" & ["2.2"]
"Dünyayı fazla düşünme."
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da