PDA

View Full Version : ساخت فولدر توسط VBA



ryonis
شنبه 08 خرداد 1389, 08:38 صبح
سلام دوستان گلم.
در برنامه ام امكان گزارشگيري توسط Excel رو گذاشتم. اما بهتر ديدم اين گزارش در فولدري ذخيره گردد. حال مشكلم اينجاست كه اگه اين فولدر در كامپيوتر كاربر وجود نداشته باشه به مشكل برمي خورم.
چگونه مي توانم ابتدا يك فولدر رو ايجاد كنم(يا بهتره كنترل كنم فولدر وجود داره ؟) و سپس فايل رو در آن ذخيره كنم؟ متشكرم

http://upload.wikimedia.org/wikipedia/en/thumb/c/c9/VBA_logo.svg/572px-VBA_logo.svg.png

amirzazadeh
شنبه 08 خرداد 1389, 10:51 صبح
سلام دوستان گلم.
در برنامه ام امكان گزارشگيري توسط Excel رو گذاشتم. اما بهتر ديدم اين گزارش در فولدري ذخيره گردد. حال مشكلم اينجاست كه اگه اين فولدر در كامپيوتر كاربر وجود نداشته باشه به مشكل برمي خورم.
چگونه مي توانم ابتدا يك فولدر رو ايجاد كنم(يا بهتره كنترل كنم فولدر وجود داره ؟) و سپس فايل رو در آن ذخيره كنم؟ متشكرم

http://upload.wikimedia.org/wikipedia/en/thumb/c/c9/VBA_logo.svg/572px-VBA_logo.svg.png
سلام
از اين كد استفاده كنيد:

If Dir(strDirectoryPath)="" then MkDir strDirectoryPath
نسخه 2007

If Dir(strDirectoryPath,vbDirectory)="" then MkDir strDirectoryPath
.............................
موفق باشيد

ryonis
یک شنبه 09 خرداد 1389, 16:45 عصر
سلام
از اين كد استفاده كنيد:

If Dir(strDirectoryPath)="" then MkDir strDirectoryPath
موفق باشيد

ممنونم. فقط خواهش مي كنم اندكي در مورد تابع DIR برام توضيح بدين. Help اكسس رو خوندم ولي زياد متوجه نشدم.

باز هم متشكرم :تشویق:

amirzazadeh
یک شنبه 09 خرداد 1389, 20:21 عصر
ممنونم. فقط خواهش مي كنم اندكي در مورد تابع DIR برام توضيح بدين. Help اكسس رو خوندم ولي زياد متوجه نشدم.

باز هم متشكرم :تشویق:
dir مخفف دايركتوري هست كه در فرمانهاي تحت داس هم وجود داره مثلا اگر در محيط داس تايپ كنيد dir تمامي دايركتوريهاي درايو فعال براي شما ليست ميشه.
..........................
موفق باشيد

ryonis
دوشنبه 10 خرداد 1389, 09:31 صبح
dir مخفف دايركتوري هست كه در فرمانهاي تحت داس هم وجود داره مثلا اگر در محيط داس تايپ كنيد dir تمامي دايركتوريهاي درايو فعال براي شما ليست ميشه.
..........................
موفق باشيد
فرمايش شما كه كاملاً درسته. اما وقتي دستور شما رو دربرنامه اجرا مي كنم اگه فولدر مورد نظر وجود داشته باشه پيغام زير رو ميده.



http://1.bp.blogspot.com/_W44qmIC7D8U/TANGoGczpbI/AAAAAAAAAYo/Vh8fG_KGFys/s400/errr.JPG

ضمناً منظورم از توضيح در خصوص DIR درمورد آرگومان ها و خروجي هاشه.
اگه لطف كنيد...


http://3.bp.blogspot.com/_W44qmIC7D8U/TANHlxyWQGI/AAAAAAAAAYw/PXxqXBe1EAM/s400/dir.JPG

amirzazadeh
دوشنبه 10 خرداد 1389, 10:11 صبح
فرمايش شما كه كاملاً درسته. اما وقتي دستور شما رو دربرنامه اجرا مي كنم اگه فولدر مورد نظر وجود داشته باشه پيغام زير رو ميده.



http://1.bp.blogspot.com/_W44qmIC7D8U/TANGoGczpbI/AAAAAAAAAYo/Vh8fG_KGFys/s400/errr.JPG


سلام
براي حذف پيام خطا ميتونيد از اين كد استفاده كنيد:

If Dir(path) <> "" Then Kill path
كه در صورت وجود پوشه قبلي اونرو حذف ميكنه.
........................
موفق باشيد

ryonis
چهارشنبه 12 خرداد 1389, 11:08 صبح
سلام
براي حذف پيام خطا ميتونيد از اين كد استفاده كنيد:

If Dir(path) <> "" Then Kill path
كه در صورت وجود پوشه قبلي اونرو حذف ميكنه.
........................
موفق باشيد
دوست عزيز، اولاً از پاسخ دهي مناسب تون صميمانه سپاسگزارم. اميدوارم هميشه موفق و پيروز باشيد.
در خصوص پاسخ تان هم پيشنهاد جالبيه. اما مشكل اينجاست كه من نميخوام فولدر حذف يشه. آخه توش فايلهاي ديگه اي هم وجود داره. راهي نيست كه بررسي كنه اگه فولدر نباشه كه ايجادش كنه و اگه بود هيچ عكس العملي نبينيم؟ :بوس:

alirezabahrami
چهارشنبه 12 خرداد 1389, 12:10 عصر
اما مشكل اينجاست كه من نميخوام فولدر حذف يشه. آخه توش فايلهاي ديگه اي هم وجود داره. راهي نيست كه بررسي كنه اگه فولدر نباشه كه ايجادش كنه و اگه بود هيچ عكس العملي نبينيم؟ :بوس:
سلام
نمونه ضميمه راببين!
در نمونه فوق از طريق يك كمند باتن يك فولدر در مسير برنامه شما ايجاد ميشود و اگر قبلاً اين فولدر در مسير برنامه ايجاد شده باشد پيغام پوشه قبلاً ايجاد شده صادر ميشود و شما ميتوانيد در برنامه خودتان اين پيغام را حذف كنيد(چون خواسته ايد كه اگه بود هيچ عكس العملي نبينيم).
موفق باشيد

ryonis
چهارشنبه 12 خرداد 1389, 14:43 عصر
سلام
نمونه ضميمه راببين!
در نمونه فوق از طريق يك كمند باتن يك فولدر در مسير برنامه شما ايجاد ميشود و اگر قبلاً اين فولدر در مسير برنامه ايجاد شده باشد پيغام پوشه قبلاً ايجاد شده صادر ميشود و شما ميتوانيد در برنامه خودتان اين پيغام را حذف كنيد(چون خواسته ايد كه اگه بود هيچ عكس العملي نبينيم).
موفق باشيد
سلام مجدد. ممنونم از روش پيشنهادي تون.
چون مجبور بودم سريع مشكل رو اصلاح كنم موقتي از روش زير استفاده كردم:
خط اول Procedure رو كه نووشته On Error GoTo ... رو عوض كردم و بعد از تعريف يكي از خطوط كدم به عنوان محل پرش، گفتم اگه Error داشتيم به اونجا بپره. منظورم از محل پرش دقيقاً يك خط بعد بود.
مشكل ام حل شده. به نظرتون اين روش مشكلي بوجود نمي آره؟

alirezabahrami
چهارشنبه 12 خرداد 1389, 16:09 عصر
سلام مجدد. ممنونم از روش پيشنهادي تون.
چون مجبور بودم سريع مشكل رو اصلاح كنم موقتي از روش زير استفاده كردم:
خط اول Procedure رو كه نووشته On Error GoTo ... رو عوض كردم و بعد از تعريف يكي از خطوط كدم به عنوان محل پرش، گفتم اگه Error داشتيم به اونجا بپره. منظورم از محل پرش دقيقاً يك خط بعد بود.
مشكل ام حل شده. به نظرتون اين روش مشكلي بوجود نمي آره؟
سلام
اينكه اشاره كرده ايد گفتم اگه Error داشتيم به اونجا بپره. وقتي پريد چه عملي صورت بگيره؟

ryonis
چهارشنبه 19 خرداد 1389, 09:35 صبح
سلام
اينكه اشاره كرده ايد گفتم اگه Error داشتيم به اونجا بپره. وقتي پريد چه عملي صورت بگيره؟
منظورم هيچ جاست. يعني مثلاً به Cancle بره يا اين جور جاها!! :گیج: :قهقهه:
منظورم از سوال بالا اينه كه Error ديگري غير از موارد فوق خواهيم داشت؟ الان نتيجه كار اينگونه شده كه اگه فولدر وجود نداشته باشه ميسازدش و اگه موجود باشه هيچ كاري نمي كنه و ادامه كار رو ميده!

از پاسخگويي هاي به موقع تان صميمانه سپاسگزارم .. RYIONIS :بوس:

aram0210
دوشنبه 08 اردیبهشت 1393, 02:19 صبح
سلام
نمونه ضميمه راببين!
در نمونه فوق از طريق يك كمند باتن يك فولدر در مسير برنامه شما ايجاد ميشود و اگر قبلاً اين فولدر در مسير برنامه ايجاد شده باشد پيغام پوشه قبلاً ايجاد شده صادر ميشود و شما ميتوانيد در برنامه خودتان اين پيغام را حذف كنيد(چون خواسته ايد كه اگه بود هيچ عكس العملي نبينيم).
موفق باشيد



تشکر از راهنمایی ؛آرام

am_barnamehnevis
یک شنبه 28 آذر 1395, 21:30 عصر
سلام
با تشکر از ارسال این نمونه برنامه

یک سوال:
چطور میشه اسم فولدر از یک تکست باکس خاصی گرفته بشه

am_barnamehnevis
یک شنبه 28 آذر 1395, 21:33 عصر
سلام
نمونه ضميمه راببين!
در نمونه فوق از طريق يك كمند باتن يك فولدر در مسير برنامه شما ايجاد ميشود و اگر قبلاً اين فولدر در مسير برنامه ايجاد شده باشد پيغام پوشه قبلاً ايجاد شده صادر ميشود و شما ميتوانيد در برنامه خودتان اين پيغام را حذف كنيد(چون خواسته ايد كه اگه بود هيچ عكس العملي نبينيم).
موفق باشيد




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

یک سوال:
چطور میشه اسم فولدر از یک تکست باکس خاصی گرفته بشه