Jump to content

Macro que registra usuarios que ocupan archivo


RORO1981

Recommended Posts

Posted

Amigos:

aqui les dejo una macro que cada vez que se abre registra el usuario la fecha y la hora de la persona que ocupa el archivo y lo guarda automaticamente es especial para archivos compartidos.

espero les sirva.. :mad::D:cool::D

saludos

Registra usuarios.zip

Posted
Amigos:

aqui les dejo una macro que cada vez que se abre registra el usuario la fecha y la hora de la persona que ocupa el archivo y lo guarda automaticamente es especial para archivos compartidos.

espero les sirva.. :mad::D:cool::D

saludos

Esta muy bueno, lo unico es que al estar bloqueada la hoja no puedo ver el nombre y la hora completos porque no esta autoajustada al mio que es largo, pero lo importante es lo que hace, si se agrega a este archivo un autoguardar para que en caso de que tengamos ese archivo en red y alguien entrara y abra el archivo se guarde automaticamente el dato y asi evita que cuando se cierre no pregunta si va a guardar (evitariamos que note que estamos grabando que alguien lo abrió) y en cierto modo no este visible la hoja.

Pero nada son ideas y si puedes aplicarla y subirla nuevamente resultaria muy importante.

Saludos,

Posted

Ok le hice los cambios que me sugeriste DRAMIDOM y en cuanto a la opcion de autogardar el archivo si lo hace fijate bien despues de registrar el usuario con la fecha y hora respectiva..

ahh para ver el registro de los usuarios hay que poner visible la hoja 1 ya que se oculta automaticamente..

saludos y espero comentarios

Registra usuarios.zip

Posted
Ok le hice los cambios que me sugeriste DRAMIDOM y en cuanto a la opcion de autogardar el archivo si lo hace fijate bien despues de registrar el usuario con la fecha y hora respectiva..

ahh para ver el registro de los usuarios hay que poner visible la hoja 1 ya que se oculta automaticamente..

saludos y espero comentarios

Acabo de ver pero no dio tiempo a ver el registro pues se oculta la hoja y/o elimina y pues no puedo volverla a mostrar. Ademas si preciono salir del excel me pregunta q si quiero guardar los cambios, la idea como mencione es q guarde y no pregunte (evitariamos que quien lo abrio sepa que estamos capturando quien abre el archivo y nota que pregunta sentira que hubo algun cambio

Posted
Acabo de ver pero no dio tiempo a ver el registro pues se oculta la hoja y/o elimina y pues no puedo volverla a mostrar. Ademas si preciono salir del excel me pregunta q si quiero guardar los cambios, la idea como mencione es q guarde y no pregunte (evitariamos que quien lo abrio sepa que estamos capturando quien abre el archivo y nota que pregunta sentira que hubo algun cambio

listo ahora si hace un auto guardado automatico si entras y no haces ningun cambio y luego sales no te pregunta por los cambios

para ver la hoja debes ir al editor de visual basic posicionarte sobre la hoja oculta (en este caso la hoja1) y abajo en las propiedades de la hoja cambias la propiedad visible a xlsheetvisible (creo que es la primera).

la hoja no se eliminó solo está oculta ojo.

te adjunto archivo con modificacion

saludos

Registra usuarios.zip

Posted
listo ahora si hace un auto guardado automatico si entras y no haces ningun cambio y luego sales no te pregunta por los cambios

para ver la hoja debes ir al editor de visual basic posicionarte sobre la hoja oculta (en este caso la hoja1) y abajo en las propiedades de la hoja cambias la propiedad visible a xlsheetvisible (creo que es la primera).

la hoja no se eliminó solo está oculta ojo.

te adjunto archivo con modificacion

saludos

Ok excelente ahora si va todo bien puede servir para mucho este archivo, solo habria que colocar en alguna hoja visible un boton o un codigo para llamar en una macro sin tener que entrar a la propiedades para que muestre la hoja oculta y con esa parte el archivo estaria estupendo puede servir para ver quienes son esos que abren nuestros archivos almacenados en la red jeje...

Posted
Ok excelente ahora si va todo bien puede servir para mucho este archivo, solo habria que colocar en alguna hoja visible un boton o un codigo para llamar en una macro sin tener que entrar a la propiedades para que muestre la hoja oculta y con esa parte el archivo estaria estupendo puede servir para ver quienes son esos que abren nuestros archivos almacenados en la red jeje...

ok puse un boton en la hoja 2 que muestra el registro de los usuarios que han ocupado el archivo y otro en la hoja1 donde estan los registros para volver a ocultarlos...

espero los comentarios

saludos

Registra usuarios.zip

Posted
ok puse un boton en la hoja 2 que muestra el registro de los usuarios que han ocupado el archivo y otro en la hoja1 donde estan los registros para volver a ocultarlos...

espero los comentarios

saludos

Ok RORO1981 Mucho mejor ahora mereces un 100 esto se podria mejorar mucho mas pero ya el cien lo mereces.

Se acabo aquellos que entran a nuestros archivos desde la red y piensan que no lo sabremos jeje. Claro esto dependera de ciertas cosas como por ejemplo que en cada maquina el administrador instalo el offices y no lo haya configurado a nombre de la empresa jeje, sino por los usuarios que la usan porque sino solo veremos horas y el mismo nombre de las maquinas sin saber cual fue la persona que entro, por eso mencione se puede mejor mucho mas aun, como por ejemplo numero de ip de red la maquina, etc.. etc..

Saludos,

Posted
Ok RORO1981 Mucho mejor ahora mereces un 100 esto se podria mejorar mucho mas pero ya el cien lo mereces.

Se acabo aquellos que entran a nuestros archivos desde la red y piensan que no lo sabremos jeje. Claro esto dependera de ciertas cosas como por ejemplo que en cada maquina el administrador instalo el offices y no lo haya configurado a nombre de la empresa jeje, sino por los usuarios que la usan porque sino solo veremos horas y el mismo nombre de las maquinas sin saber cual fue la persona que entro, por eso mencione se puede mejor mucho mas aun, como por ejemplo numero de ip de red la maquina, etc.. etc..

Saludos,

Listo le incorporé al registro la dirección ip del pc que ocupa el archivo espero sea de utilidad

saludos....

Registra usuarios v2.zip

Posted

Hola Roro, aqui te dejo dos funciones que hace lo mismo pero gastando menos codigo, creo que usas demasiadas funciones API que realmente no son necesarias

Sacar USERNAME:

    ' Makes sure all variables are dimensioned in each subroutine.
Option Explicit

' Access the GetUserNameA function in advapi32.dll and
' call the function GetUserName.
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

' Main routine to Dimension variables, retrieve user name
' and display answer.
Sub Get_User_Name()

' Dimension variables
Dim lpBuff As String * 25
Dim ret As Long, UserName As String

' Get the user name minus any trailing spaces found in the name.
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, [color=black]Chr[/color](0)) - 1)

' Display the User Name
MsgBox UserName
End Sub[/CODE]

Funcion que extrae todas las IP del equipo:

[CODE]Private Declare Function GetIpAddrTable_API Lib "IpHlpApi" Alias "GetIpAddrTable" (pIPAddrTable As Any, pdwSize As Long, ByVal bOrder As Long) As Long

' Returns an array with the local IP addresses (as strings).
' Author: Christian d'Heureuse, www.source-code.biz
Public Function GetIpAddrTable()
Dim Buf(0 To 511) As Byte
Dim BufSize As Long: BufSize = UBound(Buf) + 1
Dim rc As Long
rc = GetIpAddrTable_API(Buf(0), BufSize, 1)
If rc <> 0 Then Err.Raise vbObjectError, , "GetIpAddrTable failed with return value " & rc
Dim NrOfEntries As Integer: NrOfEntries = Buf(1) * 256 + Buf(0)
If NrOfEntries = 0 Then GetIpAddrTable = Array(): Exit Function
ReDim IpAddrs(0 To NrOfEntries - 1) As String
Dim i As Integer
For i = 0 To NrOfEntries - 1
Dim j As Integer, s As String: s = ""
For j = 0 To 3: s = s & IIf(j > 0, ".", "") & Buf(4 + i * 24 + j): Next
IpAddrs(i) = s
Next
GetIpAddrTable = IpAddrs
End Function


' Test program for GetIpAddrTable.
Public Sub Test()
Dim IpAddrs
IpAddrs = GetIpAddrTable
Debug.Print "Nr of IP addresses: " & UBound(IpAddrs) - LBound(IpAddrs) + 1
Dim i As Integer
For i = LBound(IpAddrs) To UBound(IpAddrs)
MsgBox IpAddrs(i)
Next
End Sub[/CODE]

Por cierto, queria preguntarte, nunca vi una hoja que estuviera completamente invisible, nisiquiera aparece en el menu de mostrar hojas, ¿Hay alguna forma alternativa de volver a mostrar la Hoja1 sin usar macros?

Un saludo

Posted
Hola Roro, aqui te dejo dos funciones que hace lo mismo pero gastando menos codigo, creo que usas demasiadas funciones API que realmente no son necesarias

Sacar USERNAME:

    ' Makes sure all variables are dimensioned in each subroutine.
Option Explicit

' Access the GetUserNameA function in advapi32.dll and
' call the function GetUserName.
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

' Main routine to Dimension variables, retrieve user name
' and display answer.
Sub Get_User_Name()

' Dimension variables
Dim lpBuff As String * 25
Dim ret As Long, UserName As String

' Get the user name minus any trailing spaces found in the name.
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, [color=black]Chr[/color](0)) - 1)

' Display the User Name
MsgBox UserName
End Sub[/CODE]

Funcion que extrae todas las IP del equipo:

[CODE]Private Declare Function GetIpAddrTable_API Lib "IpHlpApi" Alias "GetIpAddrTable" (pIPAddrTable As Any, pdwSize As Long, ByVal bOrder As Long) As Long

' Returns an array with the local IP addresses (as strings).
' Author: Christian d'Heureuse, www.source-code.biz
Public Function GetIpAddrTable()
Dim Buf(0 To 511) As Byte
Dim BufSize As Long: BufSize = UBound(Buf) + 1
Dim rc As Long
rc = GetIpAddrTable_API(Buf(0), BufSize, 1)
If rc <> 0 Then Err.Raise vbObjectError, , "GetIpAddrTable failed with return value " & rc
Dim NrOfEntries As Integer: NrOfEntries = Buf(1) * 256 + Buf(0)
If NrOfEntries = 0 Then GetIpAddrTable = Array(): Exit Function
ReDim IpAddrs(0 To NrOfEntries - 1) As String
Dim i As Integer
For i = 0 To NrOfEntries - 1
Dim j As Integer, s As String: s = ""
For j = 0 To 3: s = s & IIf(j > 0, ".", "") & Buf(4 + i * 24 + j): Next
IpAddrs(i) = s
Next
GetIpAddrTable = IpAddrs
End Function


' Test program for GetIpAddrTable.
Public Sub Test()
Dim IpAddrs
IpAddrs = GetIpAddrTable
Debug.Print "Nr of IP addresses: " & UBound(IpAddrs) - LBound(IpAddrs) + 1
Dim i As Integer
For i = LBound(IpAddrs) To UBound(IpAddrs)
MsgBox IpAddrs(i)
Next
End Sub[/CODE]

Por cierto, queria preguntarte, nunca vi una hoja que estuviera completamente invisible, nisiquiera aparece en el menu de mostrar hojas, ¿Hay alguna forma alternativa de volver a mostrar la Hoja1 sin usar macros?

Un saludo

si tienes que ir al editor de visual basic posicionarte sobre la hoja oculta (en este caso la hoja1) y en las propiedades le cambias el status a xlsheetvisible creo que es la primera..

gracias por el codigo....

saludos

Posted
Listo le incorporé al registro la dirección ip del pc que ocupa el archivo espero sea de utilidad

saludos....

Hola RORO1981 debido a que no pude volver a entrar al foro no habia el avance que llevas en el archivo, agradezco que has tomado el consejo que te he dado, se esta poniendo muy interesante el archivo... resulta estupendo esto; podrian incluso recomendarte algunas funciones extras a modo de ampliar la informacion que se podrian obtener aparte de las que has agregado pero bien no se si alguien quiera participar porque todo dependerá de cada caso.

Posted
Hola Dramidom

Escuchando tu propuesta, ¿por que no agregar la MAC Adress?, este numerito compuesto de 6 valores hexadecimales de 255 cada uno es unico e irremplazable en cada equipo. Puede haber cientos de ordenadores con el mismo nombre ANTONIO, pero cada uno de esos PC tiene una MAC que no se repetira en ninguno de ellos tipo:00-1E-68-F0-FE-D9

Aqui dejo el enlace a wikipedia

Aqui dejo el link al codigo para VB6

Saludos

Gracias Verzulan, lo que habia recomendado solo fue una posibilidad de obtener mas información; en el caso de lo que pedi que hacia referencia a la ip lo hacia debido a que trabaje en un lugar donde tenemos muchas computadoras conectadas en la red, todos nos conectamos por un nombre de dominio y para mi es mas facil saber por la IP cual es la persona a quien esta asignada esta ip; claro con lo que comentas es tambien un dato importante pero no soy experto en redes y me complicaria mas viendo esos valores jeje... pero como comente antes si el amigo RORO desea agregarle mas cosas al archivo que inicio pues bienvenido sea todo para bien de los que tendremos la oportunidad de usar este codigo.

  • 4 years later...
Posted

Hola, la verdad es que no soy experto en excel ni mucho menos, pero me pareció una excelente idea el poder registrar los usuarios que acceden a los archivos. En mi caso, entrego bastantes reportes a múltiples usuarios y no sé si realmente los están usando o si en algunos casos es tiempo perdido.

Intenté seguir todos los pasos propuestos, sin embargo me arroja un error de compatibilidad con 64 bits.

Me podrían ayudar a ver como soluciono ese problema?

Muchas gracias!

Archived

This topic is now archived and is closed to further replies.

  • 108 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Files

  • Download Statistics

    • Files
      184
    • Comments
      96
    • Reviews
      28

    More information about "Un juego solitario en Excel"
    Latest File
    By pegones1

    4    0

  • Crear macros Excel

  • Posts

    • Hola. Tu archivo no tiene macros. Sobre las celdas combinadas, ya que no puedes evitar su uso al no ser tus archivos, lo mejor es "des combinarlas" previo a cualquier cosa, incluso en tu misma macro (que no envías). 
    • Hola buenas tardes tengo un archivo en excel que copia varias tablas y las importa a word de manera automatica. Este selecciona las tablas en base a las filas con datos de mi columna C. pueden ser  diferentes rango de tablas. (Pero siempre mi rango es de celdas continuas y con valores continuas) Funciona muy bien. El problema que ahora tengo es que muchos archivos con tablas  tienen las celdas combinadas ya sea horizontalmento o vertical. Aqui es donde empieza mi problema ya que son formatos de origen no puedo modificarlas. Quisiera ajustar mi macro en la parte de seleccion de rango de tablas y que pueda considerar la celdas combinadas y pegarlos en word sin problema. Ya que actualmente no me pone algunas tablas o rangos, o me repite las tablas y no considera las demas. Todo esto a que en algunas no hay valores o las celdas estan combinadas.   Muchas gracias Seleccion automatica de celdas combis.xlsx
    • por si te sirve: la primera matriz (pivotarpor) al inicio los que no tienen profesor asignado (orden ascendente por omision) la segunda (2 matrices y solo unicos) en el orden de aparicion (no asignados al final) la tercera (2 matrices) omite los no asignados (tambien por orden de aparicion) unicos y suma (ayudaExcel).xlsx
    • No se si este tema va aquí, si no es así, pido disculpas. Llevo varios días dando vueltas a un fallo que me sale al exportar una tabla a xml y que no consigo resolver. El fallo que me da es que no las asignaciones no son exportables y al comprobar la asignación me dice datos no normalizados.     Libro1.xlsx
    • Buenas tardes estimado JSDJSD, muchas gracias por responder. En efecto esta parte quedo perfecta. Pero me falto indicar que la macro se ejecute dependiendo de la celda L1 ( Caliza o Mezcla). Entonces si dice Caliza aplica la macro que me enviaste, pero si dice Mezcla que haga lo siguiente: Busque el  ultimo dato de la columna K de la hoja Mezcla Adición del libro Base de datos Cementos producido 2024, con la condición de que la columna B debe ser igual a 4 y el dato lo coloque en la celda N1 de la hoja Cemento del libro Cemento. Te comento que el libro Prehomo y Base de datos Cementos producidos 2024 están en carpetas diferentes ya que estos los maneja otra área, como se enmendaría este caso por el comentarios que me enviaste de la ruta. Saludos y un fuerte abrazo   Cemento-2.xlsm
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy