اکسل



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

گاهی لازم است مکان نما روی یکی از اشیا باقی بماند مثلا فرض کنید در فرم انتخاب کالا با بارکدخوان لازم است مکان نما مدام و تا زمان نیاز کاربر و قرائت بارکدها روی یک جعبه متن باقی باشد و بعد خارج شود که جهت جلوگیری از خروج مکان نما در کد خروج جعبه متن کنسل را true کنید

Dim DisableMyEvents as Boolean

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    If DisableMyEvents then Exit Sub

    ' code to validate
  
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    DisableMyEvents = True
End Sub

 

نقل شده از

https://chandoo.org/forum/threads/text-box-setfocus-problem-data-validation.14034/


در صورتی که نمودار در صفحات با اطلاعات زیاد داشته باشیم زمانی که کاربر در صفحه اسکرول به بالا یا پایین نماید نمودارها از محدوده نمایش خارج می شوند در صورتی که نیاز باشد نمودارها هم با اسکرول به مکان جدید منتقل شوند از کدهای زیر استفاده نمائید

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'UpdatebyExtendoffice20161111
    Dim CPos As Double
    Application.ScreenUpdating = False
    CPos = ActiveWindow.ScrollRow * ActiveCell.RowHeight
    ActiveSheet.ChartObjects("Chart 2").Activate
    ActiveSheet.Shapes("Chart 2").Top = CPos
    ActiveWindow.Visible = False
    Application.ScreenUpdating = True
End Sub

 

نقل شده از

https://www.extendoffice.com/documents/excel/4201-excel-keep-chart-in-view.html


این خطا در زمان افزودن ردیف یا ستون یا زمان تغییر عرض و ارتفاع سلولها اتفاق می افتد

در محلی که این تغییرات رخ می دهد ردیف یا ستون مخفی شده دارید کافیست انها را از حالت مخفی خارج کرده تغییرات مورد نیاز را اعمال نموده و مجددا ردیف ها یا ستونهای مدنظر مخفی شود


زمانیکه لیست باکس بیش از یک ستون داشته باشد اکسل عرض ستون های لیست باکس را به طور مساوی در نظر می گیرد که ممکن است نیاز ما را براورده نکند(فرض کنید یک ستون نام و یک ستون ادرس است که باید ستون ادرس بزرگتر از ستون نام باشد و.)
برای رفع ان و تنظیم دستی عرض ها از کد در فراخوانی فرم استفاده می شود به شرح زیر
جمع اعداد به اندازه کل عرض لیست باکس محاسبه شود
در این مثال تعداد ستون ها 3 و کل عرض لیست باکس 200می باشد

listbox1.ColumnWidths = "50,50,100"

نقل شده از
https://stackoverflow.com/questions/5088787/excel-vba-listbox


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


Private Sub Workbook_open
  If ThisWorkbook.ReadOnly Then
    ThisWorkbook.close
  End If
End Sub

نقل شده از:

برای انتخاب یک sheet در اکسل توسط کد نویسی روش های مختلفی وجود دارد

1- انتخاب با نام وضع شده توسط کاربر

activesheet.name

sheets("name").select

2- انتخاب با نام وضع شده در محیط برنامه نویسی

activesheet.codename

For Each Worksheet In Worksheets
 If Worksheet.CodeName = codename Then
  Worksheet.Select
  Exit For
  End If
Next

3- انتخاب با شماره sheet  از ابتدا یا ایندکس(برگه ها از ابتدا شمارش می شوند و به هر یک شماره ای اختصاص می یابد)

activesheet.index

sheets(i).select


بحث فیلتر پیشرفته روی متون چه در کد نویسی چه در محدوده اکسل مورد نظر بنده نمی باشد که در سایت های فراوانی درباره آن صحبت شده است مشکلی که وجود دارد استفاده از این ابزار جهت کار روی اعداد می باشد

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

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

در کد نویسی جهت تبدیل عدد به متن از تابع str استفاده نمائید

در پایان یاداوری می شود که شرط فیلتر هم حتما به متن تبدیل شود


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


نقل شده از

http://office.microsoft.com/en-us/excel-help/add-a-group-box-or-frame-control-to-a-worksheet-HP010236679.aspx.


جهت پخش فایل صوتی در اکسل بایستی از API های ویندوز استفاده نمود که برای فراخوانی آنها از declare statement استفاده می شود لذا جهت شروع بایستی API مربوطه را فراخوانی نمائیم

Public Declare Function Sound32 _
    Lib "winmm.dll" _
    Alias "sndPlaySoundA" ( _
        ByVal lpszSoundName As String, _
        ByVal uFlags As Long) As Long

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

Call sound32(WAVFile, snd_sync)

wavfile مسیر قرارگیری فایل است و گزینه بعدی نحوه پخش را مشخص می کند که پیش فرض snd_sync می باشد

Const SND_SYNC = &H0        ' (Default) Play the sound synchronously. Code execution
                            ' pauses until sound is complete.

Const SND_ASYNC = &H1       ' Play the sound asynchronously. Code execution
                            ' does not wait for sound to complete.

Const SND_NODEFAULT = &H2   ' If the specified sound is not found, do not play
                            ' the default sound (no sound is played).

Const SND_MEMORY = &H4      ' lpszSoundName is a memory file of the sound.
                            ' Not used in VBA/VB6.

Const SND_LOOP = &H8        ' Continue playing sound in a loop until the next
                            ' call to sndPlaySound.

Const SND_NOSTOP = &H10     ' Do not stop playing the current sound before playing
                            ' the specified sound.

نقل شده از

http://www.cpearson.com/excel/PlaySound.aspx

https://excel.tips.net/T006559_Conditionally_Playing_an_Audio_File.html


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

خرید بلیط خارجی وبلاگ ویژه امید خسروی anzali1398 جدیدترین گوشی سامسونگ 2019 همیار طلبه صادانه طنین گشت دانلود جدیدیترین فیلم ها هاروز دنیا چکیده ی ذهن و روان یک بیمار پیمانکار اسفالت