Ir para conteúdo
Fórum Script Brasil

Jaime Bezerra

Membros
  • Total de itens

    9
  • Registro em

  • Última visita

Sobre Jaime Bezerra

Jaime Bezerra's Achievements

0

Reputação

  1. Bom dia!! Estou atualizando as macros das minhas planilhas para trabalhar com SharePoint, o problema é que não estou encontrando as referências do Microsoft SharePoint, por isso muitas macros não funcionam. Minha necessidade então é saber como instalo no excel as referências para SharePoint. Obrigado
  2. Resolvido pelo Reinaldo do Guru do Excel, resposta: Deve acrescentar a clausula WHERE em sua instrução sql. Como não tenho o banco nem a planilha para testar, experimente Algo +/- assim: -->> .... by a.cd_item Where (a.qt_entrada - a.qt_saida)>0;"
  3. Bom dia a todos. Tenho um arquivo excel que extrai dados do BD SQL através de uma macro em VBE, esta macro calcula o "saldo atual" do item consultado na Query, o que preciso é que quando o resultado desta soma for igual a 0 (zero) não seja apresentado o resultado da Query. Não sei se fui claro, não sou programador, sou apenas apaixonado por Excel e VBA, vou exemplificar o que preciso: Resultado atual da minha query: Item Descrição Saldo abcd Item1 43,65 bcd Item2 0,00 dcba Item3 1,00 Resultado desejado: Item Descrição Saldo abcd Item1 43,65 dcba Item3 1,00 A instrução SQL que estou utilizando é: StrQuery = "SELECT distinct a.cd_item,c.descricao,sdoatual=(a.qt_entrada - a.qt_saida) FROM (vSaldoItem a INNER JOIN vSaldoItemdia b ON a.cd_item = b.cd_item AND a.cd_deposito = " & "'" & dep & "'" & ") INNER JOIN Item c ON a.cd_item = c.cd_item order by a.cd_item" Agradeço a ajuda Dúvida postada, sob o mesmo título, nos forums: Comunidade do Hardware – hardware.com.br Guru do Excel – gurudoexcel.com
  4. Boa tarde!! O Osvaldo me deu uma macro que funcionou perfeitamente, abaixo esto postando a macro: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("B4:B" & Cells(Rows.Count, 2).End(3).Row)) Is Nothing Then MsgBox "você aplicou duplo clique em uma célula da coluna 'B' da tabela" 'se o resultado for o esperado substitua a linha acima pelo nome da Macro1 Cancel = True ElseIf Not Intersect(Target, Range("C4:C" & Cells(Rows.Count, 3).End(3).Row)) Is Nothing Then MsgBox "você aplicou duplo clique em uma célula da coluna 'C' da tabela" 'se o resultado for o esperado substitua a linha acima pelo nome da Macro2 Cancel = True End If End Sub Resposta postada nos fóruns: http://www.hardware.com.br e https://gurudoexcel.com/forum/ Grato
  5. Bom dia!! Preciso que ao clicar duas vezes em uma área específica da planilha seja executada uma determinada macro, o problema é que tenho duas áreas distintas que deverão executar macros distintas. Com o doubleclick consigo acionar a macro em apenas uma área, por exemplo área ("B4:B" & Lastrow), ocorre que preciso utilizar a área ("C4:C" & Lastrow) para executar outra macro. Já tentei utilizar SELECT CASE com o Doubleclick e não funcionou, meu conhecimento de VBA é limitado e não sei como resolver este caso. Utilizei o Doubleclick por pura analogia de necessidade, clicar duas vezes em uma área específica para acionar outra macro, mas se para o meu caso a solução for outra agradeço se me orientarem. Abaixo segue a macro que estou utilizando: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim LastRow As Long With ActiveSheet LastRow = ActiveSheet.Cells.SpecialCells(xlLastCell).Offset(-1, 0).Row End With If Intersect(Target, Range("B4:B" & LastRow)) Is Nothing Then Else MsgBox ("CR Funcionou") End If Application.SendKeys "{ESCAPE}" End Sub Anexo estou enviando a imagem da planilha do excel onde tenho as informações onde será executado o doubleclick, posso enviar o arquivo que é simples e pequeno, na verdade este arquivo é parte de outro maior com outras macros mas que para facilitar deixei apenas a planilha e a macro que estou com dificuldades. Grato
  6. Bom dia!! Resolvi o problema de outra forma, com a mesma macro que cria o BD Excel (titulocli) criei outro BD Excel (transcli), ambos estão no mesmo arquivo e são planilhas distintas deste arquivo. Com os dois BD's criados montei outra macro que, através da função SUMIFS do VBA calcula os débitos e créditos do BD transcli com um critério sendo o ID_TITULO, presente em ambas as planilhas, e outro o termo "D" ou "C". Estou disponibilizando abaixo a macro para utilização de outros que por ventura tenham a mesma necessidade. Sei que existe a possibilidade de se fazer o somatório diretamente do BD SQL, mas como não sou programador não tenho conhecimento suficiente para isto, vou continuar pesquisando e tentando o somatório diretamente do BD SQL com VBA e descobrindo a forma disponibilizarei aqui. Macro: Sub somacondsloop() ' ' Macro somacondsloop ' ' Dim I As Integer Dim Dsoma, Csoma, TotMovID As Double Dim Minharange As String Dim Arg1 As Range Dim Arg2 As Range Dim Arg3 As Range Dim Arg4 As Range 'Congela a tela para evitar o "pisca-pisca" durante a execução da macro Application.ScreenUpdating = False Sheets("transcli").Select Range("a1").Select 'Posiciona para preencher a formula Sheets("titulocli").Select I = 2 Do While Range("A" & I).Value <> "" 'Posiciona para selecionar o primeiro critério de soma Range("A" & I).Select Minharange = ("A" & I) 'Posiciona para inserir o resultado das soma Range("F" & I).Select ' Os argumentos de range foram passados considerando apenas as colunas pois a range é variável Set Arg1 = Sheets("transcli").Range("D:D") Set Arg2 = Sheets("transcli").Range("A:A") Set Arg3 = Sheets("titulocli").Range(Minharange) Set Arg4 = Sheets("transcli").Range("E:E") 'Faz a soma com os critérios passados por argumentos Dsoma = WorksheetFunction.SumIfs(Arg1, Arg2, Arg3, Arg4, "D") Csoma = WorksheetFunction.SumIfs(Arg1, Arg2, Arg3, Arg4, "C") TotMovID = (Dsoma - Csoma) 'Transfere o total da soma para a célula ativa ActiveCell.Value = TotMovID I = I + 1 Loop 'Descongela a tela Application.ScreenUpdating = True End Sub
  7. Boa tarde!! Criei uma macro que extrai uma série de dados do meu BD SQL através de uma Query e grava em uma planilha do Excel (que vou chamar de BD Excel), até aí sem problemas está funcionando corretamente. O que preciso agora é um pouco mais complicado: Considerando que o meu BD Excel possui no primeiro campo o ID_TITULO preciso fazer um somatório dos débitos e créditos de outra tabela do BD SQL e inserir o resultado da soma no BD Excel para cada um dos títulos. Ou seja, após criar o BD Excel com uma Query da tabela titulocli preciso somar os débitos e créditos da tabela transcli e inserir o resultado em nova coluna respeitando o ID_TITULO. Exemplo anexo. Obs.: a coluna em amarelo é a coluna para se incluir o resultado do somatório. Grato
  8. Boa tarde!! Após garimpar bastante na internet encontrei a solução para esta questão, estou anexando abaixo a macro que funciona com perfeição: Obs.: Lógicamente o nome de usuário, senha, servidor, e banco deverão ser ajustados para a realidade de cada um. Sub extraidadosSQL() ' habilite a ref. Microsoft ActiveX Data Objects X.XX Library Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim wrkst As String Dim StrQuery As String Set cnn = New ADODB.Connection cnn.ConnectionString = "driver={SQL Server};server=dsrv03;uid=usuário;pwd=senha;database=EverestTeste" cnn.CommandTimeout = 30 cnn.Open Set rst = New ADODB.Recordset StrQuery = "SELECT * FROM transcli " & "WHERE sinal like 'D'" rst.Open StrQuery, cnn Sheets("transcli").Range("A1").CopyFromRecordset rst rst.Close cnn.Close End Sub
  9. Bom dia,Não sou programador, trabalho em contabilidade e financeiro por isso utilizo muito o excel e como seria de se esperar cheguei ao VBA.Estou tentando extrair informações específicas do Banco de dados do meu ERP (SQL), pesquisei e copiei uma macro com esta finalidade, fiz as correções mais óbvias para um leigo, BD, Servidor, ID, etc... .Quando rodo a macro esta retorna um erro de SQL Server inexistente ou acesso negado, conforme print abaixo: Utilizo o pacote Office 2007, o ID, senha, Servidor, BD, Tabela, tudo isto está correto pois vez ou outra acabo importando via conexão de Dados externos do próprio excel, poderia até seguir nesta linha, se não fosse a quantidade de tabelas e campos que preciso extrair e mais ainda, o tamanho atual de cada uma das tabelas, por isso preciso trazer apenas alguns campos específicos com filtros.Agradeço o auxílio, segue abaixo a macro: Código (Text): Sub ImportardadosSQL() ' habilite a ref. Microsoft ActiveX Data Objects 2.8 Library Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim ConnectionString As String Dim StrQuery As String, PASS As String, UserName As String, REMOTE_IP_ADDRESS As String, DATABASE As String ' insira os dados (entre aspas), abaixo: PASS = "" UserName = "" REMOTE_IP_ADDRESS = "" DATABASE = "" cnn.ConnectionString = "Provider=SQLOLEDB.1;Password=PASS;Persist Security Info=True;User ID=UserName;Data Source=REMOTE_IP_ADDRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=DATABASE" cnn.Open cnn.CommandTimeout = 900 StrQuery = "SELECT * FROM transcli " & "WHERE sinal like 'D'" rst.Open (StrQuery), cnn 'rst.Open StrQuery, cnn 'insere os dados em plan1 Sheets("transcli").Range("A1").CopyFromRecordset rst End Sub
×
×
  • Criar Novo...