¡Saludos!
Tengo las siguientes macros en mi libro de trabajo:
Submacro3()
Establecer cmd = CreateObject(«FXBlueLabs.ExcelCommand»)
strResult = cmd.SendCommand(«44509204», «VENDER», «s=EURUSD|v=1000», 5)
Finalizar sub
Submacro1()
Establecer cmd = CreateObject(«FXBlueLabs.ExcelCommand»)
strResult = cmd.SendCommand(«44509204», «COMPRAR», «s=EURUSD|v=1000», 5)
Finalizar sub
Submacro2()
Establecer cmd = CreateObject(«FXBlueLabs.ExcelCommand»)
strResult = cmd.SendCommand(«44509204», «CIERRE SÍMBOLO», «s=EURUSD», 5)
Finalizar sub
Subworksheet_change (objetivo ByVal como rango)
Establecer objetivo1 = Rango («P24»)
Establecer objetivo 2 = rango («P25»)
Si target1.Value = «COMPRAR» Entonces
Si objetivo2.Valor = «0» Entonces
Llamar Macro1
Terminara si
Terminara si
Si objetivo1.Valor = «0» Entonces
Si objetivo2.Valor = «0» Entonces
Llamar a Macro2
Terminara si
Terminara si
Si objetivo1.Valor = «0» Entonces
Si target2.Value = «VENDER» Entonces
Llamar Macro3
Terminara si
Terminara si
Si objetivo1.Valor = «0» Entonces
Si objetivo2.Valor = «0» Entonces
Llamar a Macro2
Terminara si
Terminara si
Finalizar sub
Todo va bien aquí:
Cuando = COMPRAR = EN COMERCIO
Cuando = 0 = SIN COMERCIO
para COMPRAR en P24
Cuando = vender = EN COMERCIO
Cuando = 0 = SIN COMERCIO
de VENTA en P25
Cuando = 0 en cualquier celda, todos los trabajos están cerrados.
He creado una lista desplegable que cambia los valores en una celda, por ejemplo:
Una lista desplegable:
EUR USD / EURGBP / USDJPY… digamos celda R21
Otra lista desplegable:
1000/2000/3000… (volumen = tamaño del lote) por ejemplo celda R22
Quiero seleccionar, digamos, el valor del lote en un menú desplegable en Excel 3000 (o algún otro valor)…
Cuando se activa el comercio, el lote debe ser 3000. Necesito lo mismo para el segundo menú desplegable de divisas
EURUSD / EURGBP / USDJPY…
Es decir, cómo editar una macro para realizar una acción basada en un cambio en el texto seleccionado y valores numéricos en celdas específicas en Excel. No puedo enviarte el archivo .xlsm aquí para que quede más claro.
Estoy publicando una macro de ejemplo que hace exactamente eso, pero no pude descifrarlo cuando traté de transferirlo a un libro de trabajo y reorganizar mi macro, no funcionó… Aquí hay un ejemplo:
Public Sub PlaceTrade()
‘ Obtener los valores de las celdas nombradas en la hoja de trabajo
strCuenta = Me.Rango(«NúmeroCuenta»).Valor
strSymbol = Me.Rango(«TradeSymbol»).Valor
strCommand = Me.Range(«TradeDirection»).Valor
vVolume = Me.Range(«TradeVolume»).Valor
vPrecioEntrada = Me.Rango(«PrecioEntrada»).Valor
‘ Comprueba que los valores son válidos
Si strSymbol = «» Entonces
MsgBox «¡El símbolo comercial no puede estar en blanco!»
Sal de debajo
Terminara si
Si vVolume < 1 Entonces
MsgBox «El volumen no es válido (debe ser un tamaño comercial como 10000, no un número de lote como 0.10)»
Terminara si
‘ Construir los parámetros que se envían para la orden comercial: símbolo y volumen
strParameters = «s=» & strSymbol & «|v=» & vVolume
Seleccionar caso strCommand
Caso «BUYLIMIT», «BUYSTOP», «SELLLIMIT», «SELLSTOP»
strParameters = strParameters & «|price=» & vEntryPrice
Fin de la selección
‘Tiempo de espera en segundos
lTiempo de esperaSegundos = 5
‘ Cree el objeto FXBlueLabs.ExcelCommand y envíe el comando
Establecer cmd = CreateObject(«FXBlueLabs.ExcelCommand»)
strResult = cmd.sendCommand(strAccount, strCommand, strParameters, lTimeoutSeconds)
‘Comprueba el resultado
Si InStr(strResult, «ERR:») = 1 entonces
MsgBox strResult
De lo contrario
MsgBox «¡Pedido realizado!»
Terminara si
Finalizar sub
Símbolo de cierre público sub ()
‘ Obtener los valores de las celdas nombradas en la hoja de trabajo
strCuenta = Me.Rango(«NúmeroCuenta»).Valor
strSymbol = Me.Rango(«TradeSymbol»).Valor
‘ Comprueba que los valores son válidos
Si no es numérico (strAccount), entonces
MsgBox «¡El número de cuenta debe ser numérico!»
Sal de debajo
Terminara si
Si strSymbol = «» Entonces
MsgBox «¡El símbolo de cierre no puede estar en blanco!»
Sal de debajo
Terminara si
‘ Construye los parámetros que se envían para la orden comercial: símbolo
strParameters = «s=» & strSymbol
‘Tiempo de espera en segundos
lTiempo de esperaSegundos = 5
‘ Cree el objeto FXBlueLabs.ExcelCommand y envíe el comando
Establecer cmd = CreateObject(«FXBlueLabs.ExcelCommand»)
strResult = cmd.sendCommand(strAccount, «CLOSESYMBOL», strParameters, lTimeoutSeconds)
‘Comprueba el resultado
Si InStr(strResult, «ERR:») = 1 entonces
MsgBox strResult
De lo contrario
MsgBox «Todas las operaciones y órdenes pendientes cerradas para » & strSymbol & «!»
Terminara si
Finalizar sub