ورود

View Full Version : سه رقم سه رقم کردن تکس باکس و بر عکس



moghadam1372
چهارشنبه 11 دی 1398, 12:38 عصر
سلام

با این کد فرمت تکس باکس تغییرمی کند و اعداد سه رقم سه رقم جدا می شود و حالا برای جمع کردن تکس باکس مشکل می خورد 100،000
'If Val(Text1.Text) > 0 Then Text1.Text = Format(Text1.Text, "###,###,###")

چطوری می شود اعداد داخل تکس باکس به حالت اولیه برگردد مثلا 100000 که بشود با تکس دیگر جمع کرد یا کاما بین اعداد حذف شود

ASHKANLAEI
چهارشنبه 11 دی 1398, 12:52 عصر
این کد فقط عدد های تکست رو در نظر میگیره میتونی موقع جمع جای تکست باکس، از این تابع استفاده کنی:
Public Function Str_To_Int(MyString As Variant) As Long
Dim i As Integer
Dim X As Variant
If IsNull(MyString) Or MyString = "" Then
Str_To_Int = 0
Exit Function
End If
For i = 1 To Len(MyString)
If IsNumeric(Mid(MyString, i, 1)) = True Then
X = Nz(X, "") & Mid(MyString, i, 1)
End If
Next i
Str_To_Int = Nz(X, 0)
End Function

moghadam1372
چهارشنبه 11 دی 1398, 14:07 عصر
سلام خسته نباشید من میخواهپم دو تکس باکس که اعداد داخل تکس سه رقم سه رقم جدا شده باهم جمع یا ضرب کنم

ASHKANLAEI
چهارشنبه 11 دی 1398, 14:34 عصر
دوست عزیز کدی که من گذاشتم رو در کدتون قرار بدین و سپس هر موقع خواستین (برای مثال) جمع رو انجام بدین از کد زیر استفاده کنید:
Str_To_Int(TextBox1) + Str_To_Int(TextBox2)

moghadam1372
چهارشنبه 11 دی 1398, 15:42 عصر
این کد فقط عدد های تکست رو در نظر میگیره میتونی موقع جمع جای تکست باکس، از این تابع استفاده کنی:
Public Function Str_To_Int(MyString As Variant) As Long
Dim i As Integer
Dim X As Variant
If IsNull(MyString) Or MyString = "" Then
Str_To_Int = 0
Exit Function
End If
For i = 1 To Len(MyString)
If IsNumeric(Mid(MyString, i, 1)) = True Then
X = Nz(X, "") & Mid(MyString, i, 1)
End If
Next i
Str_To_Int = Nz(X, 0)
End Function


nz چیست و ارور می دهد

the king
چهارشنبه 11 دی 1398, 19:02 عصر
سلام

با این کد فرمت تکس باکس تغییرمی کند و اعداد سه رقم سه رقم جدا می شود و حالا برای جمع کردن تکس باکس مشکل می خورد 100،000
'If Val(Text1.Text) > 0 Then Text1.Text = Format(Text1.Text, "###,###,###")

چطوری می شود اعداد داخل تکس باکس به حالت اولیه برگردد مثلا 100000 که بشود با تکس دیگر جمع کرد یا کاما بین اعداد حذف شود


Private Sub Command1_Click()
Text1.Text = Format(1234567, "###,###,###")
Text2.Text = Format(234567, "###,###,###")
End Sub

Private Function ValEx(ByVal Text As String)
ValEx = Val(Replace(Text, Mid(Format(1111, "#,###"), 2, 1), ""))
End Function

Private Sub Command2_Click()
Text3.Text = Format(ValEx(Text1.Text) - ValEx(Text2.Text), "###,###,###")
End Sub

vebcir
دوشنبه 16 دی 1398, 05:24 صبح
سلام من میخوام یک تایمر قرار بدم و مکرر بررسی کنه که مقلا اگر جمله ای نوشت که کلمه hi توی تکست باکس نوشته بود برنامه رو ببنده لطفا راهنمایی کنید
ممنون از اساتید محترم

ASHKANLAEI
دوشنبه 16 دی 1398, 09:57 صبح
از تابع InStr استفاده کنید و اگر مقدارش بیش از صفر بود یعنی وجود دارد در این صورت با End برنامه را ببندید.
position = InStr(1, stringToSearch, stringToFind)

vbhamed
دوشنبه 23 دی 1398, 10:53 صبح
سلام

با این کد فرمت تکس باکس تغییرمی کند و اعداد سه رقم سه رقم جدا می شود و حالا برای جمع کردن تکس باکس مشکل می خورد 100،000
'If Val(Text1.Text) > 0 Then Text1.Text = Format(Text1.Text, "###,###,###")

چطوری می شود اعداد داخل تکس باکس به حالت اولیه برگردد مثلا 100000 که بشود با تکس دیگر جمع کرد یا کاما بین اعداد حذف شود


Private Function num(s As String)


num = Val(Replace$(s, ",", ""))


End Function


Private Sub Form_Load()


MsgBox num(Text1) * num(Text2)


End Sub

the king
دوشنبه 23 دی 1398, 16:20 عصر
Private Function num(s As String)


num = Val(Replace$(s, ",", ""))


End Function


Private Sub Form_Load()


MsgBox num(Text1) * num(Text2)


End Sub


تابع Format برای انتخاب کاراکتر های مورد استفاده به تنظیمات Region and Language ویندوز رجوع میکنه، به همین جهت نمیشه تضمین کرد حتما در رشته خروجی Format کاراکتر جداکننده Comma باشه.

151249

مثلا در تنظیمات زبان آذربایجانی (Azeri Azerbaijan) از کاراکتر space به عنوان جداکننده استفاده می کنند. یا در زبان پشتو افغانستان از کاراکتر ، استفاده میشه.
البته در اغلب سیستم ها همون کاراکتر Comma جداکننده ارقام خواهد بود و مشکلی پیش نخواهد اومد.

vbhamed
دوشنبه 23 دی 1398, 22:59 عصر
تابع Format برای انتخاب کاراکتر های مورد استفاده به تنظیمات Region and Language ویندوز رجوع میکنه، به همین جهت نمیشه تضمین کرد حتما در رشته خروجی Format کاراکتر جداکننده Comma باشه.

151249

مثلا در تنظیمات زبان آذربایجانی (Azeri Azerbaijan) از کاراکتر space به عنوان جداکننده استفاده می کنند. یا در زبان پشتو افغانستان از کاراکتر ، استفاده میشه.
البته در اغلب سیستم ها همون کاراکتر Comma جداکننده ارقام خواهد بود و مشکلی پیش نخواهد اومد.

سلام
همونطور که خودتون گفتید کسی معمولا نمیاد این چیزا رو تغییر بده،‌همونطور که من الان بیشتر از 20 ساله برنامه هام دست کلی مشتریه و تابحال حتی یک مورد چنین مشکلی گزارش نشده
ضمنا به زبان عربی و انگلیسی هم برنامه در خارج از کشور کار میکنه
بنابراین به راحتی میتونید این مورد رو نادیده بگیرید ولی اگر خیلی حساس بودین هم میتونید تنظیمات Control Panel رو بخونین و طبق اون کاراکتر رو حذف کنین

ASHKANLAEI
سه شنبه 24 دی 1398, 08:55 صبح
ولی اگر خیلی حساس بودین هم میتونید تنظیمات Control Panel رو بخونین و طبق اون کاراکتر رو حذف کنیندوست عزیز فکر میکنم واژۀ محکم کاری از واژۀ حساسیت​ مناسب تر باشه.