PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] بستن command button در فايلي ديگر



Ali Parsaei
2016/01/06, 07:48
سلام،
در پوشه پيوست دو فايل دارم که بوسيله فايل a فايل b را باز مي کنم، بعد مي خواهم به شيت 3 فايل b مراجعه و اطلاعاتي را از آنجا بردارم، ولي چون در فايل b هنگام باز شدن دو تا فرم run مي شود اين کار امکان پذير نيست، آيا ممکن است با کد نويسي آن دو تا فرم را ببندم؟

majid_mx4
2016/01/06, 08:41
با سلام خدمت سرور گرامی جناب پارسا

آیا منظورتان این است فرم دوم حالت دسترسی به شیت (ShowModal) داشته باشد ولی همچنان فرم اول حالت دستر سی به شیت را نداشته باشد. و بین دو فرم حالت رفت و برگشت انجام شود .
و اگر نه ممنون خواهم شد مقداری توضیح دهید.

با تشکر میر

abootorab
2016/01/06, 08:45
سلام،
در پوشه پيوست دو فايل دارم که بوسيله فايل a فايل b را باز مي کنم، بعد مي خواهم به شيت 3 فايل b مراجعه و اطلاعاتي را از آنجا بردارم، ولي چون در فايل b هنگام باز شدن دو تا فرم run مي شود اين کار امکان پذير نيست، آيا ممکن است با کد نويسي آن دو تا فرم را ببندم؟

با درود
جناب پارسای عزیز بنده درست متوجه منظورتان نشدم، آیا میخواین از طریق کدنویسی به اطلاعات شیت 3 فایل b دسترسی داشته باشین یا بصورت دستی (همزمان با باز بودن یوزر فرم ها به شیت 3 فایل b در محیط اکسل دسترسی داشته باشین)؟ و اینکه آیا یوزرفرم های باز شده رو میخواید با کدنویسی در فایل a ببندید یا کدنویسی در فایل b؟
اگر یه کم بیشتر توضیح بدید ممنون میشم.

با درود و تشکر خدمت جناب majid_mx4، ببخشید تقریبا پست بنده و شما همزمان شد.

Ali Parsaei
2016/01/06, 09:03
مي خواهم در فايل a کدي بنويسم که به صورت اتوماتيک فايل b را باز کند و اطلاعات شيت سه آن را به فايل a انتقال دهد و بعد فايل b را ببندد، وقتي در فايل b موقع باز شدن فرمي باز نشود مشکلي نخواهم داشت و عمليات انتقال درست انجام مي گردد، ولي باز شدن فرمها در فايل b جلو ادامه کدهايم در فايل a را مي گيرد، لذا مي خواهم در فايل a به کدهايم يک دستور اضافه کنم که وقتي فايل b باز شد دو تا فرم آن که run مي شود را ببندد. باز اگر توضيح بيشتري لازم است بفرماييد.

majid_mx4
2016/01/06, 11:47
با سلام

کد زیر را کپی و تست کنید

Private Sub CommandButton1_Click()
'Dim C As String
'C = Application.InputBox("äÇã ÝÇíá ÑÇ æÇÑÏ ˜äíÏ", "ÏÑíÇÝÊ ÇØáÇÚÇÊ", "b")
'Workbooks.Open Filename:=ThisWorkbook.Path & "/" & C & ".XLSM"
'
'
'
'



RunThisMacro



End Sub
Sub RunThisMacro()
Dim C As String
C = Application.InputBox("äÇã ÝÇíá ÑÇ æÇÑÏ ˜äíÏ", "ÏÑíÇÝÊ ÇØáÇÚÇÊ", "b")
'We're doing the same thing, just to 2 different workbooks
Call OpenCopyPaste(Workbooks.Open(Filename:=ThisWorkboo k.Path & "\" & C & ".XLSM"))
'
End Sub
Sub OpenCopyPaste(sourceWB As Workbook)
Dim destWB As Workbook
Dim destWS As Worksheet
Dim copyRange As Range
'Define where our objects are, just to avoid confusion
Set destWB = Workbooks("a.xlsm")
Set destWS = destWB.Worksheets("Sheet1")
'Only copy the used section, not entire columns
With sourceWB.Worksheets("Sheet3")
Set copyRange = Intersect(.Range("A:G"), .UsedRange)
End With
' copy the source range to first blank line
With destWS
copyRange.Copy .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
End With
'Close files
Application.CutCopyMode = False
sourceWB.Close False
destWB.Save
End Sub


هر چند بدون باز کردن فایل هم میتوانستید از آن کپی بگیرید و نیازی به باز کردن آن نبود.
با تشکر میر