Luego, aunque tienes librerias para hacerlo en python a mi me resultaba mas rapido hacerlo en AUTOHOTKEY:
#Requires AutoHotkey v2.0
#SingleInstance force
SetTitleMatchMode(2)
CoordMode("ToolTip", "Window")
#x::ExitApp ; Win+X
Pause:

ause
time_sleep := 2000
; Crear objeto de aplicación de Excel
oExcel := ComObject("Excel.Application")
; Especificar ruta del archivo (ruta genérica)
ExcelFilePath := "C:\Ruta\archivo.xlsx"
; Hacer visible la aplicación de Excel
oExcel.Visible := true
; (Opcional) Activar la aplicación de Excel, en caso de requerir la instancia activa
oExcel := ComObjActive("Excel.Application")
; Abrir el libro de trabajo
oWorkbook := oExcel.Workbooks.Open(ExcelFilePath)
; Obtener la primera hoja del libro de trabajo (ajustar según sea necesario)
oSheet := oWorkbook.Sheets(1)
; Obtener el número de filas en la hoja
rowNum := oSheet.UsedRange.Rows.Count
; Iterar sobre cada fila
Loop rowNum
{
; Ignorar la primera fila (suponiendo que es el encabezado)
if (A_Index = 1)
continue
; Obtener valores de celdas
isin_val := oSheet.Range("C" . A_Index).Value
descrip_val := oSheet.Range("B" . A_Index).Value
introducido := oSheet.Range("F" . A_Index).Value
numero_val := oSheet.Range("D" . A_Index).Text
total_val := oSheet.Range("E" . A_Index).Value
fecha_val := oSheet.Range("A" . A_Index).Value
actionName := oSheet.Range("B" . A_Index).Value
if (numero_val >= 0)
type_op := "compra"
else
type_op := "venta"
; Si ya se ha introducido el valor, se omite la fila
if (introducido = "Si")
continue
; Activar la ventana de Google Chrome con el título "Cartera de valores - Google Chrome"
WinActivate("Cartera de valores - Google Chrome")
WinWaitActive("Cartera de valores - Google Chrome")
; Comprobamos si el valor existe
MouseClick("Left", 737, 243)
Sleep(time_sleep)
Send(actionName)
Sleep(time_sleep)
MouseClick("Left", 1138, 241)
Sleep(time_sleep)
thisColor := PixelGetColor(698, 296)
if (thisColor = 0x008800)
{
Sleep(time_sleep)
MouseClick("Left", 1129, 333) ; Click agrupación
Sleep(time_sleep)
MouseClick("Left", 748, 399) ; Click 100%
Sleep(time_sleep)
FoundX := 0
FoundY := 0
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenNueva.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen en la pantalla.")
}
Sleep(time_sleep)
if (type_op = "compra")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
MouseClick("Left", 752, 530) ; Click adquisición
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(numero_val) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
Sleep(time_sleep)
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
if (type_op = "venta")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
Send("t")
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 1250, 535) ; Clave origen
Sleep(time_sleep)
Send("1")
Sleep(time_sleep)
MouseClick("Left", 645, 611) ; Click títulos
Sleep(500)
Send(Abs(numero_val)) ; Nº títulos
MouseClick("Left", 998, 611) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
}
else
{
; Si el valor no existe, se crea uno nuevo
MouseClick("Left", 525, 374)
Sleep(time_sleep)
MouseClick("Left", 755, 280)
Send(isin_val)
Sleep(time_sleep)
MouseClick("Left", 757, 341)
Sleep(time_sleep)
Send(descrip_val)
Sleep(time_sleep)
MouseClick("Left", 961, 490) ; Click guardar
Sleep(time_sleep)
MouseClick("Left", 942, 415) ; Click nueva agrupación
Sleep(time_sleep)
MouseClick("Left", 757, 284) ; Click en la propiedad
Sleep(time_sleep)
Send("100")
Sleep(time_sleep)
MouseClick("Left", 962, 367) ; Click guardar propiedad
Sleep(time_sleep)
MouseClick("Left", 950, 406) ; Click nueva operación
Sleep(time_sleep)
if (type_op = "compra")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
MouseClick("Left", 752, 530) ; Click adquisición
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(numero_val) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
Sleep(time_sleep)
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
if (type_op = "venta")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
Send("t")
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 1250, 535) ; Clave origen
Sleep(time_sleep)
Send("1")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(Abs(numero_val)) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
}
}
; Cerrar el libro de trabajo y la aplicación de Excel
oWorkbook.Close()
oExcel.Quit()