Encuéntranos en Google+.
Working Into Binary
Ingeniería electrónica, lenguajes de programación, software, simulación, noticias, ofimática, ERP,...
Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas

Cómo restaurar Excel con la configuración por defecto sin volver a instalar

26 septiembre, 2012


Es posible que alguna vez nos hayamos encontrado con que nuestro programa ofimático favorito, Microsoft Excel, tiene un comportamiento "no habitual" debido a que hemos trasteado sus opciones y configuraciones hasta el punto de no saber como deshacer los pasos y solucionar los posibles problemas que hayan surgido a causa de ello. La primera idea es desinstalar Excel para luego volver a instalarlo. En un principio puede parecer un razonamiento correcto, pero en realidad no lo es tanto. Por dos motivos: primero, el desinstalar un programa no nos garantiza que todos los archivos de configuración asociados a él también hayan sido eliminados, y, segundo, existe un método más rápido que hace innecesario volver a instalar el programa.
La solución es fácil y muy sencilla: borraremos directamente el "archivo" con la configuración actual, de tal manera que al no encontrarlo, Excel creará uno de nuevo con los valores por defecto. Ahora veremos los pasos que hay que seguir y veremos lo fácil que resulta.

1. Cerramos Microsoft Excel si éste está abierto.
2. Vamos a "Inicio>Ejecutar...", escribimos "regedit" y aceptamos.
3. En la ventana que nos sale, buscamos la carpeta:

HKEY_USERS\S-1-5-21-3623577817-3132101771-1855159549-1006\Software\Microsoft\Office\12.0\Excel\Options

Dentro de HKEY_USERS encontraréis diferentes carpetas que no tienen que llamarse igual que la que yo indico. Simplemente buscáis la que tenga el nombre más largo y que no acabe en "Classes".

Después, dentro de la carpeta Office, habrán carpetas con las diferentes numeraciones de las versiones de Office que tengáis instaladas. Escoged la carpeta de vuestra versión sabiendo que:

Office 2003 - 11.0
Office 2007 - 12.0
Office 2010 - 14.0
Office 2013 - 15.0


4. Una vez localizada, es opcional, pero recomendable, copiarla entera en el Escritorio como Backup.
5. Y ahora, finalmente, eliminamos la carpeta Options entera.

Y ya está. Excel irá a buscar esa carpeta la próxima vez que lo iniciéis y, al no encontrarla, creará una de nueva con las opciones y configuraciones que vienen por defecto al instalarse por primera vez.

Curso de Desarrollo de Aplicaciones en Android - Principiante (I): Introducción

20 septiembre, 2012

Bienvenidos a lo que será un curso de iniciación al desarrollo de aplicaciones en Android. En este curso veremos los pasos que nos permitirán crear aplicaciones sencillas en Android para, posteriormente, ya sea en futuros cursos o por cuenta propia, poder crear aplicaciones más complejas, estéticas y funcionales. Por lo tanto, todo aquel que ya ha hecho "algo" de programación para Android no encontrará nada nuevo en este curso. Este curso sirve de simple, pero necesaria, introducción para la gente que se inicia en ello.

Porqué un curso de desarrollo en Android y no otro? Hay dos motivos irrebatibles: desarrollo abierto y cuota de mercado.

A diferencia de otros sistemas operativos móviles, como iOS o Windows Phone,  en Android se desarrolla de forma abierta y se puede acceder tanto al código fuente como al listado de incidencias. Lo único que se necesita es un conocimiento aceptable de Java, estar en posesión del kit de desarrollo de software o «SDK», provisto por Google, el cual se puede descargar gratuitamente, y paciencia. Nada más. En ningún momento se debe de pasar por caja.

Y en cuanto al otro motivo, cuota de mercado, es más que evidente que Android se está aposentando cómodamente en el mercado tras un aumento de su porcentaje en el mercado de SO para móviles durante estos últimos años. Además, también va aumentando su presencia en el ámbito empresarial debido a su alta flexibilidad.


Entonces las preguntas que uno se hace son sencillas: ¿Quiero que mis aplicaciones lleguen a mucha o poca gente? ¿Quiero que me salga caro, barato o gratis?

Fácil, no?

Bien. Pues en este curso nos iniciaremos en el mundo del desarrollo de aplicaciones para Android. El curso se dividirá en diferentes capítulos/entradas donde veremos diferentes partes del proceso (que irán desde la instalación del entorno de desarrollo hasta la instalación de nuestra aplicación en un dispositivo real o virtual).  Al final del curso se ofrecerá un archivo PDF con todo el contenido del curso.

Espero que os agrade la idea ya que por mi parte estoy muy motivado con este proyecto. Además, creo que aprender a desarrollar para Android tiene un futuro prometedor, sobretodo como salida profesional, y para empezar a aprender hay que hacerlo por lo básico.

Nos vemos en el próximo capítulo:

Curso de Desarrollo de Aplicaciones en Android - Principiante (II): Instalación del entorno de Desarrollo

Como saber si un valor es múltiplo de otro en Excel con y sin Visual Basic

06 septiembre, 2012
Hoy veremos dos maneras de validar que un cierto valor se múltiplo de otro. El primer método es aplicable dentro del ámbito de Excel mediante la fórmula Residuo(). El segundo método, y más interesante para los que programamos en Visual Basic, es mediante el operador MOD, el cual nos sirve para cualquier aplicación que utilice VBA (Excel, Access, Word,...).
El primer método es utilizando la función Residuo. Tenemos la siguiente tabla de valores:


Vemos como en la primera columna tenemos los valores que queremos saber si son múltiplos o no de los valores que aparecen en la columna de la derecha. En la última columna obtenemos la respuesta Sí/No. Para obtener dicha respuesta, utilizamos la fórmula siguiente:

=SI(RESIDUO(A2;B2)=0;"Sí";"No")

La condición de que un valor sea múltiplo de otro es que el residuo de su cociente sea 0. La fórmula Residuo() nos da eso, el residuo del cociente de los dos valores que indiquemos en su argumento. Aplicamos esa condición mediante la fórmula Si() y ya tenemos nuestra respuesta.

Este es un método muy sencillo para saber si un valor es múltiplo de otro, pero es que en el caso de Visual Basic es igual de fácil. En Visual Basic utilizaremos el operador MOD. Su sintaxis es:

Residuo = Valor1 MOD Valor2

El operador MOD nos devuelve el residuo del cociente entre el Valor1 y el Valor2. Aplicamos la misma condición que antes, residuo igual a 0, y validamos:

Sub Check_Multiple()

Dim V1 As Double
Dim V2 As Double

V1 = 16
V2 = 2

If V1 Mod V2 = 0 Then
  MsgBox "El valor " & V1 & " ES múltiplo de " & V2 & ".", vbOKOnly + vbInformation
Else
  MsgBox "El valor " & V1 & " NO ES múltiplo de " & V2 & ".", vbOKOnly + vbInformation
End If

End Sub


De este modo disponemos de dos manera de validar que un valor sea múltiplo de otro.

Cómo eliminar u ocultar en Excel las filas con un cierto valor en una de sus celdas con VBA

05 septiembre, 2012
Hoy me han preguntado sobre como automatizar la eliminación/ocultación de filas en Excel que tengan un cierto valor en una de sus celdas. La solución: Visual Basic. Me atrevería a decir que no hay casi nada imposible para VBA, solo nos limita nuestra capacidad de imaginación en el momento de idear una solución. Por eso, aprovecho esta entrada para recomendaros, al igual que he hecho con el compañero que me ha preguntado, su aprendizaje. Más adelante tengo pensado hacer un tutorial básico de VBA dentro del entorno de Excel.
Pero a lo que ibamos!
Tenemos una tabla como la siguiente:


La tabla corresponde a la tabla de Pedidos de la base de datos de ejemplo de Access llamada Northwind 2007. La podéis descargar desde este blog mismamente (buscar en el SideBar de la derecha) o desde el propio Access.

Queremos eliminar de todas las filas cuyo valor en la columna "Tipo de pago" sea "Cheque" o no contenga nada (la columna es la "O", que queda a la derecha de las columnas que muestra la imagen anterior). Lo que haremos será recorrer una a una las filas de la hoja y comprobar cual es el valor de la celda en la columna "O". Evaluaremos ese valor y realizaremos una acción u otra según el mismo.

Primeramente, diseñaremos un código que nos elimine las filas y, después, otro código que nos oculte las filas. Habrá una ligera diferencia entre ellas.

El código para eliminar las filas es el siguiente:

Sub Delete_Rows()

Dim Wb As Worksheet
Set Wb = Worksheets("Hoja1")

Dim i As Integer
i = 2

Do While Wb.Cells(i, 1) <> ""
  If Wb.Cells(i, 15) = "" Or Wb.Cells(i, 15) = "Cheque" Then
    Wb.Rows(i).EntireRow.Delete
  Else
    i = i + 1
  End If
Loop

MsgBox "Filas eliminadas con éxito!", vbOKOnly + vbInformation, "Tarea finalizada"

End Sub

Podría comentar el código, pero la experiencia me ha demostrado que hay gente que solo le interesa tener el código, adaptarselo y ya está, y luego está la gente que quiere entender el código (que son los que realmente acaban aprendiendo a programar en VBA). A ellos les recomiendo ejecutar el código paso a paso y ver qué hace. Intentar entenderlo facilitará mucho más el aprendizaje de VBA que el que os comente línea a línea todo el código. Buscar en Internet y en los archivos de ayuda de las correspondientes aplicaciones también facilita el aprendizaje del código. Finalmente, si algo no se entiende, no dudéis en dejar un comentario y gustosamente os lo explicaré.

Ahora, el código para esconder las filas:

Sub Hide_Rows()

Dim Wb As Worksheet
Set Wb = Worksheets("Hoja1")

Dim i As Integer
i = 2

Do While Wb.Cells(i, 1) <> ""
  If Wb.Cells(i, 15) = "" Or Wb.Cells(i, 15) = "Cheque" Then
    Wb.Rows(i).EntireRow.Hidden = True
  End If
  i = i + 1
Loop

MsgBox "Filas escondidas con éxito!", vbOKOnly + vbInformation, "Tarea finalizada"

End Sub


Y con estas pocas líneas de código podemos realizar nuestra tarea eficientemente.

(Acordaros que podéis descargaros la base de datos Northwind 2007 en el SideBar de la derecha de este blog. Utilizaré de ahora en adelante sus tablas y diferentes elementos para futuros ejemplos de Excel o Access.)

Base de Datos de ejemplo Northwind 2007 para Access


Para los futuros ejemplos para Excel o Access utilizaremos una base de datos basada en Access que ofrece Microsoft gratuitamente. Utilizaremos esta base de datos para realizar ejemplos sobre Access y sus tablas para realizar ejemplos en Excel (basta con hacer un "copiar y pegar" de las tablas al Excel).
Os dejo un enlace a la web de Microsoft donde os la podéis descargar sin ningún problema.

Enlace: Northwind 2007

(Nota: al abrir el archivo que descarguéis no esperéis tener la base de datos directamente abierta. Os mostrará la pantalla de inicio de Access y debéis de indicar que queréis crear una nueva base de datos, la cual se llamará Northwind 2007 por defecto. Aún así, al abrir Access, en la barra de la izquierda, aparece un enlace donde pone "Ejemplos". Si clicáis ahí también la encontraréis.)

Cómo ingresar, en Excel, fórmulas en celdas mediante VBA

04 septiembre, 2012
A veces queremos ingresar fórmulas en las celdas de Excel en lugar de valores directamente. Ello se logra con la propiedad FormulaLocal.
Utilizaremos esta propiedad para añadir la fórmula, mediante un string, a la celda que deseemos. Nada mejor que un ejemplo.
Queremos que la celda B6 tome el valor de la suma del rango B2:B4 y, al modificar algún valor de los que contiene el rango mencionado, el resultado en B6 se nos actualice. Ello lo logramos ingresando la fórmula "=SUMAR(B2:B4)" en la celda B6.
Si ingresamos la fórmula directamente sobre la celda, VBA lo interpretará como una cadena de texto y lo ingresará como tal. Para que nos lo reconozca como fórmula tenemos que utilizar FormulaLocal.
Tenemos la hoja de datos de nuestro ejemplo:


Para ingresar la fórmula en la celda B6 utilizaríamos el siguiente código:

Sub Ejemplo()

  Worksheets("Hoja1").Range("B6").FormulaLocal = "=SUMA(B2:B4)"

End Sub

e-Seminario de Access (Kung-Fu Access)

25 julio, 2012

Os traigo el vídeo de un e-seminario sobre Access impartido por el MVP Juan Soto. En este vídeo de 50 minutos, se muestran diferentes aspectos sobre Access como:
  • Variables temporales.
  • Utilización de enumeración en lugar de variables para una mejor lectura del código.
  • Utilización de clases para automatizar tareas frecuentes.
El seminario tubo lugar el 13 de julio y está en ingles apoyado gráficamente mediante una presentación en diapositivas y ejemplos prácticos en Access, por lo que se hace entendible incluso para aquellos que no dominen la lengua de Shakespeare.


Os dejo el vídeo y el enlace al web del autor del e-seminario.



Solucionar problema de instalación de Visual Studio 2010

22 julio, 2012


Hoy un lector me ha comentado un problema que tiene al querer instalar Visual Studio 2010. (Sí! Ya tengo un lector!! Jaja!). El caso es que me comentaba que al intentar instalar Visual Studio 2010, la instalación quedaba congelada y no sucedía nada. Miraba el Administrador de Tareas y veía un proceso Setup.exe consumiendo muchos recursos (dicho proceso corresponde a la instalación de Visual Studio). El caso es que  por casualidad me vi en la misma situación cuándo quise instalar dicho software en uno de mis ordenadores. No se si está solución puede servirte a ti, que me imagino que habrás encontrado este post buscando solución a un problema similar, pero tanto a mí como a este lector nos ha servido esta solución que no es "fácil" de encontrar en la red. De hecho, este error me parece bastante "común" y "grave" como para que Microsoft no se haya dignado a corregirlo, pero bueno... Ahí la solución, que es muy sencilla: 


Entráis en Editor de Registro (vais al menú de inicio de Windows, luego a Ejecutar y escribís "regedit").


Dentro del Editor de Registro vais a:


HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ L


En mi caso el último directorio es "L", pero entre diferentes usuarios/ordenadores puede variar. Este directorio "L" es simplemente ese directorio en "Zones" que no tiene como nombre un número.


Una vez dentro, creáis un nuevo valor DWORD con nombre 1440 y valor 0, y otro nuevo valor DWORD con nombre 2106 y valor 0.


Una vez hecho esto corréis la instalación y este se os ejecutará sin problemas. Lo que pasaba es que la instalación de Visual Studio 2010 busca esos registros inexistentes y, por lo tanto, el proceso Setup.exe quedaba en bucle intentando encontralos.

Cómo centrar controles en los formularios de Access

21 julio, 2012

No existe un "botón" para centrar los controles de un formulario de Access indistintamente del tamaño que éste tenga. Únicamente nos da las opciones de delimitarlos respecto izquierda o derecha y arriba o abajo. Para centrar los controles hay que pasar obligatoriamente por el uso de VBA. Aún así, es fácil su implementación y podremos hacerla en no más de cuatro líneas y media.
Imaginemos que tenemos un formulario llamada "frmEjemplo" y dentro de este formulario tenemos un control, por ejemplo un label (etiqueta), llamado "lblCentrado", que es el control que queremos que se centre automáticamente en el formulario indistintamente de el tamaño de éste último. Con este código, además, lograremos que el control se coloque automáticamente en el centro del formulario aunque  lo re-dimensionemos.
Para empezar el código lo introduciremos directamente en el formulario. Para ello, abrimos el formulario en vista diseño. Después, teniendo seleccionado el formulario, en la ventana Propiedades, entramos en la pestaña Eventos. Nos situamos en cualquiera de ellos que esté vacío y clicamos sobre el botón con tres puntos suspensivos que nos aparece al lado. En el cuadro que nos salta, seleccionamos Generador de código y clicamos en Aceptar. Automáticamente, apareceremos en el editor de VBA dentro del formulario en cuestión. Al final del todo agregamos el siguiente código:

Private Sub Form_Resize()
  Me.lblCentrado.Top=Me.WindowHeight/2
  Me.lblCentrado.Left=Me.WindowWidth/2
End Sub

El código se ejecuta para el evento Resize. Este evento tiene lugar cundo se inicia el formulario y cuando éste es re-dimensionado. Podéis observar como no aparece el nombre del formulario frmEjemplo por ningún lado. Hacemos referencia a él mediante el comando Me. Dentro de la macro tenemos únicamente dos líneas de código.
La primera línea establece la propiedad Top del control lblCentrado. La propiedad Top indica la posición de la esquina superior izquierda del control respecto el borde superior del formulario. Para que quede centrado utilizamos la propiedad del formulario WindowHeight, que nos indica la altura total del formulario. Para situar el control en el centro, fijamos la propiedad Top del control con un valor igual a la mitad de la altura del formulario, es decir, la mitad de WindowHeight.
La segunda línea establece la propiedad Left del control lblCentrado. La propiedad Left indica la posición de la esquina superior izquierda del control respecto el borde izquierdo del formulario. Para que quede centrado utilizamos la propiedad del formulario WindowWidth, que nos indica la anchura total del formulario. Para situar el control en el centro, fijamos la propiedad Left del control con un valor igual a la mitad de la anchura del formulario, es decir, la mitad de WindowWidth.

Si introducimos este código el control quedará cerca del centro del formulario, pero no exactamente en el centro. Eso es debido a que las propiedades Top y Left toman como referencia la esquina superior izquierda del control para situarlo en el formulario. Para corregir esto, haremos que la propiedad Top tome el mismo valor que antes, pero quitándole la mitad de lo que mide de altura el el control. Para corregir la parte del Left, hacemos que tome el mismo valor que antes, pero quitándole la mitad de la anchura del control. El código quedaría de la siguiente manera:

Private Sub Form_Resize()
  Me.lblcentrado.Top=Me.WindowHeight/2-Me.lblcentrado.Height/2
  Me.lblcentrado.Left=Me.WindowWidth/2-Me.lblcentrado.Width/2
End Sub

Pero si introducimos este código, puede darse el caso en que reduzcamos tanto la ventana que Me.WindowHeight sea más pequeño de Me.lblCentrado.Height y la propiedad Top tome valores negativos. Esto no ocasionará un error en la ejecución del código (lo mismo para la propiedad Left). Para solventar esto, debemos controlar la ejecución del código con un If de tal manera que, si el formulario toma un tamaño que ocasiona valores negativos para las propiedades Top y Left, el código no sea ejecutado. En el caso extremo, el código quedaría finalmente de la siguiente manera:


Private Sub Form_Resize()
  If Me.WindowHeight/2-Me.lblcentrado.Height/2>=0 Then
    Me.lblcentrado.Top=Me.WindowHeight/2-Me.lblcentrado.Height/2
  End If

  If Me.WindowWidth/2-Me.lblcentrado.Width/2>=0 Then
    Me.lblcentrado.Left=Me.WindowWidth/2-Me.lblcentrado.Width/2
  End If
End Sub

De esta manera logramos tener un control situado justo en el centro de un formulario de Access. Ahora solo se debe adaptar el código a las necesidades particulares de cada uno.

Cómo habilitar la pestaña Programador del Ribbon

18 julio, 2012

Queremos mostrar la pestaña Programador en el Ribbon (Cinta de Opciones) en Excel. Ello nos ofrecerá nuevas acciones a realizar (abrir el editor de VBA, añadir controles al libro, gestionar expansiones,...) que nos darán pie a sacarle el máximo partido a la aplicación. El proceso para el resto de aplicaciones del paquete de Office es el mismo. Es por ello que solo se mostrará como hacerlo en Excel. También comentar que la versión de Microsoft Office es la de 2007.

Para mostrar la pestaña Programador realizaremos los siguientes pasos:


1. Hacer clic sobre el botón de Office que aparece en la parte superior izquierda de la aplicación.


2. Hacemos clic sobre el botón Opciones de Excel que nos aparece abajo a la derecha del menú que nos acaba de aparecer.


3. En la ventana que nos aparece nada más entrar, deberemos marcar la casilla que dice Mostrar ficha de Programador en la cinta de opciones. Pulsaremos Aceptar y ya tendremos visible nuestra pestaña Programador.