PDA

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



esyoo
2010/07/24, 20:33
سلام
من یک فایل اکسل دارم که 5 کاربر از اون استفاده می کنند
من نمی خوام همه به طور عادی وارد اون بشن
من می خوام که هر کاربر که وارد شد از اون تقاضای یوزر و پسورد بکنه و ساعت ورود و اسم یوزر رو در سلول c26و c27 وارد بکنه
ممنون میشم راهنمایی بکنید
با تشکر

shamsololama
2010/07/26, 00:35
با درود فراوان
در اين مورد كه چند نفر از يك برنامه مي خواهند استفاده كنند مهم است كه هر كس از كامپيوتر خود مي خواهد وارد شود و يا اين كه همه از يك كامپيوتر در زمانهاي متفاوت اما در هردو صورت امكاپذير است و لي با روشهاي متفاوت
و ميتوان اينكار را طوري انجام داد كه نشان دهد چه كسي در چه زماني با فايل كار كرده
با قرار دادن يك يوزرفرم در هنگام باز شدن فايل و در خواست يوزر و پسورد هاي متفاوت براي هر نفر ورود و خروج كاربرها را ثبت كرد كه اگر نياز بود و نمونه را برايتان ارسال مي كنم

khakzad
2010/07/26, 10:18
سلام
لطف می کنید نمونه فایل رو بذارید؟
البته اگر امکانش هست
ممنون میشم

esyoo
2010/07/26, 12:17
بسیار ممنونم
من هر دوحالت رو مد نظر دارم
یعنی هم از طریق شبکه باید وارد بشوند(فقط مدیر از راه دور و در یک اتاق دیگر بررسی میکند)
وهم با یک کامپیوتر5 نفر کار میکنند(فقط کاربر کامپیوتر اطلاعات وارد میکند)

منتظر نمونه فایل و توضیحات شما هستم.
با تشکر

m_d6712
2010/07/27, 02:05
یک روش برای استفاده از Authentication windows برای ورود به Excel: یعنی همان طور که User Pass ویندوز خود را برای ورود به ویندوز وارد می کنید. اینجا هم آنها را برای باز کردن فایل Excel خود وارد می کنید.
مزیت این روش این است که چون در شبکه از Authentication از جنس Windows Authentication استفاده می شود می توان این کد را برای دسترسی به فایل اکسل در شبکه نیز به کار برد.




Public Const LOGON32_LOGON_INTERACTIVE = 2
Public Const LOGON32_LOGON_NETWORK = 3
Public Const LOGON32_LOGON_BATCH = 4
Public Const LOGON32_LOGON_SERVICE = 5
Public Const LOGON32_PROVIDER_DEFAULT = 0
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Public Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
Public Const FORMAT_MESSAGE_FROM_HMODULE = &H800
Public Const NERR_BASE = 2100
Public Const MAX_NERR = NERR_BASE + 899 ' This is the last error in NERR range.
Public Const LOAD_LIBRARY_AS_DATAFILE = &H2

Option Explicit
Public Declare Function LogonUser Lib "advapi32" Alias "LogonUserA" (ByVal lpszUser As String, ByVal lpszDomain As String, ByVal lpszPass As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, Handle As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (Handle As Long) As Long
Public Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Public Declare Function FormatMessage Lib "Kernel32.dll" Alias "FormatMessageA" (ByVal Flags As Long, ByVal Source As Long, ByVal MessageID As Long, ByVal LanguageID As Long, ByVal Buffer As String, ByVal Size As Long, args As Any) As Long
Public Declare Function LocalFree Lib "Kernel32.dll" (ByVal Handle As Long) As Long

Public Function Login(strUser As String, strPass As String, strerror As String, Optional strDomain As String) As Boolean
Dim lngError As Long
Dim lngHandle As Long

strDomain = vbNullString

lngError = LogonUser(strUser, strDomain, strPass, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, lngHandle)

If lngError = 0 Then
strerror = ErrorMessage(Err.LastDllError)
Login = False
Else
Login = True
lngError = CloseHandle(lngHandle)
End If

End Function

Public Function ErrorMessage(lCode As Long) As String

Dim lngError As Long
Dim ptrBuffer As Long
Dim strMessage As String
Dim hModule As Long
Dim lngFlags As Long
Dim str As String

lngFlags = FORMAT_MESSAGE_FROM_SYSTEM

If (lCode >= NERR_BASE And lCode <= MAX_NERR) Then
hModule = LoadLibraryEx("netmsg.dll", 0&, LOAD_LIBRARY_AS_DATAFILE)
If (hModule <> 0) Then
lngFlags = lngFlags Or FORMAT_MESSAGE_FROM_HMODULE
End If
End If

strMessage = Space$(256)
lngError = FormatMessage(lngFlags, hModule, lCode, 0&, strMessage, 256, 0&)
If (hModule <> 0) Then
lngError = FreeLibrary(hModule)
End If
ErrorMessage = strMessage

End Function

esyoo
2010/08/04, 20:55
مشکل من برای ساختن یوزر و پسورد حل شد.
اما مشکل اینکه موقع تایپ پسورد اون رو به صورت ستاره دار نمایش نمیده
از چه دستوری و روشی باید استفاده بکنم؟
با تشکر

shamsololama
2010/08/07, 15:00
با درود فراوان
من بزودی یک نمونه را در اینجا قرار خواهم داد که از نظر امنیتی هم روی آن کار شده باشه

و در مورد اینکه پسورد را بصورت ستاره یا علامت دلخواه دیگر نشان دهد
اول روی همان تکس باکس که پسورد را وارد میکنید کلیک کنید تا انتخاب شود
دوم از قسمت پروپرتیس روبروی Password char ستاره یا هر علامت دلخواهی که خواستید بگذارید

khakzad
2010/08/16, 23:11
با سلام
من هنوز منتظر فایل شما هستم:)

m_d6712
2010/08/17, 00:57
یک فایل برایتون آپلود کردم:

http://www.mediafire.com/file/83ojc03c2pl2jfr/UserPass.xlsm

در این فایل دو نوع Authentication مورد بحث قرار گرفته شده است:


اولی همون Auth که در پاسخ قبلی داده بودم هست که با استفاده از User و Pass سیستم عامل و یا شبکه قابل دسترسی می باشد. دقت نمایید که برخی سیستم ها User هایی دارند که Pass ندارد و مثل خود من! من برای یوزر های کامپیوترم پسورد نمی ذارم! در این حالت ویندوز ایرادی نمیگیرد اما اگر سسیتم شما عضوی از domain باشد ایراد می گیرد! در Authentication که من در VBa براتون گذاشتم اصل بر Domain است! برای همین شما نمیتوانید با یوزری که پسورد ندارد وارد شوید. لطفا این قسمت را با یوزری امتحان کنید که پسورد دارد. یوزر Guest هم به همین دلیلی که ذکر کردم قابل استفاده نمی باشد.

دوم حالت عادی است. یک لیست از User و Pass در Sheeet اول ایجاد شده که این شیت Hidden شده است. و کاربران نمی توانند آن را ببینند.

شیت اصلی اطلاعات نیز Hidden می باشد که پس از اعتبار سنجی کاربر نمایش داده می شود.

برای اینکه کاربر نتواند کد های نوشته شده را ببیند بر روی آن پسورد گذاشته شده است:

در این فایل پسورد محیط Vba در زیر نوشته شده است:
exceliran

پسورد روش اول: یکی از یوزر و پسورد های خود ویندوز شما
پسورد روش دوم: قابل اضافه کردن است:
به عنوان مثال:

یوزر: excel
پسورد: iran

موفق باشید.

saeid
2010/11/29, 15:04
چرا اينقدر موضوع را پيچيده كردين سوال دوست ما در 2003 از طريق tools > protection > Allow Users to Edit Renge و در 2007 از review > Chenge > Allow Users to Edit Renge به راحتي هم تو شبكه و هم براي چند كاربر بر روي يك سيستم قابل اجرا هست . در صورت عدم آشنايي به اين دستور در خدمت هستم .

shamsololama
2010/11/29, 15:46
با درود فراوان
دوست خوبم آقای مفیدی از تلاش شما برای ارائه راه حل و کمک به دوستان سپاسگزارم
ولی نمیدانم سئوال را چگونه مطالعه کرده اید چرا که راه حلی که شما ارائه فرموده اید فقط برای گذاشتن قفل یا همان Protection روی یک فایل است و اینکه اگر پنج کاربر داشته باشیم هر کدام با یک یوز متفاوت و یک پسورد متفاوت وارد بشوندو اینکه پس از وارد شدن، یوز و نام آن را در یک لیست ثبت کند شما در نظر نگرفته اید.و همچنین که برای دسترسی کاربرهای متفاوت دسترسی های متفاوتی را قرار دهیم.
لطفا سئوال را دوباره مطالعه فرمائید خواهید دید که دوستان موضوع را پیچیده نکرده اند و درواقع به این راحتی که شما فکر می کنید نیست.

mrexcel
2010/11/30, 10:39
براي مديريت زمان و افراد هم ميشه از گزينه trck change استفاده كرد - اين راهي هم كه دوستمون ميگه يك راهه .انشااءالله روشش را هم ميگن

saeid
2010/12/22, 15:05
دستوري كه بنده پيشنهاد دادم نمي تواند ليست تغييرات هر كار بر را نشان دهد ولي اگر با اين دستور كار كرده باشيد حتما ديديد كه مي توان سلهاي يك شيت را به هر تعداد كاربر كه نياز داريد اختصاص دهيد به طوري كه ديگري نتواند محيط ديگري را تغيير دهد و كاربر فقط با پسورو خودش مي تواند اطلاعات را درج نمايد ( البته در اين دستور ديگر نام كاربري نياز نيست و من فكر ميكنم دوستي كه سوال داشت با الگو گرفتن از شكل نرم افزارهاي ديگر ، از اكسل چنين انتظاري داشته و اگر نه با همين دستور مشكلش حل مي شود )
ضمنا هر كس از ديدگاه و تجربيات خودش راهكاري را پيشنهاد مي دهد كه البته فكر نمي كنم اين موضوع ايرادي داشته باشد . چرا كه تا بحال چندين پروژه تحت شبكه با چندين كاربر و سطح دسترسي متفاوت با همين دستور انجام داده ام و مشكلي هم نداشته و با امنيت بالا هنوز هم در حال سرويس دهي مي باشند و تنها مشكل آن اين است كه ظاهر نرم افزار شبيه نرمافزارهايي مثل دلفي نشده و دك و پوز آنها را ندارد .
براي مثال يك فايل خيلي ساده با 5 كاربر كه كلمه عبور هر كار بر از 1 تا 5 مي باشد به ايميل excel.iran@yahoo.com ارسال كردم تا در صورت صلاح ديد در اين قسمت قرارداده شود .

shamsololama
2010/12/22, 17:33
دستوري كه بنده پيشنهاد دادم نمي تواند ليست تغييرات هر كار بر را نشان دهد ولي اگر با اين دستور كار كرده باشيد حتما ديديد كه مي توان سلهاي يك شيت را به هر تعداد كاربر كه نياز داريد اختصاص دهيد به طوري كه ديگري نتواند محيط ديگري را تغيير دهد و كاربر فقط با پسورو خودش مي تواند اطلاعات را درج نمايد ( البته در اين دستور ديگر نام كاربري نياز نيست و من فكر ميكنم دوستي كه سوال داشت با الگو گرفتن از شكل نرم افزارهاي ديگر ، از اكسل چنين انتظاري داشته و اگر نه با همين دستور مشكلش حل مي شود )
ضمنا هر كس از ديدگاه و تجربيات خودش راهكاري را پيشنهاد مي دهد كه البته فكر نمي كنم اين موضوع ايرادي داشته باشد . چرا كه تا بحال چندين پروژه تحت شبكه با چندين كاربر و سطح دسترسي متفاوت با همين دستور انجام داده ام و مشكلي هم نداشته و با امنيت بالا هنوز هم در حال سرويس دهي مي باشند و تنها مشكل آن اين است كه ظاهر نرم افزار شبيه نرمافزارهايي مثل دلفي نشده و دك و پوز آنها را ندارد .
براي مثال يك فايل خيلي ساده با 5 كاربر كه كلمه عبور هر كار بر از 1 تا 5 مي باشد به ايميل excel.iran@yahoo.com ارسال كردم تا در صورت صلاح ديد در اين قسمت قرارداده شود .



با درود فراوان

دوست خوبم آقای مفیدی در مورد اینکه برای جواب، هرکس دیدگاه خودش را بیان کند نه که اشکالی ندارد بلکه بسیار خوب و مفید خواهد بود و من بر این باورم که هر راهی برای حل کردن مسئله که بیان شود می تواند به وسیع کردن دیدما در مورد مسئله کمک کند ولی و اینکه روش دیگران زیر سئوال ببریم جایز نیست من هم اگر در مورد راه حل شما نظری ندادم و به نظرم بسیار هم جالب بود و اگر هم چیزی گفتم در مورد اینکه به دوستانی که راحل های متفاوتی ارائه داده بودند خطاب کرد ه اید "" چرا اينقدر موضوع را پيچيده كردين "" که یعنی دوستان راه را اشتباه رفته و راه حل ارائه شده کارا آمد نیست در هر صورت قصدم ناراحت کردن شما نبوده ونیست.

نمونه فایل:

[attachment=131]

4017
2010/12/29, 15:58
دستوري كه بنده پيشنهاد دادم نمي تواند ليست تغييرات هر كار بر را نشان دهد ولي اگر با اين دستور كار كرده باشيد حتما ديديد كه مي توان سلهاي يك شيت را به هر تعداد كاربر كه نياز داريد اختصاص دهيد به طوري كه ديگري نتواند محيط ديگري را تغيير دهد و كاربر فقط با پسورو خودش مي تواند اطلاعات را درج نمايد ( البته در اين دستور ديگر نام كاربري نياز نيست و من فكر ميكنم دوستي كه سوال داشت با الگو گرفتن از شكل نرم افزارهاي ديگر ، از اكسل چنين انتظاري داشته و اگر نه با همين دستور مشكلش حل مي شود )
ضمنا هر كس از ديدگاه و تجربيات خودش راهكاري را پيشنهاد مي دهد كه البته فكر نمي كنم اين موضوع ايرادي داشته باشد . چرا كه تا بحال چندين پروژه تحت شبكه با چندين كاربر و سطح دسترسي متفاوت با همين دستور انجام داده ام و مشكلي هم نداشته و با امنيت بالا هنوز هم در حال سرويس دهي مي باشند و تنها مشكل آن اين است كه ظاهر نرم افزار شبيه نرمافزارهايي مثل دلفي نشده و دك و پوز آنها را ندارد .
براي مثال يك فايل خيلي ساده با 5 كاربر كه كلمه عبور هر كار بر از 1 تا 5 مي باشد به ايميل excel.iran@yahoo.com ارسال كردم تا در صورت صلاح ديد در اين قسمت قرارداده شود .



با درود فراوان

دوست خوبم آقای مفیدی در مورد اینکه برای جواب، هرکس دیدگاه خودش را بیان کند نه که اشکالی ندارد بلکه بسیار خوب و مفید خواهد بود و من بر این باورم که هر راهی برای حل کردن مسئله که بیان شود می تواند به وسیع کردن دیدما در مورد مسئله کمک کند ولی و اینکه روش دیگران زیر سئوال ببریم جایز نیست من هم اگر در مورد راه حل شما نظری ندادم و به نظرم بسیار هم جالب بود و اگر هم چیزی گفتم در مورد اینکه به دوستانی که راحل های متفاوتی ارائه داده بودند خطاب کرد ه اید "" چرا اينقدر موضوع را پيچيده كردين "" که یعنی دوستان راه را اشتباه رفته و راه حل ارائه شده کارا آمد نیست در هر صورت قصدم ناراحت کردن شما نبوده ونیست.

نمونه فایل:




سلام
ميشه يوزر پسوورد اين فايلي كه گذاشتي رو بزاري تو سايت؟

shamsololama
2010/12/29, 16:08
با درود فراوان
نام کاربریها و کلمه های عبوری که باری این فایل تنظیم شده در زیز نوشته ام

کلمه عبور ---نام کاربری

a1 --- -------- 1
a2------------ 2
a3 --------------3
a4 --------------- 4
a5 ---------------5

mo-aslani
2011/02/14, 10:59
استاد بزرگوار جناب شمس العلما
با درود و شادباش خدمت شما و دیگر دوستان
استاد در فایل نمونه ارسالی شما در صورتی که بخواهیم بعد از لاگین کردن به جای اینکه کاربر به صفحه اکسل وارد بشه به یک یوزرفرمی که قبلا تهیه کرده ایم منتقل بشه چکار باید بکنیم؟
ممنون میشم اگه مجددا من رو هم راهنمایی کنین
با تشکر فراوان

shamsololama
2011/02/14, 11:21
استاد بزرگوار جناب شمس العلما
با درود و شادباش خدمت شما و دیگر دوستان
استاد در فایل نمونه ارسالی شما در صورتی که بخواهیم بعد از لاگین کردن به جای اینکه کاربر به صفحه اکسل وارد بشه به یک یوزرفرمی که قبلا تهیه کرده ایم منتقل بشه چکار باید بکنیم؟
ممنون میشم اگه مجددا من رو هم راهنمایی کنین
با تشکر فراوان



نمونه فایل :کلمه های عبور هم همان کلمه های قبلی است

[attachment=184]

mo-aslani
2011/02/14, 13:58
استاد واقعا که گل هستی
در ضمن در نمونه ارسالی ،یوزرفرم 2 تا زمانی که دکمه خــروج رو نزنم همچنان باقی میمونه و حذف نمیشه برای این مورد چکار باید کرد؟
یک دنیا تــــــــشـــــــــــــــ ــکــــــــــــــــــــر

shamsololama
2011/02/14, 16:00
با درود فراوان
خوب تا نبندیش که بسته نمی شه یا اینکه شما میخواهید بعد از باز شدن فرم 2 بعد از مدتی خودش بسته بشه؟

mo-aslani
2011/02/14, 17:00
استاد با درود مجدد
من منظورم این هست که وقتی روی کامندباتون 1 کلیک میکنیم بایستی صفحه اکسل نمایش داده بشه و یوزرفرم بسته بشه در حالی که الان اینطور نیست و وقتی روی کامندباتون 1 کلیک میکنیم صفحه اکسل باز میشه ولی همچنان صفحه یوزرفرم باقی میمونه و بایستی با کلید close(همون دکمه ضربدر بالای تمام فرم ها) یوزرفرم رو ببندیم
امیدوارم که تونسته باشم منظورم رو خوب بیان کرده باشم
بازهم ممنون از راهنمایی های مفید شما استاد بزرگوار

MEYTI
2011/02/15, 08:53
استاد با درود مجدد
من منظورم این هست که وقتی روی کامندباتون 1 کلیک میکنیم بایستی صفحه اکسل نمایش داده بشه و یوزرفرم بسته بشه در حالی که الان اینطور نیست و وقتی روی کامندباتون 1 کلیک میکنیم صفحه اکسل باز میشه ولی همچنان صفحه یوزرفرم باقی میمونه و بایستی با کلید close(همون دکمه ضربدر بالای تمام فرم ها) یوزرفرم رو ببندیم
امیدوارم که تونسته باشم منظورم رو خوب بیان کرده باشم
بازهم ممنون از راهنمایی های مفید شما استاد بزرگوار


دوست عزیز برای این کار در آخر کد کامند باتون کلمه (end) اضافه کن.

shamsololama
2011/02/15, 09:18
استاد با درود مجدد
من منظورم این هست که وقتی روی کامندباتون 1 کلیک میکنیم بایستی صفحه اکسل نمایش داده بشه و یوزرفرم بسته بشه در حالی که الان اینطور نیست و وقتی روی کامندباتون 1 کلیک میکنیم صفحه اکسل باز میشه ولی همچنان صفحه یوزرفرم باقی میمونه و بایستی با کلید close(همون دکمه ضربدر بالای تمام فرم ها) یوزرفرم رو ببندیم
امیدوارم که تونسته باشم منظورم رو خوب بیان کرده باشم
بازهم ممنون از راهنمایی های مفید شما استاد بزرگوار


دوست عزیز برای این کار در آ--- کد کامند باتون کلمه (end) اضافه کن.


با درود فراوان
بله همانطور که دوست عزیرم اشاره کردند می توانی در پایان کد کامند باتون یا end اضافه کنی و یا اینکه unload me
که هر دو باعث بسته شدم فرم می شوند و تفاوت آن دو این است که end تمام فرمهای باز را می بندد ولی unload me فقط همان فرم که کد در آن قرار دارد می بندد و اگر فرمی دیگری باز باشد باز می ماند

mo-aslani
2011/02/15, 09:21
واقعا ممنونم دوستان
یک دنیا تشکر

MRDJAVANMARDI
2011/03/06, 13:14
سلام لطفا بفرمایید چطور میشه یه cell رو تو اکسل پروتکت کرد البته با شرط مثلا درج 1 در سلول مشخص
لطفا اگه میشه فایلشو با ماکرو نمونه به ایمیل من هم بفرستید
mrdjavanmardi@gmail.com
mrdjavanmardi@yahoo .com

MEYTI
2011/03/07, 12:12
با سلام احترام
خدمت شما دوست عزیز قفل شرطی اگر نتوانشتسد دانلود کنید نمونه هم ایمیل کردم.
http://www.upload4files.tk/download.php?file=7f08a87eee97ae0aaedd4b2b2e0cda56

mokaram
2011/11/14, 22:41
میشه یه نمونه فایل بذاریدکه مثلا کاربر اول فقط view داشته باشه کاربر د.م دسترسی بیشتر و کاربر سوم دسترسی کامل داشته باشه ممنون

m_d6712
2012/08/11, 15:22
دوستی سوال فرمودند:






سلام خسته نباشيد، من مي خوام از طريق كدنويسي vb يك سري فايل رو از مسير مشخص از روي يك سرور اصلي بردارم و روي سيستم خودم كپي كنم كدش رو مي نويسم ولي چون سرور اصلي username و password داره فايلم روي سيستمم كپي نمي شه آيا راه حلي داره كه user و pass سرور رو Set كنم


در صورتی که بیشتر توضیح بدهید ممکن هست بتونم کمک کنم.

نحوه اتصال شما به سرور از طریق چیست؟ FTP یا File Share و یا هر چیز دیگر؟
روی سیستم سرور چه سیستم عاملی نصب هست؟
این یوزر و پسوردی که مد نظر شماست از چه نوع هست. دامین و یا لوکال برای خود سرور؟
و آیا در سرور امکان دسترسی مستقیم به فایل تحت شبکه فرآهم شده؟
فایل چه فرمتی داره؟

با تشکر داوری


ممنون از جوابتون.
فايل هاي ارسال شده اكسل هست كه از طريق ftp روي سرور اصلي گذاشته مي شه.
سيستم عاملش windowsServer هست
سرور در domain نيست
ولي در صورتي كه ارسال كننده ها يا گيرنده هاي فايل بخواهند به آن دسترسي داشته باشند بايد user و pass وارد كنند.
باز هم از توجه شما متشكرم



این مشکل مربوط به خود اکسل نیست مساله شبکه هست. اگر مطمئن هستید که اتصال ftp هست روش زیر جواب میدهد:

ابتدا FTPC.dll را به مجموعه reference ها اضافه می کنید. ابتدا FTPC.dll را دانلود کنید. از برای این کار در محیط ویژوال بیسیک اکسل Tools و متعاقبا references را انتخاب کنید. Browse را بزیند و در محلی که FTPC.dll ذخیره شده است بروید و آن را Add کنید.


سپس از کد زیر را برای اتصال استفاده می کنید:


'To use the object, declare it then create a new instance of it
Dim WithEvents objFTPC As FTPClient
Set objFTPC = New FTPClient
'To connect, supply it with required parameters
objFTPC.Username = "Anonymous"
objFTPC.Password = "Guest"
objFTPC.PassiveMode = True
objFTPC.RemoteHost = "ftp.ftphost.com"
objFTPC.RemotePort = 21
objFTPC.Connect
'To upload data,
objFTPC.OpenDataConnection
'Wait for Data socket to be connected
Do Until objFTPC.DataState = DS_CONNECTED
DoEvents
Loop
'Upload data
objFTPC.UploadFile "readme.txt"
'Then upload ur data whenever NeedData event is fired
Private Sub objFTPC_NeedData()
objFTPC.SendData "My data"
End Sub

'To download data,
objFTPC.OpenDataConnection
'Wait for Data socket to be connected
Do Until objFTPC.DataState = DS_CONNECTED
DoEvents
Loop
'Download data
objFTPC.DownloadFile "readme.txt"
'Then download ur data whenever IncomingData event is fired
Private Sub objFTPC_IncomingData(BytesTotal As Long)
Dim sData As String
objFTPC.GetData sData
End Sub
'That cover the basics. For more advance functions, post it here

اگر مساله ورود از طریق ftp نیست و کامپیوتر ها به صورت peer to peer به هم وصل هستند. در صورتی که از تنظیمات شبکه خود مطمئن باشید (به این مفهوم که سطح دسترسی تعریف کرده باشید برای یک یوزر شبکه و فایروال هم تنظیماتش انجام شده باشد، من فکر می کنم مشکل شما با این پست حل می شود:
http://forum.exceliran.com/thread-224-post-554.html#pid554


موفق و پیروز باشید.

m_d6712
2013/02/11, 17:10
دوستی سوال فرمودند:



در فایلی که شما زحمت کشیده بودید و برای ورود به فایل اکسل 2 جور پسورد را قرار داده بودین که با وارد کردن یکیش وارد میشدیم (یکی پسورد که در یکی از شیت ها باید با نام کاربری تعریف میکردیم و یکی با پسور ویندوز)
من در یک شرکت کار میکنم که سیستم wyse داریم و فایل شما به طور صحیح کار میکنه . البته با هر یوزر و پسوردی که در شبکه تعریف شده باشه برای کاربران فایل بلز میشه .حال سؤال من اینه که:
1-آیا راهی دارد به منظور protect کردن این فایل یک دستوری بهش اضافه کرد که این فایل فقط در این شرکت کار کند و با انتقال این فایل به کامپیوتر شخصی طرف و یا شبکه دیگر این فایل باز نشود ؟حدود 650 نفر کاربر داریم و پیوسته تعداد و اسامی نفرات در حال تغییر می باشند .
2- آیا با اضافه کردن دستوری میتوان با این فایل سیستم را هک کرد ؟ یعنی یوزر و پسورد کاربران رو در یک صفحه برامون بیاره ؟
یا اگر خودش نتونست این کار رو انجام بده با ارسال فایل به طرف و گرفتن همان فایل از او پسورد و یوزر نیمش رو هک کرد ؟




جواب سوال 1: بله این امر امکان پذیر است! اما ابتدا باید از ساختار و پیکر بندی در شرکت شما مطلع باشم! اگر سیستم DNS Server نصب دارید شما می توانید فقط با verfy کردن Domain Server خودتون این کار را انجام دهید.

جواب سوال 2: باز جواب این سوال به ساختار و پیکر بندی و سطح دسترسی کامپیوتری که فایل روش قرار داره بر میگرده! فرض کنیم که سیستم شبکه و امنیت اون درست و استاندارد طراحی شده. این فایل امن است. اما به طور کلی اگر کاربری که سطح دسترسی به مشخصات یوزر ها نداره فایل رو باز کنه، از اون جایی که کامپیوتر او هم امکان دیدن پسورد ها رو نداره، پس فایل هم امکان دسترسی به یوزر و پسورد هارو نداره، در نتیجه امکان هک هم وحود ندارد. قسمت برنامه نویسی فایل باید رمزنگاری بشه. با این وجود بسته به مهارت و روش، می توان گفت اگر هکر آدم قابلی باشه میتونه هر سیستم امنی رو هک کنه. ولی خب از این آدما کم هستند و اگر هم تصمیم به هک کردن سیستم شما بگیرند از فایل اکسل استفاده نمی کنند؛ مستقیم وارد سرور می شن. :)


موفق و پیروز باشید.

hoomantt
2013/02/12, 09:36
با عرض سلام مجدد
استاد شما برای سؤال اول جواب دادین که میشه این کار را انجام داد .( فقط فایل در شبکه این شرکت باز شود و برای باز شدن در جایی دیگر نیاز به پسورد باشد .)
اگه زحمتی نیست میشه بفرمائید دقیقاً چه اطلاعاتی را نیاز دارین از این شبکه که من فراهم کنم و تقدیم کنم و شما زحمت ساختش رو بکشین.
بسیار ممنون . . .[hr]


دوستی سوال فرمودند:



در فایلی که شما زحمت کشیده بودید و برای ورود به فایل اکسل 2 جور پسورد را قرار داده بودین که با وارد کردن یکیش وارد میشدیم (یکی پسورد که در یکی از شیت ها باید با نام کاربری تعریف میکردیم و یکی با پسور ویندوز)
من در یک شرکت کار میکنم که سیستم wyse داریم و فایل شما به طور صحیح کار میکنه . البته با هر یوزر و پسوردی که در شبکه تعریف شده باشه برای کاربران فایل بلز میشه .حال سؤال من اینه که:
1-آیا راهی دارد به منظور protect کردن این فایل یک دستوری بهش اضافه کرد که این فایل فقط در این شرکت کار کند و با انتقال این فایل به کامپیوتر شخصی طرف و یا شبکه دیگر این فایل باز نشود ؟حدود 650 نفر کاربر داریم و پیوسته تعداد و اسامی نفرات در حال تغییر می باشند .
2- آیا با اضافه کردن دستوری میتوان با این فایل سیستم را هک کرد ؟ یعنی یوزر و پسورد کاربران رو در یک صفحه برامون بیاره ؟
یا اگر خودش نتونست این کار رو انجام بده با ارسال فایل به طرف و گرفتن همان فایل از او پسورد و یوزر نیمش رو هک کرد ؟




جواب سوال 1: بله این امر امکان پذیر است! اما ابتدا باید از ساختار و پیکر بندی در شرکت شما مطلع باشم! اگر سیستم DNS Server نصب دارید شما می توانید فقط با verfy کردن Domain Server خودتون این کار را انجام دهید.

جواب سوال 2: باز جواب این سوال به ساختار و پیکر بندی و سطح دسترسی کامپیوتری که فایل روش قرار داره بر میگرده! فرض کنیم که سیستم شبکه و امنیت اون درست و استاندارد طراحی شده. این فایل امن است. اما به طور کلی اگر کاربری که سطح دسترسی به مشخصات یوزر ها نداره فایل رو باز کنه، از اون جایی که کامپیوتر او هم امکان دیدن پسورد ها رو نداره، پس فایل هم امکان دسترسی به یوزر و پسورد هارو نداره، در نتیجه امکان هک هم وحود ندارد. قسمت برنامه نویسی فایل باید رمزنگاری بشه. با این وجود بسته به مهارت و روش، می توان گفت اگر هکر آدم قابلی باشه میتونه هر سیستم امنی رو هک کنه. ولی خب از این آدما کم هستند و اگر هم تصمیم به هک کردن سیستم شما بگیرند از فایل اکسل استفاده نمی کنند؛ مستقیم وارد سرور می شن. :)


موفق و پیروز باشید.


[hr]


دوستی سوال فرمودند:



در فایلی که شما زحمت کشیده بودید و برای ورود به فایل اکسل 2 جور پسورد را قرار داده بودین که با وارد کردن یکیش وارد میشدیم (یکی پسورد که در یکی از شیت ها باید با نام کاربری تعریف میکردیم و یکی با پسور ویندوز)
من در یک شرکت کار میکنم که سیستم wyse داریم و فایل شما به طور صحیح کار میکنه . البته با هر یوزر و پسوردی که در شبکه تعریف شده باشه برای کاربران فایل بلز میشه .حال سؤال من اینه که:
1-آیا راهی دارد به منظور protect کردن این فایل یک دستوری بهش اضافه کرد که این فایل فقط در این شرکت کار کند و با انتقال این فایل به کامپیوتر شخصی طرف و یا شبکه دیگر این فایل باز نشود ؟حدود 650 نفر کاربر داریم و پیوسته تعداد و اسامی نفرات در حال تغییر می باشند .
2- آیا با اضافه کردن دستوری میتوان با این فایل سیستم را هک کرد ؟ یعنی یوزر و پسورد کاربران رو در یک صفحه برامون بیاره ؟
یا اگر خودش نتونست این کار رو انجام بده با ارسال فایل به طرف و گرفتن همان فایل از او پسورد و یوزر نیمش رو هک کرد ؟




جواب سوال 1: بله این امر امکان پذیر است! اما ابتدا باید از ساختار و پیکر بندی در شرکت شما مطلع باشم! اگر سیستم DNS Server نصب دارید شما می توانید فقط با verfy کردن Domain Server خودتون این کار را انجام دهید.

جواب سوال 2: باز جواب این سوال به ساختار و پیکر بندی و سطح دسترسی کامپیوتری که فایل روش قرار داره بر میگرده! فرض کنیم که سیستم شبکه و امنیت اون درست و استاندارد طراحی شده. این فایل امن است. اما به طور کلی اگر کاربری که سطح دسترسی به مشخصات یوزر ها نداره فایل رو باز کنه، از اون جایی که کامپیوتر او هم امکان دیدن پسورد ها رو نداره، پس فایل هم امکان دسترسی به یوزر و پسورد هارو نداره، در نتیجه امکان هک هم وحود ندارد. قسمت برنامه نویسی فایل باید رمزنگاری بشه. با این وجود بسته به مهارت و روش، می توان گفت اگر هکر آدم قابلی باشه میتونه هر سیستم امنی رو هک کنه. ولی خب از این آدما کم هستند و اگر هم تصمیم به هک کردن سیستم شما بگیرند از فایل اکسل استفاده نمی کنند؛ مستقیم وارد سرور می شن. :)


موفق و پیروز باشید.

m_d6712
2013/02/12, 17:21
با عرض سلام مجدد
استاد شما برای سؤال اول جواب دادین که میشه این کار را انجام داد .( فقط فایل در شبکه این شرکت باز شود و برای باز شدن در جایی دیگر نیاز به پسورد باشد .)
اگه زحمتی نیست میشه بفرمائید دقیقاً چه اطلاعاتی را نیاز دارین از این شبکه که من فراهم کنم و تقدیم کنم و شما زحمت ساختش رو بکشین.
بسیار ممنون . . .




امکان ساخت کامل فایل برای من موجود نیست.
شما باید یک شرط ورودی در سیستم اضافه کنید که اگر اسم دامنه سرور شما با یک اسم مشخص یکسان است فایل اجرا شود در غیر این صورت اجرا نشود. برای این کار از

DomainName = Environ("USERDNSDOMAIN")
If DomainName = "morteza.davari.kuleuven.be" Then
'you can have your own domain name like "*****.com"
MsgBox "success"
' you can add the whole code in the previous file here.
' some more statements
Else
MsgBox "fail"
' statements for failure
End If
استفاده کنید

behtash
2013/02/26, 15:24
باسلام
لطفاً طریقه کپی کردن کد در vba رو توضیح بدین من یک فایل اکسل میخوام بسازم که با هر یوزر یک شیت باز بشه امکان داره
باتشکر

Amin_D
2013/04/15, 11:39
یک فایل برایتون آپلود کردم:

http://www.mediafire.com/file/83ojc03c2pl2jfr/UserPass.xlsm

در این فایل دو نوع Authentication مورد بحث قرار گرفته شده است:


اولی همون Auth که در پاسخ قبلی داده بودم هست که با استفاده از User و Pass سیستم عامل و یا شبکه قابل دسترسی می باشد. دقت نمایید که برخی سیستم ها User هایی دارند که Pass ندارد و مثل خود من! من برای یوزر های کامپیوترم پسورد نمی ذارم! در این حالت ویندوز ایرادی نمیگیرد اما اگر سسیتم شما عضوی از domain باشد ایراد می گیرد! در Authentication که من در VBa براتون گذاشتم اصل بر Domain است! برای همین شما نمیتوانید با یوزری که پسورد ندارد وارد شوید. لطفا این قسمت را با یوزری امتحان کنید که پسورد دارد. یوزر Guest هم به همین دلیلی که ذکر کردم قابل استفاده نمی باشد.

دوم حالت عادی است. یک لیست از User و Pass در Sheeet اول ایجاد شده که این شیت Hidden شده است. و کاربران نمی توانند آن را ببینند.

شیت اصلی اطلاعات نیز Hidden می باشد که پس از اعتبار سنجی کاربر نمایش داده می شود.

برای اینکه کاربر نتواند کد های نوشته شده را ببیند بر روی آن پسورد گذاشته شده است:

در این فایل پسورد محیط Vba در زیر نوشته شده است:
exceliran

پسورد روش اول: یکی از یوزر و پسورد های خود ویندوز شما
پسورد روش دوم: قابل اضافه کردن است:
به عنوان مثال:

یوزر: excel
پسورد: iran

موفق باشید.


با سلام و تشکر دوست گرامی
منتهی اگر شیت جدیدی اضافه شد دیگه اون شیت ، عملیات رمز شاملش نمیشه!
بعد جایی هم مشخص نشده که یوزرها کی وارد شده اند و چیکار کردند؟

با تشکر

حسینعلی
2014/02/15, 22:42
مطالب خیلی عالیه ولی فایل اماده ای نیست که بتونم کدهای ارائه شده را کنترل و بررسی کنم و ببینک چی شده؟
بهتره یه فایلی قرار بدید که فرم درج یوزرو پسورد هم بیاد روی صفحه
خیلی ممنون دارتون هم میشم اگه اینکارو بکیند

Amir Ghasemiyan
2014/02/16, 00:19
مطالب خیلی عالیه ولی فایل اماده ای نیست که بتونم کدهای ارائه شده را کنترل و بررسی کنم و ببینک چی شده؟
بهتره یه فایلی قرار بدید که فرم درج یوزرو پسورد هم بیاد روی صفحه
خیلی ممنون دارتون هم میشم اگه اینکارو بکیند

به پست 9 مراجعه بفرماييد دوست عزيز

حسینعلی
2014/05/18, 16:11
استادبزرگوارجناب اقای شمس العلما بنابود نمونه ای بزارند ولی هنوز فایلی رو قرارندادند

~M*E*H*D*I~
2014/05/18, 16:38
بزودی در این مورد مطلب جامع و کاملی ارائه خواهد شد

~M*E*H*D*I~
2014/06/13, 19:29
بزودی در این مورد مطلب جامع و کاملی ارائه خواهد شد


پکیج آموزشی ایجاد فایل چندکاربره با سطح دسترسی مشخص (http://forum.exceliran.com/showthread.php?t=4732)

afshar_yan
2014/06/13, 19:36
دوستی سوال فرمودند:


این مشکل مربوط به خود اکسل نیست مساله شبکه هست. اگر مطمئن هستید که اتصال ftp هست روش زیر جواب میدهد:

ابتدا FTPC.dll را به مجموعه reference ها اضافه می کنید. ابتدا FTPC.dll را دانلود کنید. از برای این کار در محیط ویژوال بیسیک اکسل Tools و متعاقبا references را انتخاب کنید. Browse را بزیند و در محلی که FTPC.dll ذخیره شده است بروید و آن را Add کنید.


سپس از کد زیر را برای اتصال استفاده می کنید:


'To use the object, declare it then create a new instance of it
Dim WithEvents objFTPC As FTPClient
Set objFTPC = New FTPClient
'To connect, supply it with required parameters
objFTPC.Username = "Anonymous"
objFTPC.Password = "Guest"
objFTPC.PassiveMode = True
objFTPC.RemoteHost = "ftp.ftphost.com"
objFTPC.RemotePort = 21
objFTPC.Connect
'To upload data,
objFTPC.OpenDataConnection
'Wait for Data socket to be connected
Do Until objFTPC.DataState = DS_CONNECTED
DoEvents
Loop
'Upload data
objFTPC.UploadFile "readme.txt"
'Then upload ur data whenever NeedData event is fired
Private Sub objFTPC_NeedData()
objFTPC.SendData "My data"
End Sub

'To download data,
objFTPC.OpenDataConnection
'Wait for Data socket to be connected
Do Until objFTPC.DataState = DS_CONNECTED
DoEvents
Loop
'Download data
objFTPC.DownloadFile "readme.txt"
'Then download ur data whenever IncomingData event is fired
Private Sub objFTPC_IncomingData(BytesTotal As Long)
Dim sData As String
objFTPC.GetData sData
End Sub
'That cover the basics. For more advance functions, post it here

اگر مساله ورود از طریق ftp نیست و کامپیوتر ها به صورت peer to peer به هم وصل هستند. در صورتی که از تنظیمات شبکه خود مطمئن باشید (به این مفهوم که سطح دسترسی تعریف کرده باشید برای یک یوزر شبکه و فایروال هم تنظیماتش انجام شده باشد، من فکر می کنم مشکل شما با این پست حل می شود:
http://forum.exceliran.com/thread-224-post-554.html#pid554


موفق و پیروز باشید.
با سلام و تشکر از رهنمایی های شما
محل کار من یه شبکه داخلی با ip مشخص داره و میخوام هر کاربری بتونه روی سیستم خودش از طریق فایل اکسلی که من بهش میدم یه سری اطلاعات رو وارد کنه و در نهایت بعد از تبدیل به فرمت تکست اون فایل رو از طریق ftp یا هر راه دیگه به سیستم من ارسال کنه ) و البته با ماکرو )
مشکل من توی ارسال فایله
دسترسی به سیستم همه ندارم که بشه تنظیمات add و refrenc و غیره رو انجام بدم
ارسال رو از طریق یه بچ فایل و تو محیط cmd بلدم و انجام دادم ولی بلد نیستم اون بچ فایل رو تو محیط اکسل فراخوانی و اجرا کنم اگه راهنماییم کنید ممنون میشم
ضمناً اون لینک دوم کار نمیکنه

dreamtalk
2019/01/19, 08:45
با سلام
من میخوام که هر کاربری که با یوزر جوین به دامین وارد اکسل شد، نام کاربریش و ساعت ورودش و حتی اگه تغییراتی انجام داد بر روی اکسل، در یکی از سلول های اکسل نامش را نمایش بده.
ممنون میشم کمک کنین.

ابوالفضل براتی
2020/10/05, 13:14
این چه مدل کمک کردن و پاسخ دادنه میخوای بگی خیلی اکسل بارته تو اگه چیزی بارت بود اینجوری مطلب یاد یکی که ازت کمک خواسته نمیدادی