Boa noite,
Gostaria de uma luz, queria programar um projeto pra fazer a rotina abaixo.
Queria automatizar o lançamento de bonificações em sistema interno da empresa. A rotina de digitação por pedido é essa ai em baixo.
Por exemplo, os dados digitaria na planilha usando a sequencia de coluna abaixo.
Vendedor / Cliente / Forma Pgto / Dia Entrega / Mes Entrega / Produto 1 / Qtd 1 / Valor 1 / Produto 2 / Qtd 2 / Valor 2 / ... / Produto 999 / Qtd 999 / Valor 999
1 - Digitar Número do Mapa + enter 2 - Apertar Enter 3 - Apertar Enter 4 - Digitar Cod do Vendedor + enter 5 - Apertar Enter 6 - Digitar Cod do Cliente + enter 7 - Digitar Forma de Pgt + enter 8 - Apertar seta pra baixo 9 - Apertar ALT+S 10 - Digitar Dia de entrega 11 - Apertar Seta para direita 12 - Digitar Mês de entrega 13 - Apertar Enter 5x 14 - Digitar 2017 15 - Apertar enter 16 - Digitar Cód do Produto 17 - Apertar enter 2x 18 - Digitar Quantidade + enter 19 - Digitar preço + enter 4x 20 - Loop (Volta ao passo 14) 21 - Alt + G 22 - Alt + N 23 - Loop (Volta para o passo 1)
Precisa saber o que digitar e onde.
Enfim uma planilha de exemplo ajuda bastante
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Opa,
A rotina como enviei é como digito atualmente, todas as bonificações.
Segue em anexo imagens da planilha base como penso que seria mais fácil de organizar, e tela do sistema onde digito.
Essa operação que passei no Quote é a ação totalmente via teclado. O loop que falei, é que se tiver dados nas colunas dos proximos pedidos, ele digita novamente, caso não, ele vai pro segundo loop, ver se tem outro cliente, se tiver ele faz de novo, se não tiver, eu vou por uma MsgBox avisando que já digitou todas as bonificações.
kasumo,
Boa noite!
Desculpe a minha ignorância mas... eu não entendi nada de nada desse texto que você colocou. Qual é o problema? Qual é a solução? O que você, de fato, quer?
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
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