Jump to content

Si abres este archivo, entonces puede ser que la macro no funciona


Recommended Posts

Saludos amigos del foro, en el andar viendo el modo de abrir un archivo solo en una máquina, me encontré con una solución interesante, funciona con el artificio en la Hoja1. Le hice unos pequeños cambios, por la hoja3 y otras cosas más..

No obstante, cierro y trato de abrirlo,...... ya no se abre pese a ser la misma máquina, no obstante me sale el mensaje msgbox  programado...

Intente detener la macro con la famosa tecla shift pero aun no logro que ese truco me funcione..

Envío el archivo, si ustedes lo abren y pueden ver el código, algo no estoy haciendo bien con lo de la tecla shift. Si el codigo esta bien, entonces la macro no funciona para el propósito. Si abre sin usar la tecla shift la macro no funciona. Si no lo abren la macro está bien,..no obstante algo debe estar mal pues en mi propia máquina no logro volver a abrirlo.

Me gustaria que lo revisen a ver que ocurre, que habré escrito mal, pues no logro abrirlo por ningún modo

Gracias anticipadas

CONTROL RECONOCIMIENTO DE COMPUTADOR.xlsm

Edited by Visor
Link to post
Share on other sites

Ficha programador\Código\Seguridad macros: Deshabilitar todas las macros y si te lo quieres ahorrar:

Private Sub Workbook_Open()
Dim ruta As String
Hoja3.Unprotect
Hoja3.Range("A1000000") = "C:\"

ruta = Hoja3.Range("A1000000").Text
If Hoja3.Range("B1000000") = "" Then
Hoja1.Range("B1000000") = DiskVolumeId(ruta)

End If

If Hoja3.Range("B1000000") <> DiskVolumeId(ruta) Then
Application.Visible = False
MsgBox "El número de disco no corresponde al Token de la aplicación", , "Error: Número de serie no coincide"
ThisWorkbook.Saved = True
ThisWorkbook.Close
End If
Hoja3.Range("A1").Select
Hoja3.Protect
UserForm1.Show
End Sub

Function DiskVolumeId(Drive As String) As String
Dim sTemp As String
Dim iPos As Long
iPos = InStr(1, Drive, ":")
Drive = IIf(iPos > 0, Left(Drive, iPos), Drive & ":")
sTemp = Hex(CreateObject("Scripting.FileSystemObject") _
.Drives.Item(CStr(Drive)).SerialNumber)
DiskVolumeId = Left(sTemp, 4) & "-" & Right(sTemp, 4)
End Function

 

Link to post
Share on other sites

Hola Rolano, que gusto saludarte.

Yo he entendido que simplemente quería acceder al código.

Además, tiene un poco de lío con las hojas

If Hoja3.Range("B1000000") = "" Then
   Hoja1.Range("B1000000") = DiskVolumeId(ruta) '¿Es correcto?
End If
Link to post
Share on other sites

Hola Antoni un gusto saludarte, allí debería ser hoja3 y no hoja1, ahora lo que hice es poner manualmente el numero de serie disco C en la hoja3 celda Range("B100000").

Link to post
Share on other sites
Posted (edited)

Gracias, muchas gracias, efectivamente, se concluye que la macro tal como lo encontré si funciona, he cometido el tremendo error de haber dejado Hoja1 en el código, tal como lo muestra Antoni,...y claro efectivamente ese código lo requería otra vez  pues era el único archivo en el que lo tenía...Gracias Antoni y Gracias Rolano. con esto he recuperado aqui el codigo. El codigo si funciona, el error lo he cometido yo mismo.

Por otro lado

"Ficha programador\Código\Seguridad macros: Deshabilitar todas las macros y si te lo quieres ahorrar:"

Esto si lo hice, está en: Opciones\centro de confianza\Configuración del centro de confianza\configuración de macros\Deshabilitar todas las macros --- lo selecciono y listo,..pero nada!! ----  también manteniendo pulsado Shift pero no lograba nada, el archivo luego del mensaje, se desaparecía incluso juntos con otros abiertos,..en la ventana de código vba no se mostraba lo del archivo problema...Por eso No lograba colocar manualmente el número de serie

Puedo seguir pensando que en mi caso no funciona ese truco, y para futuro me queda el problema de yo miso solucionar romper la macro y recuperar mi codigo. Afortunadamente en ese archivo lo estaba usando como prueba, hubiese sido para mi, desafortunado si lo habria hecho en el archivo con la informacion completa.

Gracias por ayudarme en solucionar este tema

Edited by Visor
Link to post
Share on other sites
a


  • Crear macros Excel

  • Posts

    • Hola a todos. Quería vuestra opinión. Tengo un programa que envío las nóminas por correo y en una hoja tengo una tabla con los empleados. La empresa ha decidido cambiar todos los ID de los empleados poniendo un carácter más delante. Es decir, si alguien era el 76254 ahora es 076254. Yo en mis PDFs lo tenía como (76254)_Nómina_2020_10. Ahora que tengo más de 1.000 fichero guardados he de volver  renombrarlos con (076254)_Nómina_2020_10. Y lo que quería preguntaros es si me aconsejáis que haga una macro para cambiar el nombre de cada fichero (cosa que no veo por donde empezar) o que me busque en la Red algún programa que haga esto específicamente. Gracias. Moisés.
    • Saludos a todos, con la siguiente disyuntiva quiero con macros filtrar una base de datos para quitarle todos los espacios en blanco y copiar los valores restantes a otra hoja. Pero al momento de estar grabando la macro me marca este error "Demasiadas continuaciones de linea". Anexo archivo de ejemplo. De antemano muchas gracias.   demasiadas continuaciones de lineas .xlsm
    • Muchas gracias. Funciona perfecto 😊
    • Ayuda, tengo dificultad para obtener las sumas parciales y totales por mes, de cada hoja de control de tiempo trabajado de cada colaborador en: CCTC1, CCTC2, CCTC3 y CCTC4 en la columna de tiempo tiempo trabajado, también la conversión de la columna total en horas trabajado en horas, ésta conversión se traslada a la hoja de DATOSRESUMEN en el CUADRO 1. REGISTRO DE HORARIO TRABAJADO, de cada colaborador.    AYUDAEXCEL25.11.2020.xlsx
    • Muchísimas gracias. Es justo lo que necesitaba. Millones de gracias
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy