Hesaplama Yapan Kodlar ( 4 İşlem )

  • Konuyu başlatan Konuyu başlatan hakki83
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Tem 2022
Mesajlar
887
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe

Ekli dosyalar

Merhabalar Sn. hakki83;
Paylaştığınız dosyadaki kodları aşağıdaki kodlar ile değiştiriniz.
VBA:
Sub toplama_islemi()
sonA = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To sonA
    sonB = Cells(Rows.Count, "B").End(xlUp).Row + 1
    If Range("B1") = Empty Then sonB = Cells(Rows.Count, "B").End(xlUp).Row
    Cells(sonB, "B") = Evaluate("=" & Trim(Replace(Cells(x, "A"), "'", "")))
Next x
End Sub
 
Merhaba Sayın @hakki83 .

Belgenize bir güzellik ekleyelim.

Sayfadaki düğme ile aşağıdaki kodu ilişkilendirin.

Düğmeye;
-- birinci tıklayışta A sütununa 200 satırlık 123 + 123 gibi ve 1 - 999 arasında rastgele sayılar kullanılarak
İŞLEMler listelenir ve dolu olan B sütunu temizlenir,
-- ikinci tıklayışta, A sütununa listelenen toplama işlemlerinin sonuçları bulunur.

CSS:
Sub TOPLA_BRN()
If [B1] <> "" Then
    [B1:B200].ClearContents
    For k = 1 To 200: Randomize: Cells(k, 1) = Int(Rnd * 999) + 1 & "+" & Int(Rnd * 999) + 1: Next
Else
    For k = 1 To 200: Cells(k, 2) = Evaluate("=" & Cells(k, 1)): Next
End If
End Sub

.
 
Merhabalar Sn. hakki83;
Paylaştığınız dosyadaki kodları aşağıdaki kodlar ile değiştiriniz.
VBA:
Sub toplama_islemi()
sonA = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To sonA
    sonB = Cells(Rows.Count, "B").End(xlUp).Row + 1
    If Range("B1") = Empty Then sonB = Cells(Rows.Count, "B").End(xlUp).Row
    Cells(sonB, "B") = Evaluate("=" & Trim(Replace(Cells(x, "A"), "'", "")))
Next x
End Sub

Sayın Ahmet Rasim, ilginiz ve cevabınız için çok teşekkür ederim.
Eğer mümkünse küçük bir düzeltme yapabilir miyiz

Hemen deneyip iki örnek dosya ekledim.
Birisinde 10 u 2,5 a bölmek istediğimizde hata veriyor
Diğerinde üst satırda boşluk verdiğimizde yine hata veriyor.

Ayrıca makro düğmesine üst üste bastığımızda sonuçları tekra ederek B sütunun alt hücrelerine tekrar aktarıyor.
 

Ekli dosyalar

Merhaba Sayın @hakki83 .

Belgenize bir güzellik ekleyelim.

Sayfadaki düğme ile aşağıdaki kodu ilişkilendirin.

Düğmeye;
-- birinci tıklayışta A sütununa 200 satırlık 123 + 123 gibi ve 1 - 999 arasında rastgele sayılar kullanılarak
İŞLEMler listelenir ve dolu olan B sütunu temizlenir,
-- ikinci tıklayışta, A sütununa listelenen toplama işlemlerinin sonuçları bulunur.

CSS:
Sub TOPLA_BRN()
If [B1] <> "" Then
    [B1:B200].ClearContents
    For k = 1 To 200: Randomize: Cells(k, 1) = Int(Rnd * 999) + 1 & "+" & Int(Rnd * 999) + 1: Next
Else
    For k = 1 To 200: Cells(k, 2) = Evaluate("=" & Cells(k, 1)): Next
End If
End Sub

.
Sayın Ömer Baran çok teşekkürler. Bu dosyayı da saklayacağım.

Fakat sadece dört işlemi hatasız yapabilen kodları oluşturabilir miyiz?

Örnek
10/2,5
7-3
5*4
9+6
gibi.

10/2,5 yapınca hata veriyor makrolar.
Teşekkürler
 
Merhabalar Sn. hakki83
Kodları şu şekilde değiştiriniz.
VBA:
Sub toplama_islemi()
Range("B:B").ClearContents
sonA = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To sonA
    If Cells(x, "A") <> Empty Then
    sonB = Cells(x, "A").Row
        Cells(sonB, "B") = Evaluate("=" & Trim(Replace(Cells(x, "A"), ",", ".")))
    End If
sonB = Cells(Rows.Count, "B").End(xlUp).Row + 1
Next x
End Sub
 
Merhabalar Sn. hakki83
Kodları şu şekilde değiştiriniz.
VBA:
Sub toplama_islemi()
Range("B:B").ClearContents
sonA = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To sonA
    If Cells(x, "A") <> Empty Then
    sonB = Cells(x, "A").Row
        Cells(sonB, "B") = Evaluate("=" & Trim(Replace(Cells(x, "A"), ",", ".")))
    End If
sonB = Cells(Rows.Count, "B").End(xlUp).Row + 1
Next x
End Sub
Sayın Ahmet Rasim,
Hemen deneyeceğim.
 
Sayın Ahmet Rasim,
Denedim ve kusursuz çalışıyor kodlar. Bu kodlarla dört işlem kolayca yapılabilir.
İlginiz için çok teşekkür ederim
Saygılarımla
 
Dört işlem için öneride bulunayım.
Yine önceki cevabımdaki mantıkla, birinci tıklama A sütunu değiştirilir, B sütunu sonuç yazılır.
Bu kez sayılar ondalıklı elde edilmektedir.

Kod güncellendi 11.05.2020 04:10

VBA:
Sub DORT_ISLEM_BRN()
Dim veri(1 To 200): islec = Array("+", "-", "/", "x")
If [B1] <> "" Then
    [B1:B200].ClearContents
    For k = 1 To 200
        Randomize: brn = Int(Rnd * 4) + 1: kat = [B][SIZE=15px][COLOR=rgb(132, 53, 52)]Int(Rnd * 3) + 1[/COLOR][/SIZE][/B]
        bir = Round((Int(Rnd * [B][SIZE=15px][COLOR=rgb(132, 53, 52)]99[/COLOR][/SIZE][/B] * kat) + 1) / kat, 2)
        iki = Round((Int(Rnd * [COLOR=rgb(132, 53, 52)][B][SIZE=15px]99[/SIZE][/B][/COLOR] * kat) + 1) / kat, 2)
        veri(k) = "'" & bir & " " & islec(brn - 1) & " " & iki
    Next: [A1:A200] = Application.Transpose(veri)
Else
    For k = 1 To 200
        veri(k) = Evaluate("=" & Trim(Replace(Replace(Replace(Cells(k, 1), ",", "."), "x", "*"), "'", "")))
    Next: [B1:B200] = Application.Transpose(veri): [B1:B200].NumberFormat = "#,##0.00;[Red]-#,##0.00"
End If: Columns("A:B").AutoFit
End Sub

.
 
Tekrar merhabalar.

#9 numaralı cevabımdaki 4 işlem için verdiğim kodu güncelledim.
Kırmızı renklendirdiğim kısımlar değiştirilerek sayılar için üst sınır ve ondalık basamak sayısı değiştirilerek kullanılabilir.

.
 
Tekrar merhabalar.

#9 numaralı cevabımdaki 4 işlem için verdiğim kodu güncelledim.
Kırmızı renklendirdiğim kısımlar değiştirilerek sayılar için üst sınır ve ondalık basamak sayısı değiştirilerek kullanılabilir.

.

Sayın @Ömer BARAN , denedim. Çok şık bir çalışma olmuş. Eksiye düşenler kırmızıya boyanıyor.
Sağolunuz. Esenlikler dilerim.
 
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt