PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چاپ input messageدر validation



khakzad
2010/08/11, 08:49
سلام
آیا امکان چاپ متنی که در input message در validation نوشته میشه وجود داره؟
اگر نه چطور میشه همه این متن ها رو در cell کپی کرد؟؟
اگر از comment استفاده کرده بودم مشکلی نبود.اما اشتباه کردم :s

m_d6712
2010/08/11, 18:03
شما می توانید با استفاده از کد زیر به مقدار Input message در validation هر سلولی که می خواهید دسترسی داشته باشید. به عنوان مثال:

dim k as string = Range("e5").Validation.InputMessage

بعد می توانید این مقدار k را در هر جای برنامه خود چاپ کنید.

Range("e4") = k

khakzad
2010/08/11, 20:13
خیلی ممنون.
این خیلی خوبه.اما اگر بشه این متن مورد نظر رو در همون سلول خودش چاپ کرد.یعنی توی پرینت نشون داده بشه خیلی خوب میشه. چون یه سری سلول دارم که مربوط به زمانسنجی ها میشه و باید حتما توضیحات مربوط روی سلول مورد نظر نشون داده بشه.مثل کامنت!
نمی دونم توضیحاتم مفهوم بود یا نه!
اگر نه.بگید فایل رو می ذارم
ممنون

shamsololama
2010/08/12, 08:12
با درود فراوان

برای این که آن محدوده سل های که اینپود مسیجشان را می خواهی چاپ کنی می توانی در یک ستون کنار آن وارد کنید تا زمان پرینت متن اینپود مسیج ها نیز در سل کنار آن داشته باشی که برای این کار از حلقه for each می توانی استفاده کنی تا تمام مسیج ها را در سل کناری(یا هر سلی که مورد نظر است) هر سل بنویسد بصورت زیر

در این کدها رنج انتخابی سل های B1:B20 است که می توانی آن را تغییر دهی

Sub Macro2()
On Error Resume Next
For Each c In Range("b1:b20")
c.Offset(0, 1) = c.Validation.InputMessage
Next
End Sub

و یا اگر همانطور که گفته اید اگر بجای اینپود باکس از کامنت استفاده کرده بودید مشکلی نبود
می توانید این اینپود مسیج ها را به کامنت تبدیل کنی و بعد از اتمام کار آنها را پاک کنید که برای این کار نیز می توانی از کد زیر استفاده کنی

Sub Macro1()
On Error Resume Next
For Each c In Range("b1:b20")

c.AddComment
c.Comment.Visible = True
c.Comment.Text Text:=c.Validation.InputMessage
Next
End Sub

و برای پاک کردن کامنت ها از کد زیر استفاده کنید

Sub del()
On Error Resume Next
For Each c In Range("b1:b20")
c.Comment.Delete
Next

End Sub

توجه :
در این مثال خانه های که اینپود مسیج ندارند هم کامنت گذاشته می شود ولی کامت خالی که اگر مزاحم کار می شود با مقداری تغییر در کد می توانید ازآن جلوگیری کنید

khakzad
2010/08/13, 14:53
خیلی خیلی ممنون
لطف کردین

~M*E*H*D*I~
2012/05/30, 10:28
شما می توانید با استفاده از کد زیر به مقدار Input message در validation هر سلولی که می خواهید دسترسی داشته باشید. به عنوان مثال:

dim k as string = Range("e5").Validation.InputMessage

بعد می توانید این مقدار k را در هر جای برنامه خود چاپ کنید.

Range("e4") = k

سلام
همین مقدار K رو میشه با .Range.AddComment به همون سلی که input massage داره به صورت کامنت اضافه کرد( گرچه سوال قدیمی هست ولی برای استفاده دوستان دیگه جواب دادم)