Post by manbat42 » 30 Aug 2019, 11:15
As minhas saudações para todos.
Estou a tentar desenvolver um pequeno script que pretende, o seguinte:
Depois de ter clicado num CommandButton (ActiveX) que coloquei numa folha de Excel, é despoletada uma Macro que verifica dados existentes numa determinada célula da folha de Excel e, se o conteúdo da célula o permitir, chama um executável feito em AutoHotKey.
Este executável desenvolve algumas operações na folha de Excel e, antes de terminar a execução, era minha intenção clicar, automaticamente, no CommandButton para executar, novamente, a macro.
O meu problema é que não sei como identificar o CommandButton nem que comando(s) usar para clicar nele a partir do script.
Alguém pode ajudar?
Code: Select all
#NoEnv
;#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance off
SetTitleMatchMode, 2
caminho := A_ScriptDir
Sleep, 200
ficheiro := "Experiencia - Excel"
WinWait, %ficheiro%,
IfWinNotActive, %ficheiro%, , WinActivate, %ficheiro%,
WinWaitActive, %ficheiro%,
Xl := ComObjActive("Excel.Application")
StatusBarWait , Pronto
linha := Xl.Range("D1").Value
StringLeft, linha, linha, (StrLen(linha)-7)
celula := coluna . linha
coluna:= "C"
celula := coluna . linha
Xl.Range(celula).Value := mensagem
Sleep, 100
Xl.Range("D1").Value ++
ControlClick, ("FAZER"), %ficheiro% ;Doesn't work
SendMessage, 0x0111,CommandButton.("FAZER") ;Doesn't work
Xl.ActiveSheet.OLEObjects.CommandButton("FAZER").Click() ;Doesn't work - Error
Em anexo o ficheiro excel que uso para a experiência.
Toda a ajuda é apreciada.
Saúde e bem-estar para todos.
- Attachments
-
- Experiencia.ahk
- (768 Bytes) Downloaded 84 times
-
[The extension xlsm has been deactivated and can no longer be displayed.]
As minhas saudações para todos.
Estou a tentar desenvolver um pequeno script que pretende, o seguinte:
Depois de ter clicado num CommandButton (ActiveX) que coloquei numa folha de Excel, é despoletada uma Macro que verifica dados existentes numa determinada célula da folha de Excel e, se o conteúdo da célula o permitir, chama um executável feito em AutoHotKey.
Este executável desenvolve algumas operações na folha de Excel e, antes de terminar a execução, era minha intenção clicar, automaticamente, no CommandButton para executar, novamente, a macro.
O meu problema é que não sei como identificar o CommandButton nem que comando(s) usar para clicar nele a partir do script.
Alguém pode ajudar?
[code]
#NoEnv
;#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance off
SetTitleMatchMode, 2
caminho := A_ScriptDir
Sleep, 200
ficheiro := "Experiencia - Excel"
WinWait, %ficheiro%,
IfWinNotActive, %ficheiro%, , WinActivate, %ficheiro%,
WinWaitActive, %ficheiro%,
Xl := ComObjActive("Excel.Application")
StatusBarWait , Pronto
linha := Xl.Range("D1").Value
StringLeft, linha, linha, (StrLen(linha)-7)
celula := coluna . linha
coluna:= "C"
celula := coluna . linha
Xl.Range(celula).Value := mensagem
Sleep, 100
Xl.Range("D1").Value ++
ControlClick, ("FAZER"), %ficheiro% ;Doesn't work
SendMessage, 0x0111,CommandButton.("FAZER") ;Doesn't work
Xl.ActiveSheet.OLEObjects.CommandButton("FAZER").Click() ;Doesn't work - Error
[/code]
Em anexo o ficheiro excel que uso para a experiência.
Toda a ajuda é apreciada.
Saúde e bem-estar para todos.