AccessTr.neT

Tam Versiyon: Hücredeki Formüllü Değerleri İşlemle Silip .formula İle Silinen Formülü Hücreye Alma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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]
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.
[M23].Formula = "=L23*K23"
(02/10/2021, 13:43)userx yazdı: [ -> ]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.
[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.
Bioclimatic sayfası için alttaki döngüyü kullanır mısın? Belki isteğini karşılar.

For j = 21 To 54
Range("M" & j) = "=" & Range("k" & j).AddressLocal & "*" & Range("L" & j).AddressLocal
Next j
(02/10/2021, 14:55)Oğuz Türkyılmaz yazdı: [ -> ]
(02/10/2021, 13:43)userx yazdı: [ -> ]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.
[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]
Range("c25") = "=" & Range("d8").AddressLocal & "*" & ["2.2"]
Sayfalar: 1 2