JavaScript kodunu Visual basic koduna çevirme

Katılım
23 Ağustos 2005
Mesajlar
3
Selam
Aşağda verdiğim Kodun fonksiyon kısmını Visual basic veya Excel VBA koduna çevirmek istedim.Başaramadım.

Form üzerinde Üç adet Texbox ve bir tane buton olup,İlk iki textbox'girilen veriler butonu tıklayınca işlem yapıp üçüncü textbox ta sonuç dönecek.Bu konuda yardımlarınızı bekliyorum.





<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<title>JavaScript - Motorwindungsschema berechnen</title>
</head>
<body onload="init()">
<form name="Windungsrechner">
<div align="center"><center>
<font color="#FF0000">Bedienungsanleitung:</font> Gib die anzahl der Nuten und Pole ein und drücke auf das Gleichheitszeichen.
<table border="2">
<tr>
<td>Nuten:</td>
<td><input type="text" size="3" name="Nuten" maxlength="3"></td>
<td>Pole:</td>
<td><input type="text" size="3" maxlength="3" name="Pole"></td>
<td><input type="button" name="Berechnen" value="=" onclick="berechnen(this.form)"></td>
<td><input type="text" size="64" name="Ergebnis"></td>
</tr>
</table>








Warnung: Die Anzahl der Nuten muss ein vielfaches von 3 sein und die Pole ein vielfaches von 2. Es sind nur ergebnisse gültig, die gleich viele A/a B/b und C/c's enthalten. 12N18P oder 15N12P geht z.B. nicht.
</center></div>
</form>
<p><script language="JavaScript"><!--
function init()
{

document.Windungsrechner.Nuten.focus();
document.Windungsrechner.Nuten.value="";
document.Windungsrechner.Pole.value="";
document.Windungsrechner.Ergebnis.value="";
return;
}
function berechnen(form)
{
schema=""
summe = 0;
Nuten= eval(form.Nuten.value);
Pole = eval(form.Pole.value);
Winkel = 180 * Pole / Nuten;
for (i=0;i<Nuten;i++){
if (summe >= 330 || summe < 30 ) schema = schema + "A";
if (summe >= 30 && summe < 90 ) schema = schema + "c";
if (summe >= 90 && summe < 150) schema = schema + "B";
if (summe >= 150 && summe < 210) schema = schema + "a";
if (summe >= 210 && summe < 270) schema = schema + "C";
if (summe >= 270 && summe < 330) schema = schema + "b";
summe=summe+Winkel;
summe=summe%360;
}
document.Windungsrechner.Ergebnis.value = schema;
}
// --></script></p>
</body>
</html>
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Fonksiyondaki işlem mantığını açıklarsanız yardımcı olmaya çalışırız.
 
Katılım
23 Ağustos 2005
Mesajlar
3
Sayın Menteşoğlu ilginize teşekkür ederim.

Elektrik motorlarının stator sarımında yapılan hesaplamayla ilgili.

Örnek olarak 36 oyuklu 4 kutuplu üç fazlı bir statorun fazlara ait dağılımını hesaplıyor.

Bu linkte Web de çalışan uygulaması mevcut.

http://www.bavaria-direct.co.za/models/files/Winding_Scheme_Calculator.htm

Ayrıca ben VBA da biraz uğraştım fakat bir sonuç alamadım.



Private Sub CommandButton1_Click()
'Dim pole As Double
'Dim nuten As Double
Dim summe As TextBox
Dim schema As TextBox
' Dim winkel As Double


schema = TextBox3
'summe = 0

nuten = TextBox1.Value 'Statorun oyuk sayısı
pole = TextBox2.Value 'statorun kutup sayısı
summe = 180 * pole / nuten

For i = 0 To nuten
If summe >= 330 Or summe < 30 Then 'İf end if bloğu Fazlar arası açı ile ilgili 60 ın katları şeklinde
schema = schema & "A" 'gidiyor.
End If
If summe >= 30 And summe < 90 Then
schema = schema & "c"
End If
If summe >= 90 And summe < 150 Then
schema = schema & "B"
End If
If summe >= 150 And summe < 210 Then
schema = schema & "a"
End If
If summe >= 210 And summe < 270 Then
schema = schema & "C"
End If
If summe >= 270 And summe < 330 Then
schema = schema & "b"


End If
'summe = summe + winkel
'summe = summe Mod 360
Next i

' document.Windungsrechner.Ergebnis.value = schema

End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Hesaplama yöntemini vermeniz gerekir ki bizde ona göre fonksiyonu düzenleyelim.
 
Katılım
23 Ağustos 2005
Mesajlar
3
Selam
Hesaplama yöntemini tam olarak bilmediğim için Java kodlarından istifade ederek VB de yazılabileceğini düşünmüştüm. İlginize teşekkür eder, çalışmalarınızda başarılar dilerim.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Bu şekilde bir hesap mıdır ? :dusun:

Kod:
Private Sub CommandButton1_Click()
    TextBox3.Value = Empty
    summe = 0
    schema = TextBox3.Value
    nuten = TextBox1.Value
    pole = TextBox2.Value
    summe = 180 * pole / nuten
    For i = 0 To nuten
        If summe >= 330 Or summe < 30 Then
            schema = schema & "A"
        ElseIf summe >= 30 And summe < 90 Then
            schema = schema & "c"
        ElseIf summe >= 90 And summe < 150 Then
            schema = schema & "B"
        ElseIf summe >= 150 And summe < 210 Then
            schema = schema & "a"
        ElseIf summe >= 210 And summe < 270 Then
            schema = schema & "C"
        ElseIf summe >= 270 And summe < 330 Then
            schema = schema & "b"
        End If
    Next i
    TextBox3.Value = schema
End Sub
 

Ekli dosyalar

E

ExcelF1

Misafir
Murat Bey,

Soruyu soran üye, 3 nolu mesajda bir site linki vermiş. Orada değerler girerek hesaplama yapıldığında, Sizin eklemiş olduğunuz kod ile aynı sonucu döndürmüyor.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Evet Sn. ExcelF1, kontrolünü yapmamıştım. Aynı sonuç döndürmüyor.

Hesaplamayı doğru yapılabilmesi için tam olarak mantığı bilmek gerek mâlûm.
Java kodlarından da net bir sonuç çıkaramadım. Şu an için net bir çözüm sunamam ancak java kursundan sonra yanıtlayabilirim.
 
E

ExcelF1

Misafir
Java kursuna başladı iseniz, şimdiden hayırlı olsun.

Yakın zamanda bende Java ve C++ 'ye merak salmış, ama nereden başlamak gerektiği konusunda tereddütte kalmıştım. Bu konuda da yardımınız ve tavsiyeleriniz olursa, minnettar kalırım.

Hayırlı akşamlar...
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Teşekkür ederim...

Kısmet olursa Salı günü Web yazılım kursuna başlayacağım. (Php - Php & MySql Veritabanı Yönetimi -JavaScript ve Jquery dersleri)

Önerim ancak şu olabilir; size en yakın Bilgisayar Yazılım Kursuna gidip öğretim görevlilerinden bu konu bilgi alabilirsiniz, sizi yönlendireceklerdir.


Size de hayırlı akşamlar.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,269
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Yukarıdaki function da "mod" olayını eklerseniz doğru hesaplama yapacağını tahmin ediyorum Murat bey.
 
E

ExcelF1

Misafir
Maalesef bulunduğum şehirde bu tür kurslar verilmiyor. Java konusunda ise, derleyiciler hakkında önerinizi almak istemiştim.
- Eclipse
- Netbeans
- Jcreator
- jDeveloper Studio vs. gibi.

Büyük çoğunluk Eclipse veya Netbeans kullanıyor diye biliyorum ama, onlar arasında da kod yazmada farklılıklar olduğunu duymuştum. Örneğin ilk harf büyük olarak başlamazsa, derleyicinin bir tanesi bunu umursamaz iken, diğerinin hata vermesi gibi.

Ben yine de tavsiyeniz için teşekkür ederim.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Yukarıdaki function da "mod" olayını eklerseniz doğru hesaplama yapacağını tahmin ediyorum Murat bey.
Bilemiyorum Zeki Bey, yarın bakıp test ederim...

Maalesef bulunduğum şehirde bu tür kurslar verilmiyor. Java konusunda ise, derleyiciler hakkında önerinizi almak istemiştim.
- Eclipse
- Netbeans
- Jcreator
- jDeveloper Studio vs. gibi.

Büyük çoğunluk Eclipse veya Netbeans kullanıyor diye biliyorum ama, onlar arasında da kod yazmada farklılıklar olduğunu duymuştum. Örneğin ilk harf büyük olarak başlamazsa, derleyicinin bir tanesi bunu umursamaz iken, diğerinin hata vermesi gibi.

Ben yine de tavsiyeniz için teşekkür ederim.
Sn. ExcelF1, tam olarak detaylar hakkında bilgi sahibi değilim. Gideceğim kursun web adresi bu; Bilgisayar kursu eğitim konularına göz atabilirsiniz.

Hoşça kalın !
 
Üst