تغيير يک آدرس ثابت به آدرسي پويا در کد نويسي فرم

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

    • 2013/11/18
    • 1522
    • 71.67

    تغيير يک آدرس ثابت به آدرسي پويا در کد نويسي فرم

    سلام،
    در فايل زير من در فرم مربوطه کدي نوشته ام که caption يک دگمه داخل فرم را مساوي خانه a1 صفحه دوم قرار داده، آيا مي شود که آن را به صورت پويا تغيير داد؟ يعني مثلا" من در خانه زرد رنگ هر آدرسي نوشتم caption مربوطه مساوي مقدار آن خانه در صفحه دوم قرار گيرد؟
    فایل های پیوست شده
    [SIGPIC][/SIGPIC]
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    خب کافیه سلول a1 در شیت 2 رو مساوی سلول زرد قرار بدی یعنی =Sheet1!C9

    شایدم من سوالو متوجه نشدم
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

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

      • 2013/11/18
      • 1522
      • 71.67

      #3
      ببخشيد، شايد من خوب توضيح ندادم،
      ببينيد من در کد نوشته ام:
      کد:
      CommandButton1.Caption = Sheet2.Range("a1").Value
      يعني وقتي فرم باز مي شود شرح داخل CommandButton1 مساوي خانه A1 از شيت دو قرار مي گيرد، حال اگر من بخواهم شرح ياد شده مساوي مثلا" خانه B1 از شيت دو باشد، بايد به صورت دستي بروم و کد را تغيير دهم! ولي من مي خواهم کد مذکور به صورتي نوشته شود که هر چي در خانه زرد نوشتم جايگزين a1 در کد فوق گردد. به فرض اگر در خانه زرد نوشتم b1 کد فوق نتيجه اي مانند کد زير داشته باشد:
      کد:
      CommandButton1.Caption = Sheet2.Range("b1").Value
      [SIGPIC][/SIGPIC]

      کامنت

      • ~M*E*H*D*I~
        • 2011/10/19
        • 4377
        • 70.00

        #4
        با فرمول زیر مشکلت حل میشه علی جان ، تو خونه a1 شیت دو بنویس
        کد PHP:

        =INDIRECT(Sheet1!C9
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • حسام بحرانی

          • 2013/09/29
          • 2065
          • 72.00

          #5
          با سلام
          همانطور که آقای وطن پرست گفتند ، کد خودتون رو بصورت زیر تغییر بدید :

          کد PHP:
          CommandButton1.Caption Sheet2.Range("INDIRECT(Sheet1!C9)").Value 
          با سپاس
          ɦɛʂɑɱ ɓɑɦɾɑɳɨ
          [CENTER][B][SIZE=5][COLOR=#006600][FONT=georgia][COLOR=#800000]!With [/COLOR][/FONT][/COLOR][COLOR=#006600][FONT=georgia]God [/FONT][/COLOR][COLOR=#006600][FONT=georgia][COLOR=#800000]all [/COLOR][/FONT][/COLOR][COLOR=#800000][FONT=georgia]things are [/FONT][/COLOR][COLOR=#006600][FONT=georgia]possible[/FONT][/COLOR][/SIZE][/B][B][FONT=Tahoma]
          [/FONT][/B][/CENTER]
          [CENTER][B][FONT=Tahoma] [IMG]http://forum.exceliran.com/attachment.php?attachmentid=5334&d=1419428336[/IMG]
          [/FONT][/B][SIZE=1][FONT=Tahoma][B][FONT=Tahoma]
          [/FONT][/B][/FONT][/SIZE]
          [/CENTER]

          کامنت

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

            • 2013/11/18
            • 1522
            • 71.67

            #6
            از کمکهاي شما بي نهايت متشکرم،
            فقط يک سوال ديگر هم داشتم، راستش يک فايل شجره نامه خانوادگي دارم تنظيم مي کنم، فقط اين موردش هم حل شود تقريبا" تکميل مي شود.
            در موردي که بالا مطرح شد و لطف کرديد جواب داديد، ارتباط با سلول Sheet1!C9 برقرار شده و شرح داخل CommandButton1 بوسيله درج آدرسي در خانه C9 مشخص مي شود.
            حالا من مي خواهم اين آدرس هم پويا گردد. براي روشن شدن مطلب يک نمونه از فايل شجره نامه ام را مي گذارم.
            در اين فايل هر خانه اي که انتخاب مي کنيد يک دگمه نمايان مي گردد. با کليک آن يک يوزر فرم نمايان مي گردد که در آن يک LABLE است.
            حال اگر خانه B9 را انتخاب کنيم و دگمه نمايان شده را فشار دهيم، فرمول را طوري نوشته ام که برود و خانه M12 را نگاه کرده و نتيجه را در شرح LABLE فرم نشان دهد (که متن مندرج در Sheet2!A1
            کد:
            [FONT=Courier New]Label1.Caption = Sheet3.Range("INDIRECT(ActiveCell.Offset(3, 11).Value)").Valueاست). من مي خواهم خانه ثابت M12 در فرمول پويا گردد.
            يعني وقتي خانه B9 انتخاب شده سه سطر و يازده ستون به آن اضافه کرده و خانه M12 را نگاه کند.
                اگر خانه B20 انتخاب شده سه سطر و يازده ستون به آن اضافه کرده و خانه M23 را نگاه کند و به همين طريق تا آخر
            يعني هر کدام از خانه هاي اسامي که انتخاب شود فرمول خانه زيرين سمت چپ آن را نگاه کند.
            سپس در خانه هاي زيرين سمت چپ هر فرد خودم بنويسم که برود و کدام خانه از صفحه دوم که حاوي مشخصات فردي است را در فرم بياورد.
            البته خانه هايي که حاوي  اسامي نيست را در انتها قفل خواهم کرد که نتوان آنها را انتخاب کرد. البته خودم سعي کردم يک چيزي بنويسم مثلا" 
            را نوشتم ولي گويا اشتباهاتي دارم که عمل نمي کند. فکر کنم داخل indirect ديگر از activecell نمي شود استفاده کرد
            يا بايد يک متغيير تعريف کنم و با واسطه آن کار کنم.
            ببخشيد مي دانم خيلي بد توضيح داده ام، ولي اگر توانستيد خوشحال مي شوم راهنمايي فرماييد.
            [/FONT]
            فایل های پیوست شده
            [SIGPIC][/SIGPIC]

            کامنت

            • mokaram
              مدير تالار اکسل و بانک اطلاعاتی

              • 2011/02/06
              • 1805
              • 74.00

              #7
              برای همه نفرات مانند نفر اول رفتار میشه یعنی برای هر کس تو شیت دو میای تو شیت یک نفرات زیر گروه را براش تعریف می کنی؟
              Last edited by mokaram; 2014/03/27, 08:33.
              [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
              [/CENTER]

              کامنت

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

                • 2013/11/18
                • 1522
                • 71.67

                #8
                بله، البته دقيقتر بگم: براي هر نفر در شيت يک در خانه زيرين سمت چپ مي نويسم که در شيت دو کدام خانه حاوي اطلاعات وي است.
                ايده بهتري هم اگر داريد بفرماييد.
                [SIGPIC][/SIGPIC]

                کامنت

                چند لحظه..