VBA SELECIONAR UM ARQUIVO DA JANELA.
Se alguem poder me ajudar. Caso alguem quera o codigo eu posso estar postando aki.
Com o código fonte podemos entender o que se passa.
Citação:
Private Declare Function FindWindow Lib [Ô]user32[Ô] Alias [Ô]FindWindowA[Ô] (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib [Ô]user32[Ô] (ByVal hwnd As Long) As Long
Private Declare Function PostMessage Lib [Ô]user32[Ô] Alias [Ô]PostMessageA[Ô] (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetClassName Lib [Ô]user32[Ô] Alias [Ô]GetClassNameA[Ô] (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function ShowWindow Lib [Ô]user32[Ô] (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1
Const WM_CLOSE = &H10
Const gcClassnameMSWord = [Ô]OpusApp[Ô]
Const gcClassnameMSExcel = [Ô]XLMAIN[Ô]
Const gcClassnameMSIExplorer = [Ô]IEFrame[Ô]
Const gcClassnameMSVBasic = [Ô]wndclass_desked_gsk[Ô]
Const gcClassnameNotePad = [Ô]Notepad[Ô]
Const gcClassnameMyVBApp = [Ô]ThunderForm[Ô]
Sub Mandar_email()
[ô]Macro feita para configrar busca valores.
[ô]Criado por Victor Almada de Hollanda.
[ô]Contato victorah@globo.com ou 93850315
Dim lHandle As Long
Dim appIE As InternetExplorer
Dim UserN As Variant, PW As Variant
Dim Element As HTMLButtonElement
Dim btnInput As MSHTML.HTMLInputElement
Dim ElementCol As MSHTML.IHTMLElementCollection
Dim Link As MSHTML.HTMLAnchorElement
Dim strCountBody As String
Dim TextIWant As String
Dim oHTML1 As IHTMLElement
[ô]variaveis constantes.
test1 = 0
linha2 = 0
Linha = 2
Pref1 = [Ô]https://login.globo.com/login/1[Ô]
Set oWeb = CreateObject([Ô]InternetExplorer.Application[Ô])
oWeb.navigate Pref1
[ô]oWeb.FullScreen = True
oWeb.Visible = True
Do Until oWeb.readyState = READYSTATE_COMPLETE
Loop
[ô]Comando para pagina de erro de certificado
Set oHTML = oWeb.document
cont1 = 0
b = [Ô]O Internet Explorer não pode exibir a página da Web[Ô]
c = [Ô]Navegação Cancelada[Ô]
d = [Ô]404 Not Found [Ô]
For Each oHTML1 In oHTML.all
If oHTML1.innerText = b Or oHTML1.innerText = c Then
oWeb.Application.Quit
Linha = Linha + 1
MsgBox ([Ô]Erro na pagina[Ô])
[ô]GoTo Fim
ElseIf oHTML1.innerText = d Then
oWeb.Application.Quit
Linha = Linha + 1
MsgBox ([Ô]Fora do AR[Ô])
[ô]GoTo Fim
End If
If cont1 = 3 Then
Exit For
End If
cont1 = cont1 + 1
Next
[ô]fim do codigo para o erro de certificado. O codigo acima eu peguei de uma outra macro q fiz q tinha erro de certificado, porem, serve para caso a internet esteja fora.
[ô]Metodo de login no site.
oWeb.document.all([Ô]login-passaporte[Ô]).innerText = [Ô]nomedoemail[Ô] [ô]Login
oWeb.document.all([Ô]senha-passaporte[Ô]).innerText = [Ô]senha[Ô] [ô]Senha
[ô]Aqui entro no meu email.
Set ElementCol = oWeb.document.getElementsByTagName([Ô]INPUT[Ô])
For Each btnInput In ElementCol
If btnInput.Name = [Ô]botaoacessar[Ô] Then
btnInput.Click
Exit For
End If
Next btnInput
Do While oWeb.Busy
DoEvents
Loop
Do Until oWeb.readyState = READYSTATE_COMPLETE
Loop
Set ElementCol = oWeb.document.getElementsByTagName([Ô]a[Ô])
For Each Link In ElementCol
If Link.innerHTML = [Ô]Escrever e-mail[Ô] Then
Link.Click
Exit For
End If
Next Link
Do Until oWeb.readyState = READYSTATE_COMPLETE
Loop
[ô]Aparti daqui fecho a entra do meu email e selecao de escrever mensagem.
Set ElementCol = oWeb.document.getElementsByTagName([Ô]INPUT[Ô])
For Each btnInput In ElementCol
If btnInput.Name = [Ô]file0[Ô] Then
11:
btnInput.Click [ô]Aqui ele dentro do meu email ele clica em Anexar(o ideal era adicionar o caminho mas n tem no codigo HTML)
[ô]Esse codigo serve pra buscar a jane de anexar arquivo, aprincipio ela nao tem mt serventia porem depois vou pescisar disso.
Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
Ret = InputBox([Ô]Enter the exact window title:[Ô] + Chr$(13) + Chr$(10) + [Ô]Note: must be an exact match[Ô])
WinWnd = FindWindow(vbNullString, Ret)
If WinWnd = 0 Then MsgBox [Ô]Couldn[ô]t find the window ...[Ô]: Exit Sub
ShowWindow WinWnd, SW_SHOWNORMAL
lpClassName = Space(256)
RetVal = GetClassName(WinWnd, lpClassName, 256)
MsgBox [Ô]Classname: [Ô] + Left$(lpClassName, RetVal)
[ô]esse codigo so busca a chanela, mas queria tambem acrecentar nele uma forma de busca o arquivo,
[ô]que tem dentro dessa janela(janela de anexar arquivo). O que quero mesmo seria colocar o [Ô]Nome do arquivo[Ô]
[ô]ou selecionar o arquivo e clicar em abrir.
[ô]pra baixo ainda tem mas codigo mas so poderei adcionar depois que terminar essa parte.
GoTo 11
Exit For
End If
Next btnInput
Do While oWeb.Busy
DoEvents
Loop
End Sub
Coloquei como sitacao n achei como colocar por codigo