PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پرسش: کد vba برای save as



majidartoor
2014/08/19, 20:40
با سلام و درود
1)با چه کدی میتونم فایل اکسلمو با نام مقداری که در سلول a1 وارد کردم save as کنم؟
آدرس جایی که ذخیره میکنه هم همون جایی باشه که فایل اصلیه هست.
2)فایل من 3 تا شیت داره،حالا اگه بخوام فقط یک شیت از اون فایل save as بشه باید چیکار کنم؟

علی فاطمی
2014/08/20, 08:28
با سلام لطفا فایل پیوست رو ملاحظه کنین.
دو راه براتون نوشتم . راه اول فایل در درایو D و با حذف شیتها و با نامی که در سل b4 در شیت 1 ثبت شده save میشه و راه دوم هم مسیر و هم نام رو می تونین انتخاب کنین . البته من خودم راه دوم رو پیشنهاد می کنم.

majidartoor
2014/08/21, 00:21
ممنون مشکلم حل شد.
فقط ی سوال دیگه....
در مورد روش اول که مسیر فایلو درایو d تعیین کردیم آیا میشه فایل اکسلو در یه پوشه از اون درایو ذخیره کنم؟
یعنی اول ی پوشه با نامی که برابر سلول b5 هست بسازه بعد فایلو درون اون پوشه ذخیره کنه.

Amir Ghasemiyan
2014/08/21, 10:00
ممنون مشکلم حل شد.
فقط ی سوال دیگه....
در مورد روش اول که مسیر فایلو درایو d تعیین کردیم آیا میشه فایل اکسلو در یه پوشه از اون درایو ذخیره کنم؟
یعنی اول ی پوشه با نامی که برابر سلول b5 هست بسازه بعد فایلو درون اون پوشه ذخیره کنه.

كد رو به اين صورت اصلاح كنيد:


Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Dim filename As String
filename = Sheet1.Range("b4")
If Len(Dir("D:\aaa\", vbDirectory)) = 0 Then MkDir "D:\aaa"
ChDir "D:\aaa"
ActiveWorkbook.SaveAs filename:= _
"D:\aaa" + filename + ".XLSM"
For Each i In Worksheets
Select Case i.Name
Case "Sheet1"
Case Else
i.Delete
End Select
Next i
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub

اگر مشكلتون به طور كامل حل شد تيك سبز پست اول رو بزنين لطفا

majidartoor
2014/08/21, 20:45
دوستان اگه بخوام بعد از save as گرفتن از اکسلم بخوام برگردم به فایل قبلی چه باید کنم؟
یعنی بعد از save as داخل همون فایل اصلی بمونم...

ali.b
2014/08/22, 11:11
ActiveWorkbook.Close
این رو حذف کن

misammisam
2015/01/08, 00:52
وقتی Save As میکنیم فایل دوم باز میشه و فایل اول بسته میشه ، هیچ راهی نداره هر دوتا فایل باز بمونه و فایل اول بسته نشه .

میخوام که از یه فایل کپی بگیرم ( Save As کنم ) و بعد از فایل اول به فایل دوم یه چند تا سلول رو لینک کنم ، بصورت اتومات ، ولی هر کاری میکنم فایل اول موقع Save As بسته میشه .

Amir Ghasemiyan
2015/01/08, 01:47
وقتی Save As میکنیم فایل دوم باز میشه و فایل اول بسته میشه ، هیچ راهی نداره هر دوتا فایل باز بمونه و فایل اول بسته نشه .

میخوام که از یه فایل کپی بگیرم ( Save As کنم ) و بعد از فایل اول به فایل دوم یه چند تا سلول رو لینک کنم ، بصورت اتومات ، ولی هر کاری میکنم فایل اول موقع Save As بسته میشه .

خب بعد سيو كردن دوباره فايل قبلي رو باز كن بعد لينك كن

misammisam
2015/01/08, 02:26
خب بعد سيو كردن دوباره فايل قبلي رو باز كن بعد لينك كن
راست میگی این میشه ، ولی چون حجم فایل خیلی زیاده میخوام دورش بزنم که فایل هی باز و بسته نشه .
کلا این save as هیچ راهی نداره .

ehn
2020/09/28, 16:47
سلام و درود
خسته نباشید
من یه سیستمی رو طراحی کردم از دیتابیس کارکنان یعنی یه پنل طراحی کردم که با جستجو شماره پرسنلی کارکنان میتونید اونا رو مرخصی بدید ... انتقالی بدید ولی یه مشکل دارم اونم اینه که سیستم بایگانی ام مشکل داره من میخام وقتی طرف رو مرخصی دادم فرم مرخصی رو تو پوشه با نام خود طرف که در یکی از سلول های فرم مرخصی وجود داره با نام مرخصی مثلا استعلاجی فلانی در پوشه بایگانی فلانی ذخیره کنه امکانش هست؟؟؟
از اکسل ۲۰۱۰ استفاده میکنم
ممنون میشم راهنمایی کنید من فقط ساخت پوشه با نام یکی از سلول ها رو بلد نیستم

میثم مقدم نیا
2020/09/29, 09:47
سلام و درود
خسته نباشید
من یه سیستمی رو طراحی کردم از دیتابیس کارکنان یعنی یه پنل طراحی کردم که با جستجو شماره پرسنلی کارکنان میتونید اونا رو مرخصی بدید ... انتقالی بدید ولی یه مشکل دارم اونم اینه که سیستم بایگانی ام مشکل داره من میخام وقتی طرف رو مرخصی دادم فرم مرخصی رو تو پوشه با نام خود طرف که در یکی از سلول های فرم مرخصی وجود داره با نام مرخصی مثلا استعلاجی فلانی در پوشه بایگانی فلانی ذخیره کنه امکانش هست؟؟؟
از اکسل ۲۰۱۰ استفاده میکنم
ممنون میشم راهنمایی کنید من فقط ساخت پوشه با نام یکی از سلول ها رو بلد نیستم
با سلام خدمت شما دوست عزیزم
فرض کنید فهرستی از اسامی کارکنان در محدوده یک شیت دارید، و حالا می‌خواهید برای هر کدام از آن‌ها یک پوشه ایجاد کنید تا اطلاعات آن‌ها را ثبت کنید .

اگر این پوشه‌ها را یکی یکی بسازید ، زمان زیادی را هدر می‌دهد . اما چطور می‌توانید به سرعت این پوشه‌ها را ایجاد کنید ؟

ایجاد پوشه براساس مقادیر سلول با کد VBA


برای مثال :

من یک سری اسامی در یک شیت دارم ، می‌خواهم برای هر یک از آن‌ها یک پوشه ایجاد کنم ، و آن‌ها را در یک مسیر مشخص ذخیره کنم

با کد VBA من می‌توانم این کار را انجام دهم .

۱. فایل اکسل را در مسیر مورد نظر ذخیره کنید و محدوده نام ها را ذخیره کنید.

21700

۲. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .

۳. در پنجره Microsoft Visual Basic for Applications بر رویInsert > Module کلیک کنید و سپس از زیر کد VBA را کپی و در درون پنجره ماژول قرار دهید .



Sub MakeFolders()
Dim Rng As Range
Dim maxRows, maxCols, r, c As Integer
Set Rng = Selection
maxRows = Rng.Rows.Count
maxCols = Rng.Columns.Count
For c = 1 To maxCols
r= 1
Do While r <= maxRows
If Len(Dir(ActiveWorkbook.Path & "\" & Rng(r, c), vbDirectory)) = 0 Then
MkDir (ActiveWorkbook.Path & "\" & Rng(r, c))
On Error Resume Next
End If
r = r + 1
Loop
Next c
End Sub



۴. بعد از قرار دادن متن ، کلید F5 را فشار دهید تا آن را اجرا کنید .


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


21701

ehn
2020/09/29, 17:00
با سلام خدمت شما دوست عزیزم
فرض کنید فهرستی از اسامی کارکنان در محدوده یک شیت دارید، و حالا می‌خواهید برای هر کدام از آن‌ها یک پوشه ایجاد کنید تا اطلاعات آن‌ها را ثبت کنید .

اگر این پوشه‌ها را یکی یکی بسازید ، زمان زیادی را هدر می‌دهد . اما چطور می‌توانید به سرعت این پوشه‌ها را ایجاد کنید ؟

ایجاد پوشه براساس مقادیر سلول با کد VBA


برای مثال :

من یک سری اسامی در یک شیت دارم ، می‌خواهم برای هر یک از آن‌ها یک پوشه ایجاد کنم ، و آن‌ها را در یک مسیر مشخص ذخیره کنم

با کد VBA من می‌توانم این کار را انجام دهم .

۱. فایل اکسل را در مسیر مورد نظر ذخیره کنید و محدوده نام ها را ذخیره کنید.

21700

۲. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .

۳. در پنجره Microsoft Visual Basic for Applications بر رویInsert > Module کلیک کنید و سپس از زیر کد VBA را کپی و در درون پنجره ماژول قرار دهید .



Sub MakeFolders()
Dim Rng As Range
Dim maxRows, maxCols, r, c As Integer
Set Rng = Selection
maxRows = Rng.Rows.Count
maxCols = Rng.Columns.Count
For c = 1 To maxCols
r= 1
Do While r <= maxRows
If Len(Dir(ActiveWorkbook.Path & "\" & Rng(r, c), vbDirectory)) = 0 Then
MkDir (ActiveWorkbook.Path & "\" & Rng(r, c))
On Error Resume Next
End If
r = r + 1
Loop
Next c
End Sub



۴. بعد از قرار دادن متن ، کلید F5 را فشار دهید تا آن را اجرا کنید .


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


21701




ازتون خیلی ممنونم که سریع پاسخگو بودید
اداره ما به گونه ایه که برای بابگانی هی باید سیو از بزنی و اسم طرف رو سیو کنی مثلا مرخصی فلانی من میخام وقتی به طرف مرخصی دادم ... مرخصی رو سیو کنه به طور اتوماتیک در پوشه به نام طرف اگه پوشه وجود نداشت مثلا نام پوشه رو از سلول b5,v8 بگیره و مرخصی رو با نام طرف که در سلول n2 هست ذخیره کنه
همچین چیزی ممکنه؟؟؟