viernes, 7 de mayo de 2021

Proteger celda en Microsoft Excel

Excel tiene la posibilidad de bloquear celdas que puede resultar muy interesante.

Existe la posibilidad de bloquear las celdas con contraseña para que nadie modifique el contenido o el formato a no ser que conozca la contraseña.

Pero quizá aún más interesante que bloquear las con contraseña es que también se pueden bloquear sin indicar ninguna contraseña.

Por defecto todas las celdas están protegidas.

Para desproteger una celda, botón derecho, formato de celda.

Desmarcar el checkbox proteger.


Para activar la protección, ir a Revisar, Proteger hoja.

Aceptar

Aceptar.

De esta forma podemos proteger la celda sin tener que usar una contraseña.

Es una forma muy útil de evitar errores.

Yo lo uso especialmente para evitar que se borren accidentalmente las fórmulas, cuando tengo que compartir una hoja con otro usuario.

jueves, 6 de mayo de 2021

Pegar datos con filtro aplicado en Microsoft Excel

¿Alguna vez habéis datos teniendo un filtro aplicado?

Quizá penséis que lo habéis hecho mal y se han pegado solo algunos de los datos.


Realidad lo que sucede es que solo habéis cenado algunas celdas y Microsoft Excel las pegará como un rango continuo.


A modo de ejemplo, en este listado voy a seleccionar todas las palabras que contienen "al".

Una vez aplicado el filtro solo quedan visibles 13 líneas, en lugar de las 56 originales.



Si copio esas 13 líneas y las pego en la columna F, aparentemente solo me ha pegado 4 datos.





Si nos fijamos un poco más, veremos que los cuatro datos pegados, no se responden con los cuatro primeros que hemos copiado.

Debido a que realmente Microsoft Excel ha pegado los 13 datos que hemos copiado de forma continua en las 13 primeras filas de la columna F.



Como se puede apreciar fácilmente si quitamos el filtro.


Cómo solución para poder pegar los datos exactamente en las mismas filas lo más fácil es pegar todos los datos, aplicando el filtro con lógica inversa y eliminar los datos sobrantes.

miércoles, 5 de mayo de 2021

Vista página en Microsoft Excel

 

Continuando con las críticas a Microsoft Excel.

Que levante la mano al que Microsoft Excel no le haya impreso hojas de más.

La mayoría de los usuarios de Excel usan siempre la vista normal.

En esta vista es imposible saber cuentas páginas de papel va a necesitar nuestra hoja de cálculo para ser impresa. Y ello suele provocar desagradables sorpresas.



En la inferior derecha de la ventana de Excel, al lado de la barra de zoom, se encuentran tres botones que nos permiten cambiar rápidamente entre las tres formas de visualizar nuestra hoja de cálculo.

La izquierda es la que usamos habitualmente la vista normal.


El segundo botón es la vista de página.


Esta es una vista que pretende simular la forma de ver los documentos de Microsoft Word, sin llegar a conseguirlo del todo.


Árbol recomendable antes de imprimir acceder a esta vista para saber qué partes del documento nos entran en cada página.

Recordar que siguen funcionando los anchos de las columnas de forma que si en cogemos una columna podemos conseguir que entren más datos en la misma página impresa.

Aún así, resulta difícil saber cuántas páginas se van a necesitar para imprimir la hoja de cálculo.

Importante tener en cuenta que, por defecto, Microsoft Excel imprimirá todas las celdas hasta la última que tenga datos, lo que puede generar una enorme cantidad de hojas en blanco en nuestra impresora.

martes, 4 de mayo de 2021

Mayúsculas con función en Microsoft Excel

En Microsoft Excel existe una función que permite pasar textos a mayúsculas.


Es autoexplicativa, tiene un único parámetro.


El parámetro es el texto que deseamos convertir a mayúsculas.

Una vez escrita solo es preciso arrastrar y listo.


Como veis es resultado es el texto en mayúsculas en otra columna.


¿Se podría hacer mejor?

Pues sí, sin ir más lejos Microsoft Word lo hace sin tener que recurrir a una función.

¿Para cuando la posibilidad de convertir a mayúsculas en Microsoft Excel sin necesidad de usar una función?

lunes, 3 de mayo de 2021

Cuántas hojas puede tener un libro de Microsoft Excel

Según la documentación de Microsoft:

En Excel 2003 era de 255 hojas.

A partir de Excel 2007 solo está limitado por los recursos del ordenador (disco duro y memoria RAM).

Como ejemplo un fichero de Microsoft Excel con más de 400 hojas.


Extrañamente al guardar este fichero en formato xls se han mantenido todas las hojas, incluso abriéndolo con Libreoffice Calc.

Esto es cierto para la versión de 64 bits de Microsoft Office, ya que la versión de 32 bits solo permite gestionar 2 GB de memoria RAM, por lo que esto supondrá la limitación, ya que a día de hoy la mayoría de ocs tiene mucha más memoria disponible.

Consejo, si tenéis instalada la versión de 32 bits de Microsoft Office, sustituirla por la de 64 bits, notaréis una enorme mejora.

sábado, 1 de mayo de 2021

Eliminar acentos con VBA en Microsoft Excel

Ayer mostraba como sustituir una letra acentuada por su equivalente sin acento mediante la opción "Reemplazar..." de Microsoft Excel.

Eliminar acentos con Reemplazar... en Microsoft Excel

Hoy os muestro cómo automatizarlo mediante una sencilla Macro en Visual Basic for Applications VBA.

La forma más sencilla de comenzar a programar en VBA, es usando el grabador de macros para generar la macro y luego modificar el código.

En el ejemplo uso ese método.

Podéis ver qué activé la grabación de macros, para luego realizar el proceso que expliqué ayer para reemplazar la letra a acentuada por su equivalente sin acento.

El resultado, generado por el grabador de macros, es este código:

    Cells.Replace What:="á", Replacement:="a", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False


En este caso, modificar la macro, es tan sencillo como copiar y pegar estas líneas tantas veces como caracteres distintos deseemos sustituir. En el código de ejemplo los he marcado en negrita.

En el vídeo sustituyo la vocales mayúsculas y minúsculas con los acentos grave, agudo y circunflejo, presentes en idiomas como el francés o el catalán, y la ñ y la ç, presentes en castellano o portugués.

Este ejemplo se podría realizar con un bucle, pero como introducción a la modificación de macros, creo que es más instructivo de esta manera.


El código resultante es similar a este:

Sub ReemplazarAcentos()

'reenplazo letras minúsculas

    Cells.Replace What:="á", Replacement:="a", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="é", Replacement:="e", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="í", Replacement:="i", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="ó", Replacement:="o", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="ú", Replacement:="u", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False


'reenplazo letras mayúsculas

    Cells.Replace What:="Á", Replacement:="A", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="É", Replacement:="E", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="Í", Replacement:="I", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="Ó", Replacement:="O", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="Ú", Replacement:="U", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

        

'reenplazo otras letras

    Cells.Replace What:="ü", Replacement:="u", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Cells.Replace What:="Ü", Replacement:="U", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub


NOTA:

Toda instrucción que comience por apóstrofe en VBA es un comentario y no es tenido en cuenta por el programa.


El aspecto final de la macro es el de la imagen.


Aquí os dejo una animación con un ejemplo de la apertura y ejecución de la macro.


NOTA2:

Si observáis el vídeo, veréis que eliminó la primera instrucción, en la cual se seleccionaba la columna A, esto lo hago para que la macro se ejecute sobre las celdas seleccionadas, pudiendo aplicarla de esta forma a distintos rangos de celdas.


Espero que os resulte útil, esta es una de mis macros de almohada.

Eliminar acentos con Reemplazar... en Microsoft Excel

A veces es necesario escribir sin acentos.

Por ejemplo, en ciertos Erp o en los buscadores de páginas web, se suelen incluir las mismas palabras pero sin acentos, para facilitar la búsqueda.

Eliminar acentos manualmente, de uno en uno, es un trabajo lento, improductivo y propenso a cometer errores.

Una forma mejor que revisar el texto palabra por palabra, es aprovechar la posibilidad de hacer un reemplazo de caracteres.

"Reemplazar..." está disponible dentro del grupo "Buscar y seleccionar"



La opción reemplazar de Microsoft Excel podemos solicitar que cambie una a minúscula acentuada por una a minúscula, por ejemplo.


Importante seleccionar la columna o columnas en que queremos que se realice la sustitución.

Posteriormente pulsar el botón "Reemplazar todos".

En Microsoft Excel si no seleccionamos un rango, columna o fila la sustitución se aplica a todas las celdas de la hoja activa.


Solo deberemos repetir el proceso teniendo en cuenta que también pueden estar acentuadas las letras mayúsculas.

Este procedimiento también nos permite  sustituir diéresis, eñes u otro tipo de letras que no nos interesen como la c con cedilla.

Este método se puede aplicar en cualquier aplicación que tenga la opción de reemplazar, cómo puede ser Microsoft Word o el Bloc de notas de Windows.

Mañana os mostraré cómo automatizar todo el proceso mediante una macro VBA en Microsoft Excel.