Mejorando la Macro de copiar tablas de Access a Excel

abril 4, 2007

En un post anterior os mostramos como copiar tablas de Access a Excel de forma rapida, evitando los problemas de usar copiar y pegar.

La Macro funcionaba bien, pero puede mejorarse de forma relativamente sencilla para que sea mas reutilizable.

1) La primera mejora es añadir la Macro al libro de Macros Personal, para que este disponible siempre que utilicemos Excel. Sino sabéis como realizarlo os recomiendo que veáis este post del blog de JDL Excel.

2) Reemplazar la entrada manual de la ruta y el nombre Access, mediante una ventana de selección de ficheros. Reemplazamos la instrucción

InputBox(“¿Ruta y nombre del fichero Access?”)

por

Application.GetOpenFilename(“Access (*.mdb), *.mdb”, , “Seleccionar fichero Access”)

3) Reemplazar la entrada manual del nombre de la tabla o consulta por un selector que obtenga un listado de tablas y consultas disponibles. Esto implica la creación de un pequeño formulario y crear una lista de selección. Dada su complejidad y para no complicar este post, este punto lo trataremos en breve en otro post, cuando este publicado incluiremos un enlace.

*) El resultado final a falta de incorporar las mejoras del punto 3. El siguiente código dentro del libro de Personal:

‘==========================================
Public Sub Copiar_Tabla_Access()
  Dim oConexion As ADODB.Connection
  Dim rsTabla As ADODB.Recordset
  Dim sNombreTabla As String
  Dim sNombreAccess As String
  Dim i As Integer

  sNombreAccess = Application.GetOpenFilename( _
    “Access (*.mdb), *.mdb”, , “Seleccionar fichero Access”)

  sNombreAccess = InputBox(“¿Ruta y nombre del fichero Access?”)
  If sNombreAccess <> “” Then
    sNombreTabla = InputBox(“¿nombre de la tabla/consulta?”)
    Set oConexion = New ADODB.Connection
    oConexion.CursorLocation = adUseClient
    oConexion.Open “PROVIDER=Microsoft.Jet.OLEDB.4.0;” & _
                                “Data Source=” & sNombreAccess & “;”
    Set rsTabla = New ADODB.Recordset
    rsTabla.Open “Select * From [” & sNombreTabla & “]”, _
                         oConexion, _
                         adOpenStatic
    ActiveSheet.Cells.CopyFromRecordset rsTabla
    ActiveSheet.Rows(“1:1”).Insert Shift:=xlDown
    For i = 0 To rsTabla.Fields.Count – 1
      ActiveSheet.Cells(1, i + 1).Value = rsTabla.Fields(i).Name
    Next
    rsTabla.Close
    oConexion.Close
    Set rsTabla = Nothing
    Set oConexion = Nothing
  End If
End Sub
‘==========================================


Copiar datos de Access a Excel de forma rápida

abril 3, 2007

Muchas veces tenemos la necesidad de copiar datos de una tabla o consulta Access a una hoja Excel. Este paso es sencillo, simplemente copiar y pegar. Copiamos los datos en Access y los pegamos en Excel, pero si el tamaño/cantidad de datos es grande esta operación puede dejar literalmente “tostado” nuestro ordenador durante varios minutos. Los minutos en los que se queda “tostado” variaran dependiendo de la cantidad de datos y la memoria RAM que tenga nuestro ordenador.

Afortunadamente existe una mejor solución para copiar datos de una tabla o consulta Access a Excel, es un poco más compleja, pero no mucho más. Vamos a crear una Macro y usar la función de VBA “Cells.CopyFromRecordset” para copiar tablas y consultas de Access en segundos.

Pasos:

1) Abrir Excel

2) Abrir el editor de Macros (Pulsar ALT+F11)

3) Copiar y pegar la siguiente Macro:


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo el post en este enlace.
——————————————————–


¿Por qué Excel cambia el formato de los gráficos?

abril 1, 2007

Este es un misterio que no he logrado resolver, pero al menos he logrado paliar sus efectos.

Una de las soluciones que he utilizado es programar una Macro que genere o aplique a un grafico existente un formato específico. Esta opción no es sencilla y sigue sin evitar el problema (salvo que detectemos cuando hay algún cambio y volvamos a ejecutar la Macro de forma automática, lo cual tampoco es sencillo).

Hábilmente podemos encontrar una solución muy sencilla …


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Sacando partido a la funcion SUMAPRODUCTO de EXCEL

marzo 16, 2007

La función SUMAPRODUCTO de Microsoft Excel es bastante desconocida, ciertamente no aporta un valor diferencial, no permite hacer cosas imposibles de realizar con otras fórmulas, pero simplifica de forma significativa como realizar algunos cálculos reduciendo el número de pasos necesarios.


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Tabla de traducción de fórmulas Excel en español a inglés

marzo 3, 2007

Cuando trabajas con Microsoft Excel aprendes a utilizar un montón de fórmulas para el trabajo del día a día. Sin embargo, las fórmulas Excel no diferentes dependiendo del idioma en el que tengamos instalado Microsoft Excel, esto permite a los usuarios tener fórmulas mas intuitivas en su idioma, pero en contrapartida si nos cambian de idioma la aplicación Microsoft Excel estaremos totalmente perdidos, ya que no será válida ninguna de las fórmulas que conocemos.


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Ocultando valores en Excel

febrero 11, 2007

Seguramente más de una vez hemos intentado establecer un formato para los números en una hoja Excel. Es bastante sencillo realizar esta tarea simplemente con las opciones que nos permite Excel por defecto en las opciones de formato de números…….


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Resolviendo problemas con números almacenados como texto en Excel usando “Pegado especial…”

febrero 7, 2007

Determinados ficheros Excel contienen números almacenados como texto. Al estar almacenados los números como texto, las formulas de Excel los tratarán como si fueren una combinación de caracteres ignorándolos para las formulas, en el ejemplo el rango “B2:B4” es ignorado y el resultado de la suma (Celda “B5”) es 0.

 Ejemplo formato numero en Excel
Una manera sencilla de convertir los números almacenados como texto en números en Excel es…………


——————————————————–

Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.

——————————————————–