Çözüldü Sin(x)° değiştir x,xxx

Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Merhaba arkadaşlar;

((1,25+1,75)/2)*1*2+(1+(1/SİN(63)))*45,66 bu şekilde bir formülüm var. Excelin default olarak açı cinsi radyan.

yapmak istediğim ; SİN(63) değerini derece olarak hesaplatıp yazdırmak.- değiştirmek

yani istenen sonuç :

((1,25+1,75)/2)*1*2+(1+(1/0,891006524))*45,66

bunu bir fonksiyon kullanarak , yapsakta sonuçta tetikleme replace komutu ile olmalıdır. ( yazmış olduğum vba kodunu bozmamak için... )


Yardımcı arkadaşa şimdiden teşekkürler...
 
Son düzenleme:

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,135
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Kullandığınız formülde SİN(63) ifadesini SİN(RADYAN(63)) şeklinde değiştiremez misiniz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sözkonusu ifade eğer A1 hücresindeyse, aşağıdaki "REGEXP" kodu işinizi görecektir;

C#:
Sub Test()
    'Haluk - 20/01/2024
    Dim objRegEx As Object, RetVal As Object, temp As String, myStr As String
  
    Set objRegEx = CreateObject("VBscript.RegExp")
    objRegEx.Global = True
    objRegEx.Pattern = "\SİN\((.+)\)\)\)"
  
    myStr = Range("A1").Text
  
    If objRegEx.Test(myStr) Then
        Set RetVal = objRegEx.Execute(myStr)
      
        myAngle = RetVal(0).submatches(0)
      
        temp = Sin(myAngle * Application.Pi / 180)
      
        objRegEx.Pattern = "\SİN\(" & myAngle & "\)"
      
        myStr = objRegEx.Replace(myStr, temp)
        
        Range("A1") = myStr
        myStr = Empty
    End If
      
    Set objRegEx = Nothing
End Sub
.
 
Son düzenleme:
Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
@ÖmerBey

Hayır. değiştiremem. Formül uzar., uzamasından ziyade, formülü okuyan anlamayabilir...
 
Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
@Haluk

göndermiş olduğunuz koda bakacağım., ancak bu kodu şu altta vermiş olduğum satıra eklememiz gerekiyor...

C#:
formul = Replace(Replace(Replace(Replace(Replace(Replace(Split(Mid(metin, InStr(1, metin, ":") + 1), "=")(0), "m³", ""), "m²", ""), "m", ""), "ort", ""), " ", ""), ",", ".")
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bahsettiğiniz "formul" degiskeninden elde edilen sonuc, sizin ilk mesajınızdaki ifadeyse eğer, o zaman benim kodun başında;


Kod:
myStr = Range("A1").Text

yerine;

Kod:
myStr = formul

yazarsınız, sonucu da yine A1 hücresine yazdırır veya ne yapmak istiyorsanız onu yaparsınız. Örneğin, bu işlemin sonucu;

Kod:
        MsgBox Evaluate(Replace(myStr, ",", "."))
.
 
Son düzenleme:
Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Anladım söylediğinizi de, benim kodlarda bir düzenleme yapmam gerekiyor.

* bu desen ; objRegEx.Pattern = "\SİN\((.+)\)\)\)"

İlk mesaja göre oluyor. çalışıyor. Ancak bazen açıklamada yazabiliyorum . Bu durumda deseni nasıl değiştirmeliyim?

açıklama dediğim ; Temel betonu : ((1,25+1,75)/2)*1*2+(1+(1/SİN(63)))*45,66 = gibi
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Dediğiniz ifadeyi;

Kod:
Temel betonu : ((1,25+1,75)/2)*1*2+(1+(1/SİN(63)))*45,66 =

olduğu gibi, A1 hücresine koydum ve kodu çalıştırdım. Beklendiği gibi, A1 hücresine aşağıdakini yazdı;

Kod:
Temel betonu : ((1,25+1,75)/2)*1*2+(1+(1/0,891006524188368))*45,66 =

Yani, bende bir sorun olmadı...

.
 
Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Tekrar deniyorum
*************************

Sin küçük yazmışım. o yüzden olmamış. Tamamdır çalışıyor.

Çok teşekkür ediyorum. Hocam. Şimdi ekleme kısmına geçebilirim.
***********************************

Ekledim. Çok Teşekkürler Hocam tekrardan @Haluk
 
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sin küçük yazmışım. o yüzden olmamış. Tamamdır çalışıyor.

Küçük/Büyük harf problemini halletmek için, aşağıdaki kırmızı ile belirttiğim flag'i kullanabilirsiniz....

Rich (BB code):
objRegEx.Global = True
objRegEx.Pattern = "\SİN\((.+)\)\)\)"
objRegEx.IgnoreCase = True
.
 
Katılım
17 Haziran 2008
Mesajlar
1,859
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Kod içinden değiştirmiştim bende. Tamam bunu kullanayım. Teşekkür ederim hocam.
 
Üst