بستن command button در فايلي ديگر

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    [حل شده] بستن command button در فايلي ديگر

    سلام،
    در پوشه پيوست دو فايل دارم که بوسيله فايل a فايل b را باز مي کنم، بعد مي خواهم به شيت 3 فايل b مراجعه و اطلاعاتي را از آنجا بردارم، ولي چون در فايل b هنگام باز شدن دو تا فرم run مي شود اين کار امکان پذير نيست، آيا ممکن است با کد نويسي آن دو تا فرم را ببندم؟
    فایل های پیوست شده
    [SIGPIC][/SIGPIC]
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام خدمت سرور گرامی جناب پارسا

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

    با تشکر میر

    کامنت

    • abootorab

      • 2014/10/17
      • 351

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

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

      کامنت

      • Ali Parsaei
        مدير تالارتوابع اکسل

        • 2013/11/18
        • 1522
        • 71.67

        #4
        مي خواهم در فايل a کدي بنويسم که به صورت اتوماتيک فايل b را باز کند و اطلاعات شيت سه آن را به فايل a انتقال دهد و بعد فايل b را ببندد، وقتي در فايل b موقع باز شدن فرمي باز نشود مشکلي نخواهم داشت و عمليات انتقال درست انجام مي گردد، ولي باز شدن فرمها در فايل b جلو ادامه کدهايم در فايل a را مي گيرد، لذا مي خواهم در فايل a به کدهايم يک دستور اضافه کنم که وقتي فايل b باز شد دو تا فرم آن که run مي شود را ببندد. باز اگر توضيح بيشتري لازم است بفرماييد.
        [SIGPIC][/SIGPIC]

        کامنت

        • majid_mx4

          • 2012/06/25
          • 699

          #5
          با سلام

          کد زیر را کپی و تست کنید
          کد:
          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:=ThisWorkbook.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
          هر چند بدون باز کردن فایل هم میتوانستید از آن کپی بگیرید و نیازی به باز کردن آن نبود.
          با تشکر میر

          کامنت

          چند لحظه..