Macro caducar Libro por x cantdad de usos

H o l a  E x pertos.

Necesitaría una macro:

Macro caducar Libro por 30 usos
Macro que al pulsar un boton se cuente como un uso y a los 30 usos pida una contraseña con un inputbox Ej xxxxdfd
Luego pasado otros 30 usos, me vuelva a pedir otra contraseña Ej fsdgedfgd y así sucesivamente.

G r a cias.

Respuesta
1

¿Dónde tendrías guardadas las claves? ¿Para ir a chequear que esta Ok la clave ingresada? ¿Dentro del mismo código? ¿En una hoja oculta?

H o l a  Javier.

G r a c i as  por contestar.

Lo que necesito hacer es:

Describo un poco mejor:

1- A llegar a las 30 veces que se pulso el boton recién ahí  me pida por medio de un inputbox o un userform  una clave.

2- Que si ingreso la clave correcta siga funcionando, sino cierre Excel.

Ej si la primer clave clave1 es-->: "12sdfrtghg" siga funcionando

cuando termine los 30 usos vuelva a pedir una nueva clave clave2  Ej es -->: "AAdsd233" 

3- Que no se pueda volver a utilizar nuevamente la clave1, ni EJ la clave3 (solo la "clave2" =la nueva clave a introducir)

Respondiendo a tu pregunta:

¿Dónde tendrías guardadas las claves? ¿Para ir a chequear que esta Ok la clave ingresada? ¿Dentro del mismo código? ¿En una hoja oculta?

Las claves las podes guardar el la macro, por seguridad.

O como te sea mas facil.

G r a c i as  Javier

Ok, vamos por partes:

1) En una hoja vamos a poner el numero de Clave Actual y Contar cuantas veces fue usada. Le pongo de nombre a la hoja "CONTADOR". Esta hoja la podemos bloquear, ocultar, etc.

a1: "Clave#" b1: 5

A2: Contador b2: 27

O sea, con esos valores estamos usando la clave 5, y ya fue usada 26 veces, la próxima seria la numero 27. Al usarla la vez numero 30, empezara a pedir la clave #6 para la siguiente vez.

2) Por otro lado, hacemos un formulario nuevo para ingresar una clave. Alt+f11, right click sobre el libro y Insert UserForm. Tiene que tener un textbox para ingresar la clave y un botón.

3) Luego, le ponemos el código al formulario. Right click sobre el userform, View code. Y le ponemos este código. Acá están puestas las claves, le puse hasta 10 claves

Private Sub CommandButton1_Click()
    'If TextBox1 = "" Then Exit Sub
    Set hc = Sheets("Contador")
    Dim Claves(1 To 10)
    Claves(1) = "xxxxdfd"
    Claves(2) = "fsdgedfgd"
    Claves(3) = "ztjxdbth"
    Claves(4) = "pepe"
    Claves(5) = "qbiwdaxt"
    Claves(6) = "idlkqwjn"
    Claves(7) = "cbfhyehk"
    Claves(8) = "pbultusg"
    Claves(9) = "wgfpstxw"
    Claves(10) = "wnukbbkf"
    If Not TextBox1 Is Nothing Then
       If Claves(hc.[b1]) = TextBox1 Then
            Unload Me
            Call MacroConContador
        Else
            MsgBox "Clave no es correcta"
            Unload Me
            ThisWorkbook.Save
            ThisWorkbook.Close
        End If
    End If
End Sub

4) En lugar del boton anterior que tenias que corria la macro tuya, ahora vamos a poner una cortita que levante el Userform que pide la clave.

Sub CorrerMacroConClave()
UserForm1.Show
End Sub

5) Por ultimo, vamos a agregar el contador, que va junto con tu macro. Ya verificada la clave, se correra esta MacroConContador, que por un lado cuenta el numero de veces que se corrio la macro tuya, y en caso de llegar a 30, tambien pedira otra clave la proxima vez.

En el lugar donde deberías llamar tu macro, le puse un msgbox para revisar que funciona bien. Ahi deberias poner Call "MacroTUYA". Pero por el momento dejalo así, así probamos todo esto por separado.

Sub MacroConContador()
'Contador y Cambiador de Clave
Set hc = Sheets("Contador")
If hc.[b2] = 30 Then
    hc.[b2] = 1
    hc.[b1] = hc.[b1] + 1
Else
    hc.[b2] = hc.[b2] + 1
End If
MsgBox "Corriendo"
'Aca deberias llamar a tu macro.
End Sub

Veamos si la podes hacer funcionar y despues revisamos otros detalles.

H o l a  Javier.

C omo estas?

Gracias por enviarme la respuesta.

La macro nda perfecto lo que sucede es que solo una vez tendría que abrir el userform y poner la clave Ej xxxxdfd

Luego tendría que funcionar hasta que cumpla los 30 usos(sin abrir el userform cada que presione el boton)

Luego cumplido los 30 usos tendría que y abrirse nuevamente el userform para ingresar la segunda clave Ej  fsdgedfgd

tendría que funcionar hasta que cumpla los 30 usos

Así sucesivamente.

Te envió mi mail por si queres comentarme algo.

l/eo_po/[email protected] 

quitale las 2 barras /.

G r acias.

Ok, entonces seria todo igual, solo que el código del botón iría así:

Sub CorrerMacroConClave()
Set hc = Sheets("Contador")
If hc.[b2] = 1 Then
    UserForm2.Show
Else
    Call MacroConContador
End If
End Sub

Hola Javier.

Gracias por la respuesta.

Excelente!!

Un experto en excel.

Tendrías algunos manual o link de manual que hayas visto en internert que sean buenos para programar?

 si podrías enviarme a mi mail te lo agradecería.

Si podes darme algún consejo de:

Como fueron tus inicios

Como progresaste en la  programacion

Que metodos usastes me vendria bien.

Gracias Maestro.

La verdad es que aprendí trabajando. Todos los días lo tengo que usar y siempre hay cosas para mejorar. Me parece que lo más importante para programar es saber qué cosas se pueden hacer. Cuando tengas una pregunta, probablemente si la fórmulas de una forma genérica, ya le paso a mucha gente antes. Internet esta lleno de gente que explica. Youtube esta plagado de tutoriales.

Proba poner "Como crear un formulario excel" en la barra de google y veras aparecer un mundo de soluciones. Habitualmente te vas a encontrar con la respuesta que buscabas y también con cosas que ni siquiera sabias que se podían hacer.

Creo que TodoExpertos sirve para cosas más especificas, o para tener un seguimiento personalizado, pero cuando se trata de aprender a usar una herramienta en particular, googlear es lo mejor.

La página de Support de Microsoft suele tener ejemplos muy buenos. Y siempre me agrega algo que no sabia.

Una pista bastante importante es que tal vez para encontrar una solución especifica tal vez necesites googlear un termino también muy especifico. Poner una línea de código en google te va a llevar directamente a resolver tu problema.

Por ejemplo, recién quería ver si había alguna forma directa de verificar si una hoja existía. Puse en google "sheet exist" y siempre vas a caer en las mismas páginas con montones de códigos YA ESCRITOS, para resolver justamente eso. Entonces 1) No eres el primero en necesitar ayuda sobre este tema y 2) Tal vez necesites escribirlo con términos que ya sabes que el código deberá usar. 3) El grabador de macros te puede dar una buena mano inicialmente.

Por eso, antes que ir a leer un libro o un sitio en particular, te recomiendo googlear mucho y bien especifico.

Hola Javier.

Gracias por tus consejos!

Gracias por tu tiempo.

Voy a hacerte caso y seguir tus pasos.

Gracias Maestro!

Desde Bs As.

El Polaco.

Lo mio es más bien autodidacta, pero si quieres ver uno groso en serio, seguilo a Dante Amor (http://www.todoexpertos.com/usuarios/aprendemos/reputacion ). Ese flaco sabe realmente mucho, todos los dias aprendo algo solo de ver sus respuestas. Por algo esta como experto Numero 1 de excel y de Visual Basic y varios temas mas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas