اکسل

همه چیز درباره اکسل

اکسل

همه چیز درباره اکسل

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


نقل شده از

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

  • علیرضا باقری

کپی یک فرمول در تعدادی سلول با استفاده از vba

چهارشنبه, ۱۳ دی ۱۳۹۶، ۰۴:۵۵ ب.ظ

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

Range("A2:A" & Range("B1").Value).Formula = Range("A1").Formula

در مثال فوق range(b1) انتهای محل کپی شدن می باشد

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

  • علیرضا باقری

اگر برای رخدادهای sheet کد نویسی کرده اید اما گاهی غیر فعال می شوند و با باز و بسته کردن فایل مجددا به کار می افتند احتمالا در بخشی از کد events را غیر فعال کرده اید کافی است مجددا ان را فعال نمائید

Application.EnableEvents = True

  • علیرضا باقری

خطای1004-select methid of range class faild

شنبه, ۲۵ آذر ۱۳۹۶، ۰۹:۱۲ ق.ظ

برای select یک سلول باید ابتدا sheet را select کنید به ترتیب زیر

sheet1.select

range("a1").select

selection.value=number

حال اگر sheet مدنظر مخفی باشد یا اول کد select نشود با خطای فوق مواجه می شوید

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

sheet1.range("a1").value=number


  • علیرضا باقری

تایمر در اکسل

سه شنبه, ۲۱ آذر ۱۳۹۶، ۰۹:۱۰ ق.ظ

گاهی اوقات لازم است در زمان مشخصی کار خاصی در اکسل انجام شود

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

برای چنین مواردی از تابع ontime به شرح زیر استفاده می شود

OnTime( EarliestTime , Procedure , LatestTime , Schedule )

بخش اول زمان مد نظر

بخش دوم اتفاقی که باید در زمان مدنظر رخ دهد

بخش سوم ایا امکان اجرای برنامه در زمان تعیین شده وجود دارد و اکسل در حال اماده به کار می باشد مثلا اگر اکسل در حال cut یا copy و غیره باشد بعد از یک وقفه 30 ثانیه ای درخواست مجددا اجرا می شود

بخش چهارم  متوقف کردن ontime یا از سر گیری آن پیش فرض true

مثال

خط کد زیر برنامه مد نظر را بعد از 15 دقیقه اجرا می کند

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

اجرای برنامه در ساعت 17

Application.OnTime TimeValue("17:00:00"), "my_Procedure"

لغو کردن تایمر قبلی

Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ 
 Procedure:="my_Procedure", Schedule:=False

نقل شده از

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-ontime-method-excel


  • علیرضا باقری

خطای out of stack space 28

سه شنبه, ۷ آذر ۱۳۹۶، ۰۵:۱۰ ب.ظ

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

به کد نوشته شده مراجعه کنید و قدم به قدم اجرا نمائید تا حلقه بدون پایان پیدا شود

  • علیرضا باقری

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

ActiveWorkbook.SaveAs Filename:="addres".xlsm

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

ActiveWorkbook.SaveCopyAs Filename:="addres".xlsm

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



  • علیرضا باقری

از کدهای زیر استفاده نمائید

    FolderPath = "C:\Users\Ron\test"
    If Right(FolderPath, 1) <> "\" Then
        FolderPath = FolderPath & "\"
    End If
    
    If Dir(FolderPath, vbDirectory) <> vbNullString Then
        MsgBox "Folder exist"
    Else
        MsgBox "Folder doesn't exist"
    End If


  • موافقین ۰ مخالفین ۰
  • ۱۵ شهریور ۹۵ ، ۱۱:۵۹
  • علیرضا باقری

باز کردن یک پوشه از ویندوز توسط اکسل

شنبه, ۱۳ شهریور ۱۳۹۵، ۰۱:۵۱ ب.ظ

برای این منظور در محیط vba از تابع shell مشابه مثال زیر استفاده نمائید

Call Shell("explorer.exe" & " " & "path file", vbNormalFocus)


به جای path file مسیر پوشه مورد نظر را وارد نمائید

  • موافقین ۰ مخالفین ۰
  • ۱۳ شهریور ۹۵ ، ۱۳:۵۱
  • علیرضا باقری