Páginas

Estamos Para Ayudarle

Si desea que le resolvamos cualquier duda, con respecto a Excel, deje un comentario en el Post de Bienvenida o envie un correo a hector.eduardo.pm@hotmail.com ;)

[MACROS] Como se autoborra archivo excel, en cuanto desbloqeen


Usuario:
Hola, quiera saber si hay una forma como una macro para borrar un archivo en cuanto se desbloque, debido a que tengo un archivo que creé, pero no me gustaría que hicieran mal uso con la información que tengo oculta y en las fórmulas, esta bloqueado las hojas y el libro en estructura, y se que es muy sencillo violar las claves ya que hay macros que lo hacen, por lo que me gustaría encontrar una forma de que el archivo se auto borre en cuanto lo desbloqueen. ¿Habrá alguna forma?

Respuesta:
Buenas noches amigo
 
Existe una posible solución aplicando Worksheets("Hoja1"). ProtectContents . Esto le devolvera True si la hoja esta protegida y False si la hoja esta desprotegida.
 
Con el siguiente ejemplo básico podrá ver como funciona el comando.
 
Private Sub CommandButton1_Click()
    If Worksheets("Hoja1").ProtectContents = True Then
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "Protegido"
    End If
   
    If Worksheets("Hoja1").ProtectContents = False Then
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "Desprotegido"
    End If
   
End Sub


Para que funcione correctamente debe cambiar el formato de la celda "B1" para desbloquear la misma.
 
Intente programar el código de una hoja para que verifique cualquier cambio, usando el evento Changue de Worksheet, y que en cada verificación compruebe que la hoja esta protegida. Si la hoja esta desprotegida, entonces que seleccione toda la hoja y la borre.
 
Si me me da algo de tiempo, puedo hacer el intento de programarle una hoja de ejemplo.
 
Saludos

Usuario:
Bien. Una respuesta aceptable.

[MACROS] Botón para guardar en pdf


Usuario:
Hola, tengo un botón en una hoja llamada "formulario" y quiero que cuando clique en él me guarde unos rangos de la hoja "enmarcador" d1733:q1787 a un archivo en pdf en la ruta c:/albaranes y ese archivo vaya llevando el nombre que hay en la celda c3 de la hoja "formulario".
¿Podéis ayudarme?

Respuesta:
Buenas tardes amigo, disculpe la tardanza en responder.
 
Imagino que usa Excel 2007 o superior. Esta es una posible solución a lo que desea hacer:
 
Sheets("formulario").Select
Range("D1733:Q1787").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= Range("C3").Value, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
 OpenAfterPublish:=False

Saludos

Usuario:
Gracias, eso era la solución, ahora voy a seguir con este mismo botón para incluir en el código que me has dado pa posibilidad de imprimirlo.

[MACROS] Macro para concatenar


Usuario:
Buenos días
Necesito una macro que me concatene las columnas bcde pero que antes de guardarme la concatenación en la columna f me inserte una columna ya que en f hay datos gracias

Respuesta:
Buen día amigo, disculpe la tardanza en responder.
 
Una posible solución podría ser el siguiente código:
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Range("F1").Value = Range("B1").Text + Range("C1").Text + Range("D1").Text + Range("E1").Text

 
Saludos

Usuario:
Muchas gracias excelente respuesta

[MACROS] Cambiar texto en celda en función del día de la semana


Usuario:
Hola, espero puedas ayudarme con lo siguiente:
 
Tengo puesto en la celda B1 la fecha de hoy sin hora.
 
Range("B1").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"
 
Y lo que quiero es que cuando ejecute la macro en la celda B6 aparezca un texto determinado, dependiendo de si el día de la semana es Sábado o si es otro día cualquiera de la semana.
El código que tengo puesto es el siguiente:
 
If "=TODAY()" = Saturday Then
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "LOS CAMBIOS VIGENTES HASTA LAS 16:00 H DEL LUNES ____/____ SON:"
    Else
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "LOS CAMBIOS VIGENTES HASTA LAS 16:00 H SON:"
End If
 
Es correcto este código o debería poner If Range("B1") = Saturday then. Etc.
 
Muchas gracias de antemano

Respuesta:
Buen día mi amigo, disculpe la tardanza en responderle. 
 
Efectivamente lo correcto es If Range("B1") = Saturday then
 
Saludos

Usuario:
Bien. Una respuesta aceptable.

[FORMULAS] Duda excel


Usuario:
Tengo dos celdas que quiero relacionar en C1 por la operación "división". (A1 / B1). ¿Qué expresión tengo que escribir en C1 para que me dé siempre un resultado numérico y nunca me salga un mensaje de error? Esto sucede cuando:
1) En B1 (que es el divisor) hemos introducido un cero o, por error, una letra o signo distinto a un número.
2) En A1 hemos introducido una letra o un signo distinto a un número.
Es evidente que la fórmula debe decir algo así: "dividir A1 entre B1 y indicar el resultado en C1, a excepción de que B1 sea igual a 0 o a un signo distinto de un número, o A1 sea un signo distinto a un número, con lo que el resultado indicado será "Sin solución". Me resulta imposible formularlo con la gramática del excel.
Muchas gracias.

Respuesta:
Buen día, disculpe la tardanza en responder
 
Para esto puede utilizar la función SI en conjunto con la función ESERROR de la siguiente forma:
=SI(ESERROR(A1/B1);"";A1/B1)
 
Saludos

Usuario:
Excelente. Una fantástica solución.

[MACROS] Buscar Dato traer modificar actualizar


Usuario:
Buenas tardes expertos, les explico
Tengo un libro con 8 hojas, en las cuales la hoja uno esta vacía y las demás completas de datos.
En la hoja1 quiero ingresar un numero, ese número puede estar UNA SOLA VEZ en cualquiera de las hojas, que me lo busque y me traiga toda la horizontal de ese dato para yo poder modificarlo y que se actualice en la hoja correspondiente de donde lo encontró.
La idea es hacerlo con botones de buscar y actualizar y algo por el estilo, donde yo pueda entrar el "numero a buscar" le doy click en buscar, que me traiga toda la horizontal, la modifique en la misma hoja1 y luego le de click a actualizar y me actualice la modificación en la hoja correspondiente.
 
De ante mano muchas gracias.

Respuesta:
Buenas tardes amigo, disculpe la tardanza
 
Aquí le dejo un archivo como posible solución a su problema:
EJEMPLO Buscar_Dato_Traer_Modificar_Actualizar.html
 
Saludos
http://formulas-en-excel.blogspot.com/

Usuario:
Muchas gracias, muy buen dato.

[FORMULAS] Extraer datos de hoja por formulario


Usuario:
Hola
Un saludo
Tengo una base de clientes en Excel a los que accedo frecuentemente para tomar cierta o cual información. Necesito saber como puedo hacer para que, escribiendo cierto dato en un textbox de un formulario, me despliegue otro relacionado con dicho dato en el mismo formulario (o en otro). Por ej. Escribiría el numero de crédito en el textbox y me desplegaría la información del nombre de dicho acreditado, su numero consecutivo y el estatus de su crédito, ya sea en un promt o en el mismo formulario dentro de otro textbox.
A lo mejor es muy complicado pero por lo general cuando busco información utilizo el buscador (Ctrl+b) y tengo que hacerlo de uno por uno. Sin embargo necesito obtener la información de varios créditos a la vez. ¿Puede ser esto posible?
Muchas gracias.

Respuesta:
Buenas tardes amigo
Efectivamente si se puede hacer con un formulario pero para poder hacer varias búsqueda se necesitaría saber cuanto es el máximo de búsquedas, que desea realizar simultáneamente.

Exista otra forma mucho más fácil utilizando un condicional SI junto con la función BUSCARV. La ventaja es que usted podrá realizarle ajustes, a la Hoja, sin necesidad de saber programar lo que facilitaría aplicar el mismo método para cualquier otro caso que se le presente. Otra ventaja es que puede realizar cualquier cantidad de búsquedas simultaneas y los datos obtenidos los puede utilizar libremente (cosa que se haría algo difícil con un formulario).

Revise el siguiente archivo y me avisa si aun desea la solución con un formulario
EJEMPLO Extraer_Datos_de_Hoja.html

Saludos
http://formulas-en-excel.blogspot.com

Usuario:
Muy Bien. Me ha sido de gran utilidad