Funciones de Excel

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Avatar de Usuario
frp64
Mensajes: 18
Registrado: 20 Jul 2010, 09:40
Ubicación: Canarias

Funciones de Excel

Mensaje por frp64 »

Buenas, llevo un par de años utilizando las funciones de Excel dentro del entorno Autoit y me gustaría compartir las que he utilizado. Aparte de las funciones integradas dentro de la libreria 'Excel.au3'.

Código: Seleccionar todo

#include <Escel.au3>

$oExcel = _ExcelBookNew(1)
Una vez hemos creado la variable objeto $oExcel, que referencia a un nuevo fichero Excel, podemos definir una serie de funciones:

Código: Seleccionar todo

$oExcel.ActiveSheet.Cells(15, 1).Font.Bold = True ; Configura la celda de la fila 15 columna 1, de la hoja activa, con la fuente en negrita
$oExcel.ActiveSheet.Columns("A:B").EntireColumn.AutoFit ; Justifica horizontalmente las columnas A y B
$oExcel.ActiveSheet.Rows("19:21").EntireRow.AutoFit ; Justifica horizontalmente de la fila 19 a la 21
$oExcel.ActiveSheet.Columns("A:A").EntireColumn.Hidden = True ; Oculta la columna A
$oExcel.ActiveSheet.Columns("A:A").ColumnWidth = 20 ; Configura la anchura de la columna A
$oExcel.ActiveSheet.Rows("27:27").RowHeight = 20 ; Configura la altura de la fila 27
$oExcel.Activesheet.Cells(31,4).Formula = "=A31+B31" ; Suma el valor de la celda A31 con la B31 y almacena el resultado en la celda de fila 31 y columna 4
$oExcel.Application.Run ("Nombre de la macro") ; Ejecuta una macro dentro de Excel
$oExcel.ActiveSheet.Cells(1, 2).Interior.ColorIndex = 20 ; Modifica el color de fondo de la celda situada en la fila 1 y columna 2
$oExcel.ActiveSheet.Cells(1, 2).Borders.LineStyle = 1 ; Configura el borde de la celda situada en la fila 1 y columna 2
$oExcel.ActiveWorkBook.ActiveSheet.UsedRange.Rows.Delete ; Borra todo el rango de filas de la hoja activa
$oExcel.ActiveWorkBook.ActiveSheet.UsedRange.Rows.Count ; Identifica el número de filas que tenemos definida en la hoja
$oExcel.Activesheet.Range("A:O").Wraptext = True ; Aplica la propiedad 'wrappear' a las columnas de la A a la O
$oExcel.ActiveSheet.Range ("O:P").EntireColumn.Delete ; Borra las columnas O y P de la hoja activa
$oExcel.ActiveSheet.Cells (1, 5).Font.Color = 32768 ; Modifica el color de la fuente de la celda de la fila 1 y columna 5
$oExcel.ActiveSheet.Range("A1:C100").Sort($oExcel.ActiveSheet.Range("A1"), 1) ; Ordena el rango que va desde la fila 1 a la 100 y columnas de la A a la C por la columna 1 (A1) en formato Ascendente (1)
$oExcel.ActiveSheet.Range("A1:C100").Sort($oExcel.ActiveSheet.Range("A1"), 2) ; Idem al anterior en formato descendente (2)
Saludos
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Funciones de Excel

Mensaje por BasicOs »

Gracias por el aporte, si tuvieras otras para el opencalc o librecalc no estarían mal tampoco ;)
Salu22:)
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Funciones de Excel

Mensaje por joana »

Hola frp64,

Me parece genial tu aporte, es como leer algo que ya sabes por el VBA de Excel y aplicado en AutoIt ves que es más del lo mismo.

Es más yo que estoy todo el día dándole al excel lo veo indispensable aprenderse la librería de Excel.au3.

Muchas Gracias,

frp64 me podrías dar alguna idea para la que tener que usar AutoIt y no usar VBA?

:smt040 AutoIt cada vez me gusta más. Habrá que dedicarle 1000 horas.
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Funciones de Excel

Mensaje por joana »

Hola,

¿Como se puede mover el scroll bar del excel desde autoit?

¿Alguien lo sabe?
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Funciones de Excel

Mensaje por Chefito »

Te dejo dos formas (hay más).

Código: Seleccionar todo

$oExcel = ObjCreate("Excel.Application")                   ; Create an Excel Object
With $oExcel
	.Visible = 1                                        ; Let Excel show itself
	.WorkBooks.Add                                      ; Add a new workbook
	.Worksheets(1).ScrollArea = "A50"		;mueve hasta la celda que le indiques
;~     .ActiveWindow.ScrollColumn = 50			;mueve hasta la columna que le indiques
;~     .ActiveWindow.ScrollRow = 50			;mueve hasta la fila que le indiques
EndWith
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Funciones de Excel

Mensaje por joana »

Chefito escribió:Te dejo dos formas (hay más).

Código: Seleccionar todo

$oExcel = ObjCreate("Excel.Application")                   ; Create an Excel Object
With $oExcel
	.Visible = 1                                        ; Let Excel show itself
	.WorkBooks.Add                                      ; Add a new workbook
	.Worksheets(1).ScrollArea = "A50"		;mueve hasta la celda que le indiques
;~     .ActiveWindow.ScrollColumn = 50			;mueve hasta la columna que le indiques
;~     .ActiveWindow.ScrollRow = 50			;mueve hasta la fila que le indiques
EndWith
Saludos.
Funciona muy bien! Muchas gracias. :smt041

¿Hay alguna forma de ver en ayuda las distintas propiedades, métodos, atributos del objeto excel?

Ha espera... es usando la ayuda de excel. Juju que bien, ahora voy a poder hacer cosillas interesantes. :smt038
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Funciones de Excel

Mensaje por joana »

Código: Seleccionar todo

Global $oExcel = ObjCreate("Excel.Application")

$oExcel.Visible = 1
$oExcel.WorkBooks.Add

HotkeySet("^{UP}", "up_excel")
HotkeySet("^{DOWN}", "down_excel")

While 1
	Sleep(1000)
WEnd

Func up_excel()
	WinActivate("Microsoft Excel - ExcelD3.xls")
	$oExcel.WorkSheet(1).ScrollArea = "A1"
EndFunc

Func down_excel()
	WinActivate("Microsoft Excel - ExcelD3.xls")
	$oExcel.WorkSheet(1).ScrollArea = "A79"
EndFunc
¿Porque no funciona?

¡Mundo Cruel!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Funciones de Excel

Mensaje por Chefito »

Porque te falta la "s" cuando llamas a la hoja del libro. Tu pones WorkSheet(1) y es WorkSheets(1).

Pon más atención en esas cosas :smt002 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Funciones de Excel

Mensaje por joana »

:smt023 Genial! Funciona!

Gracias!
fresymet
Mensajes: 13
Registrado: 26 May 2013, 12:38

Re: Funciones de Excel

Mensaje por fresymet »

Estaría de lujo saber como se puede leer el contenido de la celda como copiar y pegar de una a otra y como escribir.

seria perfecto para lo que estoy haciendo.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Funciones de Excel

Mensaje por Chefito »

Todas esas funciones ya están creadas en autoit. Mira en la ayuda la udf>Excel Management. Son todas las funciones que empiezan por _Excel_ . Busca y encontrarás :smt024 :smt002 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder