نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: اصلاح کدنویسی در vba به صورتی که در همه ویندوز ها قابل استفاده باشد .

  1. #1


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    Post اصلاح کدنویسی در vba به صورتی که در همه ویندوز ها قابل استفاده باشد .

    سلام
    با کمک دوستان کد هایی رو در VBA نوشتم که در سیستم خودم که ویندوز 7 , 64 بیتی هست کاملا درست عمل میکنه ولی در ویندوز 32 بیتی و XP جواب نمیده . در واقع این کد نویسی ها رو انجام دادم تا برای همه موثر باشه چه کنم تا این مشکل حل بشه ! ؟
    تصویر خطایی که تو XP میده بعد اصلا صفحه کدنویسی VBA دیگه باز نمیشه تو اون فایل
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام:  VBA.jpg
مشاهده: 12
حجم:  27.2 کیلو بایت
    برای مثال در کد زیر که برای پروتکت کردن خودکار بر اساس یوزر نیم سیستم می باشد . تو اینترنت گشتم این مورد رو دیدم . شما به بینید این کد نویسی جواب میده ؟
    کد PHP:
    Option Explicit
    If VBA7 Then
                
    Declare PtrSafe Function WNetGetUser Lib "mpr.dll" _
                                 Alias 
    "WNetGetUserA" (ByVal lpName As String_
                                                       ByVal lpUserName 
    As StringlpnLength As Long) As Long
        
    Else
                Private Declare Function 
    WNetGetUser Lib "mpr.dll" _
                                 Alias 
    "WNetGetUserA" (ByVal lpName As String_
                                                       ByVal lpUserName 
    As StringlpnLength As Long) As Long
        End 
    If

    Const 
    NoError 0        'The Function call was successful

    Public Function GetUserName() As String

    Buffer size for the return string.
    Const 
    lpnLength As Integer 255

        
    ' Get return buffer space.
    Dim status As Integer

        ' 
    For getting user information.
    Dim lpNamelpUserName As String

        
    ' Assign the buffer size constant to lpUserName.
        lpUserName = Space$(lpnLength + 1)

        ' 
    Get the log-on name of the person using product.
        
    status WNetGetUser(lpNamelpUserNamelpnLength)

        
    ' See whether error occurred.
        If status = NoError Then
            ' 
    This line removes the null characterStrings in C are null-
            
    ' terminated. Strings in Visual Basic are not null-terminated.
            ' 
    The null character must be removed from the C strings to be used
            
    ' cleanly in Visual Basic.
            lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
        Else
            ' 
    An error occurred.
            
    GetUserName "Unable to get the name."
            
    GoTo lbl_Exit
        End 
    If

        
    ' Display the name of the person logged on to the machine.
        GetUserName = lpUserName
    lbl_Exit:
        Exit Function
    End Function 
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.
    ویرایش توسط sabertb : 2015/08/12 در ساعت 17:23

  2.  

  3. #2


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    دوستان و اساتید راهکاری به نظرتون میرسه در مورد این مشکل ؟
    چی کنیم فایلا با هر سیستم عاملی باز میشه درست کار کنه !؟

  4. #3


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    دوستان راه حلی هست برای این مشکل ؟

  5. #4


    آخرین بازدید
    2016/11/06
    تاریخ عضویت
    January 2014
    محل سکونت
    تهران
    نوشته ها
    149
    امتیاز
    1192
    سپاس
    175
    سپاس شده
    414 در 123 پست
    تعیین سطح نشده است

    سلام. دوست عزیز در این پست مشکل شما حل شده و بنده هم در ویندوز 64 هم 32 تست کردم موردی نداشت. لطفا طبق کدهای این پست عمل کنید تا مشکلی پیش نیاد . موفق باشید.
    تایین دسترسی با استفاده از یوزر های Login ویندوز ، تعریف شده در شبکه و تعریف دسترسی بر اساس یوزر ها با محدودیت سلولی


    کد:
    Option Explicit
                Declare PtrSafe Function WNetGetUser Lib "mpr.dll" _
                                 Alias "WNetGetUserA" (ByVal lpName As String, _
                                                       ByVal lpUserName As String, lpnLength As Long) As Long
    
    Const NoError = 0        'The Function call was successful
    
    Public Function GetUserName() As String
    
    ' Buffer size for the return string.
    Const lpnLength As Integer = 255
    
        ' Get return buffer space.
    Dim status As Integer
    
        ' For getting user information.
    Dim lpName, lpUserName As String
    
        ' Assign the buffer size constant to lpUserName.
        lpUserName = Space$(lpnLength + 1)
    
        ' Get the log-on name of the person using product.
        status = WNetGetUser(lpName, lpUserName, lpnLength)
    
        ' See whether error occurred.
        If status = NoError Then
            ' This line removes the null character. Strings in C are null-
            ' terminated. Strings in Visual Basic are not null-terminated.
            ' The null character must be removed from the C strings to be used
            ' cleanly in Visual Basic.
            lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
        Else
            ' An error occurred.
            GetUserName = "Unable to get the name."
            GoTo lbl_Exit
        End If
    
        ' Display the name of the person logged on to the machine.
        GetUserName = lpUserName
    lbl_Exit:
        Exit Function
    End Function  
    ویرایش توسط DOLFIN : 2015/08/15 در ساعت 11:59
    خانه اکسل - http://********************

  6. سپاس ها (2)


  7. #5


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    نقل قول نوشته اصلی توسط DOLFIN نمایش پست ها
    سلام. دوست عزیز در این پست مشکل شما حل شده و بنده هم در ویندوز 64 هم 32 تست کردم موردی نداشت. لطفا طبق کدهای این پست عمل کنید تا مشکلی پیش نیاد . موفق باشید.
    تایین دسترسی با استفاده از یوزر های Login ویندوز ، تعریف شده در شبکه و تعریف دسترسی بر اساس یوزر ها با محدودیت سلولی


    کد:
    Option Explicit
                Declare PtrSafe Function WNetGetUser Lib "mpr.dll" _
                                 Alias "WNetGetUserA" (ByVal lpName As String, _
                                                       ByVal lpUserName As String, lpnLength As Long) As Long
    
    Const NoError = 0        'The Function call was successful
    
    Public Function GetUserName() As String
    
    ' Buffer size for the return string.
    Const lpnLength As Integer = 255
    
        ' Get return buffer space.
    Dim status As Integer
    
        ' For getting user information.
    Dim lpName, lpUserName As String
    
        ' Assign the buffer size constant to lpUserName.
        lpUserName = Space$(lpnLength + 1)
    
        ' Get the log-on name of the person using product.
        status = WNetGetUser(lpName, lpUserName, lpnLength)
    
        ' See whether error occurred.
        If status = NoError Then
            ' This line removes the null character. Strings in C are null-
            ' terminated. Strings in Visual Basic are not null-terminated.
            ' The null character must be removed from the C strings to be used
            ' cleanly in Visual Basic.
            lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
        Else
            ' An error occurred.
            GetUserName = "Unable to get the name."
            GoTo lbl_Exit
        End If
    
        ' Display the name of the person logged on to the machine.
        GetUserName = lpUserName
    lbl_Exit:
        Exit Function
    End Function  
    سلام ممنون هستم از شما
    ولی من تست کردم در Xp جواب نداد تو ویندوز 7 32 بیتی تست نکردم ولی شما میگید اوکی هست حتما هست . من کلا ویندوز هارو گفتم چون تو XP ایش دیدم جواب نمیده .

  8. #6


    آخرین بازدید
    2016/11/06
    تاریخ عضویت
    January 2014
    محل سکونت
    تهران
    نوشته ها
    149
    امتیاز
    1192
    سپاس
    175
    سپاس شده
    414 در 123 پست
    تعیین سطح نشده است

    سلام دوست عزیز کدها مشکلی نداره.
    به این مسیر بروید :
    Control Panel >Add/Remove Programs>Microsoft Office2010
    روی برنامه آفیس کلیک راست کنید و CHANGE رو انتخاب کنید.
    بعد از نمایش صفحه نصب آفیس ، گزینه Add or Remove Features رو انتخاب و CONTINUE رو کلیک کنید.
    به بخش Office Shared Features>Visual Basic for Applications بروید. اگر Visual Basic for Applications علامت ضربدر داشت یعنی می بایست Microsoft Office Visual Basic رو نصب کنید.
    با سی دی آفیس میشه اینکارو کرد. البته ممکنه حتی با آپدیت هم بشه. موفق باشید
    خانه اکسل - http://********************

  9. سپاس ها (1)



اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. بازکردن ماشین حساب ویندوز از طریق کد vba
    توسط 4017 در انجمن فرم ها در ويژوال بيسيك - Forms in VBA
    پاسخ ها: 2
    آخرين نوشته: 2024/01/07, 20:33
  2. نمونه برنامه برنامه نویسی سی شارپ با بانک اطلاعاتی اکسس
    توسط Amir_Kouhkan در انجمن برنامه نویسی در اکسس
    پاسخ ها: 2
    آخرين نوشته: 2015/08/12, 09:35
  3. با ویژگی**های برجسته ویندوز ۱۰ آشنا شوید
    توسط ~M*E*H*D*I~ در انجمن زنگ تفریح اکسل - Recess
    پاسخ ها: 0
    آخرين نوشته: 2015/03/08, 14:24
  4. استفاده از کپی فایل ویندوز
    توسط afshar_yan در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 2
    آخرين نوشته: 2014/11/29, 13:16
  5. باز و بسته شدن فایل اکسل در یک ایونت ویندوز
    توسط امیر رضا دهقان در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 3
    آخرين نوشته: 2012/12/30, 09:12

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است