oosta Excel اوستا اکسل

فاز یک --> فلوچارت

oosta Excel اوستا اکسل

فاز یک --> فلوچارت

oosta Excel اوستا اکسل

در این سایت ما سعی داریم همه چیز درباره برنامه سازی و کار با محیط های مختلف اکسل داشته باشیم
ما از آموزش فلوچارت شروع کردیم که مبنا و مبانی اولیه است.

فلوچارت ها معمولا با جواب هستند
در مسایل و فلوچارت هایی که جواب ندارند می توانید مشارکت نمایید.

از شهریور ماه 1400 یکسری پروژه های کاربردی در قالب برنامه بفروش میرسد

۱۷ مطلب با موضوع «برنامه نویسی :: VBA اکسل» ثبت شده است


نرم افزار محاسبه کیلومتراژ مأمورین راه آهن جمهوری اسلامی ایران توسط اکسل و با برنامه نویسی VBA ساخته شده است.


شروع پروژه:1387

ساخت برنامه ساده اولیه: 1387

بهره برداری اولیه در ناحیه راه آهن طبس: 1387

طراحی و ساخت برنامه تحت شبکه: 1394

بهره برداری برنامه چند کاربره تحت شبکه در ناحیه راه آهن طبس: بهار 1395

معرفی به معاونت راه آهن در تهران: فروردین 1395 (در حال بررسی، امیدواریم این زحمات چندساله به ثمر بنشیند)



کیلومتراژ مامورین راه آهن


بخش ها: 

  • مأمورین
  • کارنامه ها
  • مأموریت ها
  • پیک و پیک ویژه
  • گزارشات
  • پارامترها
  • پشتیبان گیری
  • بروزرسانی

خصوصیات:

  • ورودی انواع مأموریت ها (باری، مسافری، مسافری ویژه، رزرو، کشیک و ...)
  • محاسبه تمام اتومات کیلومتراژ کارنامه
  • محاسبه فراخوان زیر استراحت
  • محاسبه اتومات خوابگاه و استراحت
  • محاسبه اتومات پیک و پیک ویژه
  • محاسبه کیلومتراژ از مبدأ تا مقصد بصورت اتومات براساس فاصله و گراف
  • تغییر تمام محاسبات بعد از حذف یا تغییر
  • گزارش های ویژه محاسبه ساعت مفید و غیر مفید
  • امکان تغییر مبناهای کیلومتر مثلاً کیلومتر امداد
  • نصب تحت شبکه و در صورت درخواست با مقداری تغییر بصورت آنلاین و در شبکه اینترنت
  • امکان تعریف و تغییر دسترسی های هر کاربر
  • و بسیاری از امکانات دیگر که لازمه محاسبه کیلومتراژ مأمورین قطار می باشد.

توسط اوستا اکسل

جلیل عباسی سیوکی
۲۸ ارديبهشت ۹۵ ، ۱۹:۳۸ ۱ نظر

اکسل به سادگی می تواند به پایگاه داده MySQL دسترسی داشته و عملیات های مختلف را برای خواندن، ایجاد، تغییر و حذف داده ها انجام دهد.

بدین منظور لازم است که ابتدا برنامه به پایگاه داده متصل شود و دستورات تراکنشی برای دسترسی و ویرایش اطلاعات ارسال شود.


Public cn As ADODB.Connection

Public rs As ADODB.Recordset

Public strSql As String

'Connection module:

Public Function connectDB()

    Dim strServer_Name As String

    Dim strDB_Name As String

    Dim strUser_ID As String

    Dim strPassword As String

    With Sheet2

        strServer_Name = .Range("B2").Value

        strDB_Name = .Range("B3").Value

        strUser_ID = .Range("B4").Value

        strPassword = .Range("B5").Value

    End With

    Set cn = New ADODB.Connection

    Set rs = CreateObject("ADODB.Recordset") 'EBGen-Daily

    Server_Name = strServer_Name

    Database_Name = strDB_Name ' Name of database

    User_ID = strUser_ID 'id user or username

    Password = strPassword 'Password

    Port = "3306"

    conStr = "DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=" & _

            Server_Name & ";PORT=" & Port & ";DATABASE=" & Database_Name & _

            ";UID=" & User_ID & "; PWD=" & Password & "; Option=3"

    cn.Open conStr

End Function


'

'Sub module():

خواندن از دیتابیس

Sub request()

    Dim fTimeEnd As Date

    Dim fTimeStart As Date

    Call connectDB

    fTimeStart = Timer

    strSql = "SELECT * FROM tb1"  ' tb1 نام جدول

    Set rs = New ADODB.Recordset

    rs.Open strSql, cn, adOpenDynamic

    With Sheet1.Range("A1")

        .ClearContents

        .CopyFromRecordset rs

    End With

    fTimeEnd = Timer

    Sheet1.Cells(1, 3) = Format$((fTimeEnd - fTimeStart) * 100!, "0.00 "" Centiseconds Elapsed""")

    cn.Close

    Set cn = Nothing

End Sub

سروری که از آن استفاده می کنید لازم است پورت 3306 باز باشد

و اجازه دسترسی ریموت به دیتابیس را در پنل هاست بدهید

ابتدا درایور اتصال به MySQL را بر روی ویندوز نصب نمایید 

 درایور X64 را از دریافت کنید

عنوان: درایور اتصال به mysql
حجم: 4.21 مگابایت
توضیحات: درایور اتصال به mysql 

لطفا سوالات خود را ارسال نمایید تا پاسخ لازم را بفرستیم

در مثال فوق زمان خواندن را هم محاسبه می کند تا بتوانید با مقایسه سرورهای مختلف، بهترین انتخاب را داشته باشید.

سرور پیشنهادی ما که پورت 3306 باز دارد، mashhadhost.com  می باشد.

جلیل عباسی سیوکی
۰۸ اسفند ۹۴ ، ۱۹:۲۱ ۰ نظر
بهتره از حلقه for برای پیمایش یک شیت استفاده نکنید بدلیل اینکه در حجم بالای اطلاعات سرعت کار را پایین می آورد.
روش خود اکسل برای جستجو را آورده ایم تا مورد استفاده علاقمندان قرار گیرد.


val  مقدار عددی که بدنبال آن می گردد
ws نام sheet
col ستونی که بدنبال مقدار می گردد مانند "A"
firstCellAsCol  اگر ستون عنوان داشته باشد و یا بخواهید از سطر خاصی شروع کند شماره اولین سطر را وارد نمایید


نتیجه یک مقدار منطقی است

Public Function searchValueIsExist(val As Long, ws As Worksheet, col As String, firstCellAsCol As Integer) As Boolean
    Dim boolVal As Boolean
    boolVal = False
    Dim lrow As Long
    lrow = ws.Cells(ws.Rows.Count, col).End(xlUp).row
    Dim c As Range
    Dim str1 As String
    str1 = col & firstCellAsCol & ":" & col & lrow
    With ws.Range(str1)
        Set c = .Find(val, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            boolVal = True
        End If
    End With
    searchValueIsExist = boolVal
End Function

موفق باشید

اوستا اکسل

جلیل عباسی سیوکی
۱۱ بهمن ۹۴ ، ۲۰:۵۹ ۰ نظر

اگه قصد دارید نام صفحه ها یا شیت های اکسل دیده نشود یا نتوانند صفحه ای اضافه کنند.

ActiveWindow.DisplayWorkbookTabs = False


اگه قصد دارید منو های اکسل دیده نشود.

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"


اگه قصد دارید اسکرول افقی اکسل دیده نشود.

ActiveWindow.DisplayHorizontalScrollBar = False


اگه قصد دارید اسکرول عمودی اکسل دیده نشود.

ActiveWindow.DisplayVerticalScrollBar = False


اگه قصد دارید شماره های عمودی و حروف افقی اکسل دیده نشود.

ActiveWindow.DisplayHeadings = False


اگه قصد دارید خطوط پیش فرض خانه های یک صفحه از اکسل دیده نشود.

ActiveWindow.DisplayGridlines = False


اگه قصد دارید اکسل به صورت تمام صفحه دیده شود.

Application.DisplayFullScreen = True


اگه قصد دارید نوار وضعیت افقی پایین اکسل دیده نشود.

Application.DisplayStatusBar = Not Application.DisplayStatusBar


اگه قصد دارید پنجره بصورت حداکثر دیده شود.

Application.WindowState = xlMaximized


اگه قصد دارید در این فایل اکسل پنجره بصورت حداکثر دیده شود.

ActiveWindow.WindowState = xlMaximized


اگه قصد دارید نوار فرمول اکسل دیده نشود.

Application.DisplayFormulaBar = False


اگه قصد دارید نوار زوم پایین دیده نشود و کاربر نتواند زوم را تغییر دهد.

ActiveWindow.Zoom = 100


اگه قصد دارید در نوار عنوان نام اکسل دیده نشود و بجای آن متن دلخواه خود را بنویسید.

Application.Caption = "DayaAfzar.ir"

جلیل عباسی سیوکی
۰۳ دی ۹۴ ، ۱۹:۲۵ ۰ نظر

کپی یک TextBox در یک شیت

Sub copy_textboxInSheet(row1 As Integer, col1 As Integer)
    Sheet2.Shapes("TextBox 1").Copy
    Application.Goto Reference:=Worksheets("Sheet2").Cells(row1, col1), Scroll:=True
    Sheet2.Paste
End Sub

سطر و ستون را بصورت عددی به این تابع بدهید تا در مکان مورد نظر textBox 1 را کپی نماید.

نکته: بین کلمه TextBox و عدد 1 که هر دو مربوط به نام TextBox می باشد یک فاصله قرار دارد و اگر آن را بچرخانید نقطه موس و بالا را در نظر می گیرد.

حذف همه TextBox ها از یک شیت بجز TextBox 1

Sub del_textboxInSheet()
Dim tb As Object
    For Each tb In ActiveSheet.TextBoxes
        If tb.Name <> "TextBox 1" Then
            tb.Delete
        End If
    Next
End Sub

نکته: این تابع غیر از TextBox 1 بقیه را حذف می نماید.


حذف همه TextBox ها از یک شیت

Sub del_textboxInSheet()
Dim tb As Object
    For Each tb In ActiveSheet.TextBoxes
            tb.Delete
    Next
End Sub


جلیل عباسی سیوکی
۲۰ آذر ۹۴ ، ۱۲:۵۸ ۰ نظر

    Dim str1 As String

    str1 = ""
    str1 = TextBox.Text
    str1 = Replace(str1, vbCr, "")
    str1 = Replace(str1, vbCrLf, Chr(10))
    Sheet1.Cells(2, 8).Value = str1

بدین طریق توانستم مشکل ایجاد خط اضافه در سلول اکسل بهمراه مشکل رفتن کلمه آخر خط (قبل از اینتر) را حل نمایم

بهتر است به vbLf کاری نداشته باشیم.

نکته: بهتر است قبل از هر کاری مقدار آبجکت را که در اینجا TextBox است در یک متغیر قرار دهیم. چون آبجکت ها اعمالی را انجام می دهند که ناخواسته و بدون اطلاع ماست.

نتیجه: کنترل مقدارها در متغیرها بسیار بهتر و ساده تر صورت می گیرد و از خطاهای ناخواسته پرهیز می شود. آبجکت ها محلی برای رویدادهای ناخواسته هستند.


اکسل خطا در خط جدید

تصویر 1: قبل از تصحیح خطا


اکسل بعد از رفع خطا در خط جدید

تصویر 2: بعد از تصحیح خطا

نتیجه:

Chr(13) = Chr$(13) = vbCr

Chr(10) = Chr$(10) = vbLf

vbNewLine = vbCrLf = Chr(13)Chr(10) = Chr$(13)Chr$(10)

جلیل عباسی سیوکی
۲۰ آذر ۹۴ ، ۱۲:۴۰ ۰ نظر

VBA  چیست؟

زبان برنامه نویسی ویژوال بیسیک در برنامه های کاربردی Office را VBA می نامند که مخفف Visual Basic For Applications می باشد. این زبان توسط شرکت نرم افزاری مایکروسافت طراحی شده است و در تمامی نرم افزارهای Office قابل استفاده می باشد.

 

کاربرد زبان برنامه نویسی VBA:

 VBA کاربردهای بسیار زیادی در اکسل دارد. تحلیل و بررسی داده های بانک اطلاعاتی خود یکی از کاربردهای این زبان برنامه نویسی می باشد. VBA می تواند پاسخگوی نیازهایی همچون  تحلیل داده، طراحی، گزارش گیری و حتی تولید نرم افزار و ... باشد.

جعفری
۲۰ تیر ۹۴ ، ۱۳:۱۵ ۰ نظر