oosta Excel اوستا اکسل

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

oosta Excel اوستا اکسل

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

oosta Excel اوستا اکسل

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

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

لینک گروه پرسش و پاسخ در تلگرام:
https://t.me/joinchat/CCrOQRL0g-iG3tIeTxPmPQ

اکسل به سادگی می تواند به پایگاه داده 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  می باشد.

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

دریافت فایل اکسل
عنوان: کدهای صفحه کلید
حجم: 134 کیلوبایت
توضیحات: کدهای صفحه کلید

جلیل عباسی سیوکی
۱۹ بهمن ۹۴ ، ۱۰:۲۵ ۰ نظر
دریافت جدول کد اسکی فایل اکسل
عنوان: جدول کد اسکی
حجم: 152 کیلوبایت
توضیحات: جدول کد اسکی

 

 دریافت جدول کد اسکی فایل ورد
عنوان: جدول کد اسکی 
حجم: 178 کیلوبایت
توضیحات: جدول کد اسکی


دریافت جدول کد اسکی فایل PDF
عنوان: جدول کد اسکی
حجم: 380 کیلوبایت
توضیحات: جدول کد اسکی


دریافت جدول کد اسکی فایل XPS
عنوان: جدول کد اسکی
حجم: 263 کیلوبایت
توضیحات: جدول کد اسکی


فایل تبدیل مبناهای مختلف عددی به یکدیگر بصورت تمرین - اینجا

فلوچارت های  تبدیل عدد به مبناهای دیگر - مبنای 2 و... سطح متوسط - اینجا


با گرفتن کلید Alt بهمراه تایپ کد هر عدد می توان کاراکتر مورد نظر را تایپ نمود.


اگر می خواهید با کاراکترهای اسکی جدول بسازید می توانید از کاراکترهای زیر استفاده نمایید


جدول اسکی


جدول اسکی:

جدول اسکی کامل

جلیل عباسی سیوکی
۱۷ بهمن ۹۴ ، ۰۸:۴۶ ۰ نظر
بهتره از حلقه 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

موفق باشید

اوستا اکسل

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

آیا باور می کنید که اکسل با اکسس برای راهبری حجم زیاد داده و اشتراک گذاری اطلاعات کل کل می کند

excel

صفحه گسترده اکسل نیز می تواند بجای بانک داده و حتی خیلی بهتر از اکسس بکار گرفته شود.


اشتراک گذاری فایل اکسل

برای راه اندازی فایل اکسل و اشتراک آن برای شبکه تنظیمات زیر را انجام دهید.


اشتراک گذاری فایل اکسل


اشتراک گذاری فایل اکسل


حال می توانید مانند یک پایگاه داده اشتراک گذاری شده از اکسل استفاده نمایید

برای اطلاعات بیشتر از این موضوع در قسمت نظرات سوال خود را بگذارید.


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

اگر هر کاربری بدلیل قطع شبکه و یا بسته شدن ناخواسته نامش در این لیست وجود دارد که در حال حاضر فایل را باز نکرده می توانید این کاربر را از لیست حذف نمایید.

ضمناً ما تابعی نوشته ایم که کاربرانی که فایل توسط آن ها مورد استفاده قرار نمی گیرد و دیگر ارتباطی با این فایل ندارند را به صورت اتومات حذف می کند. برای راهنمایی و دریافت اطلاعات می توانید پیام خود را بفرستید.


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

شما می توانید یک پایگاه داده Access را به اشتراک بگذارید. بسته به نیاز خود و در دسترس بودن منابع، راه های مختلفی وجود دارد. در این مقاله، ما یک نگاهی به روش اشتراک گذاشتن یک پایگاه داده با روش تقسیم کردن آن می پردازیم.

ما خلاصه ای صحبت های میچر میر Michelle Meyer  را درباره اکسس و استفاده های کاربران از قابلیت جداسازی فایل اکسس آورده ایم تا با اکسس و اشتراک گذاری داده ها بیشتر آشنا شوید.

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

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

 در رابطه با مایکروسافت اکسس، فقط به نظر من به عنوان یک برنامه نویس با بیشتر از  20 سال تجربه،  بهترین قوانین عملیاتی هستند که توسط مایکروسافت تعریف شده است. به طور کلی، اگر یک سری مسائل به درستی در نظر گرفته شوند، مایکروسافت اکسس به خوبی در یک محیط چند کاربر عمل خواهد کرد.

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

تقسیم پایگاه شما: با تقسیم دسترسی، عملکرد پایگاه داده خود را، در یک محیط چند کاربر، به طرز چشمگیری بهبود خواهید بخشید. به طور کلی تقسیم یک پایگاه داده دسترسی به توابع ذخیره سازی داده ها جدا از توابع پردازش داده ها است. ذخیره سازی داده ها با جداول اداره می شود. پردازش داده ها از طریق فرم (برای ورود داده ها)، گزارش ها و دیگر اشیاء پردازش اداره می شود.

اجزاء تقسیم یک پایگاه داده، الف) جزء ذخیره سازی است مانند جداول ب) فرم ها، گزارشها و دیگر اجزاء.

پس از جداسازی یک پایگاه داده Access  به دو قسمت تقسیم می شود. یک فایل باطن (جداول داده) و یک فایل ظاهر (نرم افزار داده ها).


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

Split an Access database


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

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

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"

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

ALT+Enter

می توان از

Char(10)

نیز استفاده کرد.

مثال:

="Ali" & Char(10) & "Abbasi"

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

کپی یک 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)

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