jueves, 27 de octubre de 2016

Excel – Gráficos estáticos

En algunas ocasiones necesitamos compartir solo cierta información.Pero existe el inconveniente de las alertas sobre el origen de datos (link a data de otro libro).Puede desear romper el vínculo entre un gráfico y los datos. Tal vez el gráfico fue pegado desde otro libro y aparece el cuadro de diálogo (“desea actualizar los vínculos a otro libro”)
Puede copiar el gráfico de alguna de estas formas (Si no necesita mantener el link).
-Copiar y pegar una imagen del gráfico (use la herramienta de captura “camarita”)
-La otra opción sería colocarse sobre c/u de las series del gráfico y con el cursor en la barra de fórmulas presionar [Tecla F9] …Esto convertirá las series en estáticas.
*No siempre podrá usar la opción de imagen vinculada ya que necesita el origen (datos) para actualizar (Tal vez no quiere compartir todo el libro…solo el gráfico)
*Las imágenes vinculadas le podrían ahorrar tiempo al crear presentaciones linkeadas a un archivo Excel o Word.



Eliminar los archivos recientes con VBA - Excel Macro:

1. Presione ALT + F11 (se abrirá la ventana… Microsoft Visual Basic for Applications)
2. Inserte un módulo (clic derecho sobre algún elemento del Proyecto), y pegue el siguiente código.
Sub BorrarMisExcelsRecientes()
Dim i As Integer, thedlls As String, therecenname As String, GetYisusRecentfilefullPath As String, LAstPArtedeCadena() As String, cadenaFinalFullName As String
'lista de archivos a borrar unidos a \ separador de ruta
thedlls = "\libro1.xls\l2.xls\libro3.xls"
For i = 1 To Application.RecentFiles.Count
GetYisusRecentfilefullPath = Application.RecentFiles.Item(i).Name
LAstPArtedeCadena = Split(Application.RecentFiles.Item(i).Name, "\")
'obtengo el ultimo del array
cadenaFinalFullName = LAstPArtedeCadena(UBound(LAstPArtedeCadena))
'Comparo si hay coincidencia
If InStr(GetYisusRecentfilefullPath, cadenaFinalFullName) > 0 Then
Application.RecentFiles.Item(i).Delete
End If
Next
End Sub



Excel - Unir Rangos en Excel VBA Macro

A veces podría ser útil hallar el rango de celdas usadas en una columna (Formulas y constantes).
-Celdas con formulas
-Celdas con valores constantes
-Celdas con fórmulas -> Rango (Celdas). SpecialCells(xlCellTypeFormulas)
-Celdas con valores constantes-> Rango (Celdas). SpecialCells(xlCellTypeConstants)

Sub RangoTest
Dim rng as range,rng1 as range
Set rng = Columns(5)
'Selecting data and formulas…
‘identificamos el rango de constants y lo unimos con el rango de fórmulas x)
Set rng1 = Union(rng.SpecialCells(xlCellTypeConstants), _
rng.SpecialCells(xlCellTypeFormulas))
‘Mostramos el mensaje con las celdas que buscábamos
Msgbox rng1.address
End Sub

Excel – Excel VBA Macro Trabajar con libros

Como referirse al objeto libro de trabajo:

-Libro Activo – Activeworkbook
-Libro con el código en ejecución –Thisworkbook
-Libro N por número de índex en la colección de libros 
workbooks(1) ,workbooks(N+1)…

-Libro X por nombre en la colección de libros
workbooks(“Libro1.xls”) ,workbooks(“Libro2.xlsx”)…


Ejemplos:
Sub Prueba1()
MsgBox "El nombre es " & ActiveWorkbook.Name
‘si tienes varios libros puedes obtener el nombre asi…
MsgBox "El nombre es " & workbooks(1).Name
MsgBox "El nombre es " & workbooks(2).Name
‘Si tienes un solo libro abierto obtendrás un error..porque no existe el libro 2
End Sub

‘cerrar un libro sin guardar
Sub Prueba2()
ActiveWorkbook.Close false
End Sub
‘cerrar el libro guardando cambios
Sub prueba3()
ActiveWorkbook.Close True
End Sub

‘guardar como en otra ruta…
Sub prueba4()
Dim s_name as string,ruta as string
Ruta=” C:\”
s_name=”VentasNuevo.xls”
ActiveWorkbook.SaveAs ruta & s_name
End Sub


lunes, 24 de octubre de 2016

Office Apps Excel , Complementos Excel

Office Apps:

 Son aplicaciones web hospedadas en un control de explorador  y se ejecutaran en el ámbito de la aplicación de Office. Permiten acceder a datos del documento y conectarse a  servicios web .Emplea HTML5, JavaScript, CSS3, XML. La App  no se instala en el equipo local que ejecuta la aplicación host de Office; más bien se hospedara en un servidor web.

Implementar Complemento de Office por medio de Napa.

Esto es lo que necesita para hacerlo:
  • Una cuenta de Microsoft
  • La dirección URL de la aplicación web Herramientas de desarrollo de Napa Office 365
Crear un complemento básico
  1. Abra la aplicación web Herramientas de desarrollo de Napa Office 365 en el explorador.
  2. Elija el icono Agregar nuevo proyecto.
Nota: el icono Agregar nuevo proyecto aparece solo si ha creado otros proyectos. Si se trata de su primer proyecto, vaya directamente al paso siguiente
3.     Elija el tipo de complemento que desea crear, dele nombre al proyecto y seleccione el botón Crear.

martes, 4 de octubre de 2016

Migrar Soluciones VBA a Visual Studio Tools Office:

Migrar Soluciones VBA a Visual Studio Tools Office:

 Para poder actualizar un desarrollo VBA a VSTO debe realizar acciones relacionadas a temas de compatibilidad e instalación. Las soluciones VBA no cuentan con instalador incorporado es probable que tenga un proyecto en inno Setup. EL proyecto Inno setup debe realizar las siguientes actividades.
 
-Copiar los archivos de Código (Complementos para Excel, plantillas, dlls, Base de datos a un directorio) 

-Registro de Windows con Claves para cargar complementos al iniciar el office Software\Microsoft\Office\12.0\Excel\Add-in Manager , Excel 2007 Software\Microsoft\Office\15.0\Excel\Add-in Manager , Excel 2013 -Cargar ensamblados COM Addin.Se necesita crear la siguiente clave HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\MiAddinYisus 
Manifest: file:///C:\Program Files (x86)\My Excel Tools\MisAddines\ExcelAddIn.vsto|vstolocal

Tener en cuenta el Framework de creación del proyecto VSTO y la máquina de destino (Framework de desarrollo - los requerimientos en la pc destino .Si no cuenta con lo necesario no cargara el ensamblado)…No olvidar no cargara!!!!.. 

 -Atributo PtrSafe en los addines considera que las instrucciones Declare sin el atributo PtrSafe no son compatibles con la versión de 64 bits de Office. 
https://msdn.microsoft.com/…/off…/ee691831(v=office.14).aspx 

 -Puede exponer los métodos de las dlls VSTO para invocarlos desde el VBA y puede correr una macro desde el VSTO. 

-Cambios del VBA entre versiones del Office. Por ejemplo (en gráficos) el método Chart.Fullseriescolecction(index) trabaja correcto en Excel 2013 …Pero arroja un error en Excel 2007 -Tendria que usar el método chart.seriescollection para “forzar la compatibilidad” en Excel. 

-Innosetup (-no estaria funcionando en Windows7 del todo bien siempre) – se podría crear instaladores híbridos corriendo  inno setup-InstallShield en máquina virtual.

viernes, 10 de febrero de 2012

VBA - EXCEL MACRO (BUSCAR FECHA)


  'VBA MACRO EXCEL  -  APPLICATION EXCEL MATH FUNCTION
  'BUSCAR FECHA VBA MATCH EXCEL - FIND DATE EXCEL RANGE
  'MEDIANTE ESTA MACRO RETORNARA LA FECHA BUSCADA EN UN RANGO DE  CELDAS SELECCIONADAS

  Sub MatchBuscarFecha()

       Dim TheDate As Date
       Dim Index As Variant

       TheDate = #1/1/2000#

  'Hallar el item entre la colección de celdas.....trabaja igual buscando entre los elementos de
 'un array el primer argumento es el elemento a buscar "dato" , el segundo argumento sera el array de datos()

'Aqui asigno como segundo argumento la seleccion de celdas
' pero podrias colocar cualquier rango --> Range("A1:A500") por ejemplo

       Index = Application.Match(CLng(TheDate), Selection, 0)
.
       'Mostrar el dato encontrado si existe

       If IsError(Index) Then
           MsgBox "No encontrado"
       Else
           MsgBox "item: " & Index & " celda : " & Selection.Cells(Index).Address
       End If

   End Sub