Eu tenho uma planilha com a macro abaixo. Ela verifica o mapa e digita os lotes dos produtos.
Porém, queria fazer uma planilha que fizesse a operação como descrevi. Tem um campo com o código onde digito o mapa que ela vai usar de base. Na planilha digito os códigos lá.
Na primeira linha o código do vendedor, código do cliente, da forma de pagamento, o dia de entrega e depois cada produto a bonificar. Se tiver não só as 3 primeiras colunas preenchidas, ele preenche também antes de salvar o pedido que é o comando ALT+G, por isso o loop entre as tarefas 14 e 20. Depois o loop passa pra a ultima linha, se tiver mais um outro cliente começa de novo um novo pedido.
Ai vão ser inseridos os dados de cada linha na ordem.
Queria uma luz pq não sei de onde começar pra fazer.
Dai, se poder me ajudar explicando como faço uma linha de comando pra digitar o dado de uma célula, já ia ser um bom ponto de partida pra montar uma planilha exemplo.
Option Explicit
Dim Qt, I, Inicio, Fim, Lote, Data
Private Type POINTAPI
X As Long
Y As Long
End Type
'----------
'**Win32 API Declarations MOUSEMOVE
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'----------
'Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, _
' ByVal Y As Long) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, _
lpPoint As POINTAPI) As Long
' Declara rotinas API necessárias:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As Long) As Long
Sub MoveMouseCursor(ByVal X As Long, ByVal Y As Long, _
Optional ByVal hWnd As Long)
If hWnd <> 0 Then
SetCursorPos X, Y
MsgBox "Abra a Janela 'Formas de Pagto do Clientes"
Else
Dim lpPoint As POINTAPI
lpPoint.X = X
lpPoint.Y = Y
'ClientToScreen hWnd, lpPoint
ClientToScreen FindWindow("TFM_CadCli", 0), lpPoint
SetCursorPos lpPoint.X, lpPoint.Y
End If
End Sub
Sub Vai()
Dim Janela
Janela = FindWindow("TFM_CadCli", 0) 'Classe do Cadastro de Clientes
If Janela = 0 Then
MsgBox "Tela de Cadastro de Clientes não localizada."
Exit Sub
Else
AppActivate "Sic"
Call MoveMouseCursor(255, 150) 'Clicar em Seq. de entrega
End If
End Sub
Sub Localizar()
AppActivate "SIC"
Espera
Inicio = Range("B2")
Fim = Range("B3")
For I = Inicio To Fim
Lote = ActiveSheet.Range(Cells(I, 1), Cells(I, 1))
Data = ActiveSheet.Range(Cells(I, 2), Cells(I, 2))
Digitar
Next
Clicar
End Sub
Sub Digitar()
SendKeys Lote
SendKeys ("{ENTER}")
SendKeys Data
SendKeys ("{ENTER}")
SendKeys ("{ENTER}")
Call MoveMouseCursor(1114, 604)
Espera
End Sub
Sub Espera()
Dim newHour, newMinute, newSecond, waitTime
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
End Sub
Sub Clicar()
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ' Release left Click
End Sub
Sub SeqEntrega()
Vai
Clicar
End Sub
Postado : 29/11/2018 6:36 pm