Ejecutar un macros unicamente en un determinado PC

Estimado experto un cordial saludo.
Quisiera saber si existe la posibilidad agregar unas líneas a un macros de excel para que solamente se ejecute en un PC con un determinado nombre de equipo el cual pertenezca a un determinado "Grupo de trabajo"
Por ejemplo:
Si mi PC tiene indicado como nombre de equipo": INICIOMS1" y pertenece a un grupo de trabajo llamado: "HOME XP" entonces que la macros verfique esto y posteriormente que proceda a ejecutarse.
De ante mano me disculpo si lo que pido no es posible.

1 respuesta

Respuesta
1
'Este sería el código para obtener el nombre
 ' de la computadora y del usuario
' al parecer el grupo de trabajo es un poco más complicado
' pero si lo ocupas lo busco
'Esto seria al inicio del módulo
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function ReturnComputerName() As String
    Dim rString As String * 255, sLen As Long, tString As String
    tString = ""
    On Error Resume Next
       sLen = GetComputerName(rString, 255)
    sLen = InStr(1, rString, Chr(0))
    If sLen > 0 Then
        tString = Left(rString, sLen - 1)
    Else
        tString = rString
    End If
    On Error GoTo 0
    ReturnComputerName = UCase(Trim(tString))
    MsgBox (ReturnComputerName)
    MsgBox Application.UserName
    'Debug.Print Application.UserName
End Function
' Se usuaria de esta forma
Sub checarnombre()
Dim validar As String
validar = ReturnComputerName
If validar = "INICIOMS1" Then
MsgBox ("correr macro")
Else
MsgBox ("no correr macro")
End If
End Sub
' Pueder hacer lo mismo para validar al usuario
' Cualquier duda me avisas y no olvides de calificar la pregunta
Estimado experto, si te fuera posible encontrar el código para que a través del macros determinar el "grupo de trabajo" sería de mucha ayuda.
Pero de esto me surge la idea de la posibilidad de lograr aun más exclusividad para que la macros se ejecute. ! Quizás validando algún número de un componente propio del computador! Como podría ser el ID del disco duro o de otro elemento de la PC.
Me parece que son conocimientos muy interesantes si fuera posible de realizarse. Pero bueno no se si estoy filosofando más de la cuenta.
Gracias hasta luego.
Después de una intensa búsqueda aquí está el código
Sub SysInfo()
Dim s As String, oSystem As Object, item As Object
Set oSystem = GetObject("winmgmts:").instancesOf("Win32_ComputerSystem")
For Each item In oSystem
s = "Computer Info" & vbCrLf
s = s & "Name: " & item.name & vbCrLf
s = s & "Domain: " & item.Domain & vbCrLf
s = s & "Current User: " & item.UserName & vbCrLf
Debug.Print s
Next
Set oSystem = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas