PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] اجرای فایل bat از طریق اکسل



gha3emi
2021/10/06, 10:33
با سلام
1- در اکسل چطور می تونم بعد از اینکه مقدار یک سلول به عدد مشخصی رسید فرضا 10 یک فایل bat که در درایو E همان سیستم موجوده به صورت اتوماتیک اجرا بشه (مقدار سلول متغیره و فقط میخوام در صورت برقرای شرط if c1=10 اجرا بشه)
2- در فایل bat چطور می تونم مشخص کنم که خودکار به مسیر پوشه ای که به صورت روزانه (تاریخ شمسی) توسط اکسل ساخته میشه برم (پوشه ها وجود دارن) و همه فایلها رو با ftp ارسال کنم )اگر داخل خود اکسل بشه ارسال بشه که بهتر هم هست
با تشکر

iranweld
2021/10/06, 11:20
با سلام

برای اجرای یک فایل در محیط اکسل دستور shell را مطالعه کنید

shell (https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/shell-function)

gha3emi
2021/10/09, 09:47
با سلام
در کپی از مبدا ثابت به مقصد ثابت مشکل وجود نداره ولی وقتی مقصد لازمه که هر روز بر اساس تاریخ روز جاری عوض بشه تابع jtoday را به خاطر علامت " " جز، ثابت آدرس مقصد در نظر گرفته میشه


Dim sSourceFile As String
Dim sDestinationFile As String


"sSourceFile = "C:\1.txt
' " sDestinationFile = "D:"&"jtoday\1.txt'
" sDestinationFile = "D:\14000716\1.txt
FileCopy sSourceFile, sDestinationFile

iranweld
2021/10/09, 11:13
با سلام
در کپی از مبدا ثابت به مقصد ثابت مشکل وجود نداره ولی وقتی مقصد لازمه که هر روز بر اساس تاریخ روز جاری عوض بشه تابع jtoday را به خاطر علامت " " جز، ثابت آدرس مقصد در نظر گرفته میشه


Dim sSourceFile As String
Dim sDestinationFile As String


"sSourceFile = "C:\1.txt
' " sDestinationFile = "D:"&"jtoday\1.txt'
" sDestinationFile = "D:\14000716\1.txt
FileCopy sSourceFile, sDestinationFile



تاریخ را بدین صورت استخراج کنید


23118

gha3emi
2021/10/10, 08:13
ببخشید که خیلی مزاحم میشم بعد از اجرای دستور زیر به جای اینکه در هنگام اجرای فایل b.bat خط فرمان cmd از همان آدرس D:\Space_Linux\Mchn\receive_B استفاده کند از مسیر c:\admin\document اجرای میشه (برای من مهمه که از همون مسیر درایو d و پوشه اصلی فایل bat ، خونده بشه چون داخل فایل bat یک فایل txt فراخوانی میشه که در درایو d و پوشه ای که روزانه از طریق xx ساخته میشه قرار میگیره و با اون فایلها به سرور دیگه ای ftp میشن)
به صورت خلاصه در هنگام فراخوانی فایل bat آدرس command prompt این باشه D:\Space_Linux\Mchn\receive_B\14000718

If Range("b22").Value = 21 And Range("b23").Value = 0 Then
Dim RetVal
RetVal = Shell("D:\Space_Linux\Mchn\receive_B" & xx & "\ b.bat", 1)
Range("b23").Value = 1
End If

iranweld
2021/10/10, 08:19
ببخشید که خیلی مزاحم میشم بعد از اجرای دستور زیر به جای اینکه در هنگام اجرای فایل b.bat خط فرمان cmd از همان آدرس D:\Space_Linux\Mchn\receive_B استفاده کند از مسیر c:\admin\document اجرای میشه (برای من مهمه که از همون مسیر درایو d و پوشه اصلی فایل bat ، خونده بشه چون داخل فایل bat یک فایل txt فراخوانی میشه که در درایو d و پوشه ای که روزانه از طریق xx ساخته میشه قرار میگیره و با اون فایلها به سرور دیگه ای ftp میشن)
به صورت خلاصه در هنگام فراخوانی فایل bat آدرس command prompt این باشه D:\Space_Linux\Mchn\receive_B\14000718

If Range("b22").Value = 21 And Range("b23").Value = 0 Then
Dim RetVal
RetVal = Shell("D:\Space_Linux\Mchn\receive_B" & xx & "\ b.bat", 1)
Range("b23").Value = 1
End If

لطفا نمونه فایل اکسل و فایل bat را ضمیمه کنید تا بررسی شود

gha3emi
2021/10/10, 08:59
خدمت شما
بازم ممنون

iranweld
2021/10/10, 10:37
با سلام

در فایل پیوست فایل bat توسط کدهای vba در مسیر مورد نظر ساخته شده و کدهای تغییر مسیر در آن درج میگردد.

23131

iranweld
2021/10/10, 10:45
اگر در اجرای ماکرو ارورر داد ، آیتم ذیل را فعال کنید

23129

iranweld
2021/10/10, 10:53
فایل پیوست در پست قبلی اصلاح گردید

gha3emi
2021/10/10, 12:35
ممنونم