Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''VBA''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. laupax

    Macro Whatsapp

    Pessoal,Estou com uma macro que achei online para envio de whatsapp. Ela funciona bem. O problema é que todo o texto tem que ser escrito em um única célula e dessa forma, o texto não fica dividido em parágrafos, como eu gostaria. Apesar disso, a macro não deixa eu ampliar as células para a mensagem. Testei uma forma de escrever a mensagem que eu quero enviar diretamente no código, sem ser na planilha. Da certo, mas eu também não consigo fazer com que vá com os parágrafos separados certinhos. Sabem como resolver esse problema? Obrigada.
  2. Bom dia, Tenho um pequeno sistema de registro de denúncias. O cadastro funciona, de boa, mas a pesquisa quando vou escolher as datas, aparece esse erro aqui: Erro em tempo de execução '-2147467259(80004005)': Erro não especificado Eis o código: Private Sub btnPesquisar_Click() Dim linhaFinal, linha, x As Integer ListBox1.Clear // o erro para aqui e não depura mais linhaFinal = Planilha1.Cells(Rows.Count, 1).End(xlUp).Row x = 0 For linha = 2 To linhaFinal If Planilha1.Cells(linha, 1).Value >= MonthView1 And Planilha1.Cells(linha, 1).Value <= MonthView2 Then ListBox1.AddItem Planilha1.Cells(linha, 1).Value ListBox1.List(x, 1) = Planilha1.Cells(linha, 2).Value ListBox1.List(x, 2) = Planilha1.Cells(linha, 3).Value ListBox1.List(x, 3) = Planilha1.Cells(linha, 4).Value ListBox1.List(x, 4) = Planilha1.Cells(linha, 5).Value x = x + 1 End If Next End Sub Porque isso acontece e o que pode ser feito? Preciso da ajuda dos colegas! Forte abraço! Resposta Rápida Resposta 1
  3. Olá a todos ! Gostaria de uma imensa ajuda! Eu recebo um arquivo no qual ele não organiza os tipos de Pausa dos vendedores numa mesma coluna (e sim e várias colunas chamadas "Pausa"), além de também não organizar a "Quantidade" e "Tempo" dessa pausa numa coluna só. As informações são inseridas ao longo de uma linha e eu gostaria que eles fossem organizados por colunas. Vou colocar aqui como é e como eu gostaria que fosse: OPERADOR PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO Nome 1 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Nome 2 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Nome 3 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Gostaria que a informação viesse por colunas: "OPERADOR", "PAUSA", "QUANTIDADE" E "TEMPO", repetindo o nome do vendedor várias vezes na Coluna A, pra que as informações dele venham nas colunas seguintes, e não inseridas em linhas: OPERADOR PAUSA QUANTIDADE TEMPO Nome 1 BANHEIRO 0 00:00:00 Nome 1 ALMOÇO 0 00:00:00 Nome 1 LANCHE 0 00:00:00 Nome 1 AMBULATÓRIO 0 00:00:00 Nome 2 BANHEIRO 0 00:00:00 Nome 2 ALMOÇO 0 00:00:00 ... E assim por diante. O meu problema é que eu até consigo fazer a Coluna A me dar os vendedores ao transpor, mas quando faço isso na coluna B me vem tanto linhas de pausa, quanto quantidade e banheiro 😞 E como essa base sempre vem muitos vendedores e de forma variável, não sei como resolver isso ._. Agradeço desde já aos que puderem me dar um help !
  4. Rafa23_ms

    Feriado da pascoa

    Bom dia, sei que a função Floor(Day(Minute(ano_inicial / 38) / 2 + 56) & "/5" & "/" & ano_inicial, 7) - 34 funciona na plhanilha mas quando tento executar ela no excel da erro de #VALOR!, não sei resolver. Public Function pascoa(ByVal data_inicial As Date, ByVal data_final As Date) As Date ano_inicial = Year(data_inicial) pascoa = WorksheetFunction.Floor(Day(Minute(ano_inicial / 38) / 2 + 56) & "/5" & "/" & ano_inicial, 7) - 34 End Function
  5. Pessoal, boa tarde. Tudo bem? Pessoal preciso de orientações de como usar o vba para selecionar um item do menu suspenso que possui o efeito cascata em outro campo no internet Explorer. Já tentei usar doc1.Document.getElementById("WFRInput877545").innerText, tentei selecionar usando a classe e não o consegui. Eu até consegui colocar o valor que eu queria com o código abaixo Set oSelect = doc1.Document.getElementById("WFRInput877545") oSelect.Focus oSelect.Value = "Projeto 3" oSelect.FireEvent ("onchange") Notei que até o código de click no botão pesquisar não esta funcionando <div class="HTMLButton" id="pesquisar" style="left: 968px; top: 49px; width: 177px; height: 33px; display: block; position: absolute; z-index: 100000;"> <button style="width: 100%; height: 33px; text-decoration: none;" type="button"> <img src="openImageStreamFromGalery.do?sys=SGP&amp;formID=464569073&amp;guid=%7BF0155A0D-DE1E-4F0A-B5BD-E03B601599C8%7D"> <span style="color: rgb(0, 128, 128); font-family: MS Sans Serif; font-size: 10pt;">Pesquisar RDO</span> </button> </div> Mas não libera o próximo campo que esta em efeito cascata. Segue abaixo o código quando inspeciono o elemento. <input id="WFRInput877545" autocomplete="off" name="WFRInput877545Show" style="height: 21px; padding-right: 17px; text-decoration: none;"> Acredito que esse código chame o código abaixo <select id="lookupInput" size="2" style="width: 100%; min-height: 48px;"> <option value=""></option> <option value="985">Projeto B1</option> <option value="685">Projeto 3</option> </select> Mas não consigo selecionar um dos itens Estou precisando de uma ajudar sou novo nessa interação vba com internetExplorer. Desde já agradeço
  6. Olá a todos, Eu possuo um arquivo em txt, cujo o início de cada linha representa um tipo de transação. Meu objetivo é importar os dados de um arquivo TXT, agrupando os dados correspondentes de cada transação em uma aba nova e exclusiva para cada caso. Ex. Arquivo txt: Transação1;un;1;1,59;1,59;01/01/2018 Transação1;un;2;2;4;01/01/2018 Transação1;un;3;6;18;01/01/2018 Transação2;un;1;1,59;1,59;02/01/2018 Transação2;un;2;2;4;02/01/2018 Transação2;un;3;6;18;02/01/2018 Transação3;un;1;1,59;1,59;03/01/2018 Transação3;un;2;2;4;03/01/2018 Transação3;un;3;6;18;03/01/2018 Resultado Nova Aba Adjacente 1 = Transação1 Transação1 un 1 1,59 1,59 01/01/2018 Transação1 un 2 2 4 01/01/2018 Transação1 un 3 6 18 01/01/2018 Nova Aba Adjacente 2 = Transação2 Transação2 un 1 1,59 1,59 02/01/2018 Transação2 un 2 2 4 02/01/2018 Transação2 un 3 6 18 02/01/2018 Nova Aba Adjacente 3 = Transação3 Transação3 un 1 1,59 1,59 03/01/2018 Transação3 un 2 2 4 03/01/2018 Transação3 un 3 6 18 03/01/2018 Eu uso Excel 2016. Desde já agradeço a ajuda!!
  7. Olá galera, gostaria da ajuda de vocês. Preciso preencher duas tabelas iguais a que está no print a seguir, o problema é que gostaria de fazer isso com a ajuda do VBA, no caso eu tenho na planilha "Teste" uma lista de 70000 palavras e preciso que a partir de uma tabela que está preenchida o código verifique quais palavras ocorrem na lista independente de serem maiusculas ou minusculas, converta tudo para minuscula e cole a palavra na outra tabela vazia de modo que vá preenchendo a tabela vazia e eliminando as palavras lá da lista. Poderiam me ajudar? (A tabela a seguir começa na coluna A e vai até a coluna F) Essa é a tabela de testes
  8. Boa tarde!Gostaria de saber ou quem puder me ajudar, fazer uma validação que, ao aparecer a caixa do Inputbox e ao clicar no campo vazio, fornecer uma mensagem de campo obrigatório e logo após aparecer novamente para digitar. Vou colocar o código aqui:Sub cadastro_agenda()nome = InputBox("Digite o nome:")telefone = InputBox("Digite o telefone:")setor = InputBox("Digite o setor:")lin = Range("A1").End(xlDown).Row + 1Cells(lin, 1) = nomeCells(lin, 2) = telefoneCells(lin, 3) = setor End SubEspero que possam me dar essa luz! Forte abraço!
  9. Bom dia , Eu baixei essa planilha da internet, porém está bloqueada para modificações, é possível desbloquear?Desbloqueando eu conseguiria de modificar para que ao clicar em "vendas" e "confirmar venda" fosse gerado um recibo enviado via e-mail e quando eu clicar em "consulta" fosse possível excluir registro apenas se o tipo de usuário for "Administrador" ( não será possível quando for "usuário padrão" - Na aba cadastro) ou esconder o botão consulta para que eu pudesse acessa-lo apenas com um atalho. Gostaria tambem de verificar a tabela de produtos para que eu pudesse alterar a ordem na inserção de produtos novos.Link com a planilhahttps://www.sendspace.com/file/9j3tc4
  10. Olá, Boa noite, meu nome é Fabio. Sou iniciante em programação VBA e gostaria de saber como realizar uma multiplicação de vários valores, com mais de 1 critério. Por exemplo: Tenho na planilha 1 (BOM) São os itens produzidos e suas listas de materiais Na coluna A tenho os itens produzidos e na coluna B a matérias-primas utilizadas e na Coluna C o consumo de cada matérial. Os produtos tem mais de uma matéria-prima em sua composição e cada produto utiliza uma quantidade diferente de cada matéria prima Tenho na planilha 2 (PROGRAMAÇÃO) Tenho os itens produzidos e quanto planejo produzir por dia Na coluna A tenho os itens produzidos Da coluna B até a G são as quantidades que plenejo produzir por dia (de segunda a sabado) Por último tenho na Planilha 3 (NECESSIDADE) Nela constam as minhas matérias primas. e nela que quero que o código VBA funcione. Na coluna A tenho as materias primas que utilizo para produzir os produtos Da coluna B até a coluna G quero calcular a quantidade de cada matéria-prima que irei precisar para produzir as quantidades planejadas na planilha 2 com base no consumo calculado na Planilha 1 Mas quero fazer isso automaticamente. Qual seria a forma mais simples de fazer isso?
  11. Olá, bom dia Gente! Eu tenho um código VBA que verifica os anexos dos e-mail e dependendo dos títulos do arquivo ele salva em uma pasta específica, essa macro era ativada através de uma regra de filtro do Próprio Outlook. ele funcionava perfeitamente até formatar meu computador, depois de reinstalar o Outlook ele não permite mais eu adicionar uma macro na regra de chegada do E-mail. Todas as vezes que tento adicionar a regra ele da o aviso "Esta regra não está disponível no modo atual". Já alterei os níveis de permissão de macros do Outlook e nada. Vendo em outros Foruns vi pessoas tendo o mesmo problema e não conseguindo resolver. Queria saber se alguém sabe como mudar essa configuração do outLook ou ao menos sabe uma forma de adicionar uma acionamento automática para cada e-mail que chega sem precisar usar as regras nativas no outlook.
  12. Boa tarde pessoa, Estou com dificuldade de redimensionar um vetor, e preciso de um "help". Tenho um vetor FSLList com com diversas variáveis (quantidade de linhas variáveis e 2 colunas), gostaria de passar alguns dados desse vetor para um outro vetor (simulando um filtro). O problema é que quando tento Redimensionar o meu vetor FSLTLIST com "Preserve" aparece Subscript out of range. Alguém sabe me dizer o que estou errando? Dim FSLList As Variant Dim FSLTList() As Variant Lastrow2 = ThisWorkbook.Sheets("FSL").Cells(Rows.Count, 1).End(xlUp).Row FSLList = ThisWorkbook.Sheets("FSL").Range("C2:D" & Lastrow2) ReDim FSLTList(1 To 1, 1 To 2) For i = LBound(FSLList) To UBound(FSLList) If UCase(FSLList(i, 1)) Like "*" & UCase(TextBox7.Text) Or UCase(FSLList(i, 2)) Like "*" & UCase(TextBox7.Text) & "*" & "*" Then FSLTList(UBound(FSLTList), 1) = FSLList(i, 1) 'Assign the array element FSLTList(UBound(FSLTList), 2) = FSLList(i, 2) 'Assign the array element ReDim Preserve FSLTList(UBound(FSLTList) + 1, 1) End If Next i FSLListBox.List = FSLTList End Sub
  13. Boa Tarde, estou tentando colorir e centralizar uma célula especifica, no caso a atual, mas não estou conseguindo, já fiz diversas pesquisas, encontrei coisas parecidas, mas não consigo juntar as peças, alguém poderia me ajudar? Criei a função abaixo, ela pega as celular que eu selecionei e me apresenta o coeficiente de variação (CV) já em porcentagem, isso está funcionando certo. O problema, eu gostaria que se esse resultado fosse maior do que 12, a célula fosse pintada de vermelho por exemplo e menor do que 12 pintada de verde, e por um capricho gostaria que esse valo ficasse centralizado na célula. Tentei varias formas, porém sem sucesso 😞 Function CV(rng As Range) Dim cell As Range For Each cell In rng Next cell CV = WorksheetFunction.StDev(rng) / WorksheetFunction.Average(rng) CV = FormatPercent(CV, 1) End Function
  14. Bom dia a todos. Pessoal estou precisando muito da ajuda de vocês. Tenho 04 planilhas onde suas informações são distintas entre si, mas as suas características são iguais, pois todas tem uma Plan1 e Plan2 onde em uma coloco as informações como banco de dados e na outra crio uma tabela dinâmica para estar analisando essas informações. O que acontece é que preciso unificar essas 04 planilhas em um único documento e onde vão trabalhar 4 pessoas quase que simultaneamente tanto para analisar os dados informados quanto para estarem inserindo novos dados. Então para resumir meu problema é: * Unificar 04 planilhas no access; (creio que essa seja a forma correta para que eu consiga trabalhar como mais de uma pessoa "logada" ao mesmo tempo"; * Criar Login para 04 usuários onde cada usuário terá acesso apenas as planilhas selecionadas na hora da criação do usuário e ficando as outras ocultas; * Criar um LOG onde conste qual usuário acessou a planilha e que seja salvo independente se ele clicar em salvar. ( Digamos que apenas abriu a planilha, olhou ela mais não alterou dados nenhum e posteriormente a fechou, mesmo assim, preciso que a partir do momento que ele logar e abrir a planilha o LOG seja salvo automaticamente independente se ele salvou algo ou simplesmente a fechou em seguida); Já pesquisei bastante e consegui absorver algumas coisas, só que estou com uma dificuldade tremenda em como por em prática. Se algum de vocês puder me orientar por onde começar e mostrar o caminho que devo seguir já será de grande ajuda, porque sou iniciante nessa questão de VBA e fazer essa conexão entre Excel e Access. Obrigado.
  15. Boa tarde, galera! Estou na missão de conseguir um código que compare duas colunas de duas planilhas diferentes, e que o código copie e cole em outra pasta de trabalho a linha inteira caso tenha esse match. Se puderem apontar onde estou errando, me ajudaria bastante. Sub Find_Matches() Dim CompareRange As Variant, x As Variant, y As Variant Set CompareRange = Worksheets("GERAL").Range("C2:C411") For Each x In Selection (no caso aqui seria a seleção da coluna da primeira planilha que quero comparar) For Each y In CompareRange (e aqui a coluna da segunda) If x = y Then Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Result").Select Range("A1").Activate ActiveSheet.Paste End If Next y Next x End Sub Me deem uma luz, por favor kk Agradeço desde já
  16. Tenho esse código que extrai o conteúdo do corpo do email e coloca em uma planilha no excel. Até ontem ele estava funcionando, porém hoje ele apareceu que " Objeto não aceita essa propriedade ou método" na linha que está em vermelho. Se alguém por favor poderia me ajudar? <>Sub lerEmail() 'Ler o e-mail e copiar para o excel as informações na aba "BD" Application.DisplayAlerts = False 'Desabilitar alertas Application.ScreenUpdating = False 'Desabilitar atualização de tela ActiveWorkbook.Save 'Salvar planilha Dim outApp As Outlook.Application 'Variável da aplicação do outlook Dim outMapi As Outlook.MAPIFolder 'Variável de conexão com as pastas desejadas, acesso ao e-mail 'Dim outMail As Outlook.MailItem 'Variável do objeto e-mail Dim outHTML As MSHTML.HTMLDocument 'Variável HTML document Dim sh_capa, sh_bd As Worksheet 'Variáveis das abas do excel Set sh_capa = Sheets("Capa") 'Configura aba Capa Set sh_bd = Sheets("BD") 'Configura aba BD Dim pasta, subpasta, mover As String 'Variável pasta e subpasta outlook Dim num_email, num_db, i, j, k, l, m, num As Long 'Variáveis auxiliares Dim data As Date 'Variável da data de recebimento do e-mail pasta = sh_capa.Cells(6, "B").Value 'Configura pasta outlook subpasta = sh_capa.Cells(6, "C").Value 'Configura subpasta outlook mover = sh_capa.Cells(6, "D").Value 'Pasta destino On Error Resume Next 'Habilita tratamento de erros Set outApp = GetObject(, "OUTLOOK.APPLICATION") 'Tenta configurar a aplicação do outlook If (outApp Is Nothing) Then 'Se outlook não estiver aberto... Set outApp = CreateObject("OUTLOOK.APPLICATION") 'Configura a aplicação do outlook End If On Error GoTo 0 'Desabilita tratamento de erros Set outMapi = outApp.GetNamespace("MAPI").Folders(pasta).Folders(subpasta) 'Configura a variável de conexão com as pastas desejadas do outlook Set outHTML = New MSHTML.HTMLDocument 'Configura a variável HTML document para ler o corpo do e-mail 'Verifica se existem e-mails disponíveis na subpasta desejada If outMapi.Items.Count = 0 Then MsgBox "Não foram encontrados e-mails" Exit Sub 'Interrompe o programa caso não encontre e-mails na subpasta End If num_email = outMapi.Items.Count 'Quantidade de e-mails na subpasta 'Conta quantas linhas existem na aba "BD" para que os novos dados possam ser inseridos de forma sequencial num_db = sh_bd.Cells(Rows.Count, "A").End(xlUp).Row - 1 num = 0 ' Variável responsável por contar quantos e-mails serão salvos For i = 1 To num_email Set outMail = outMapi.Items(i - num) 'Configura a variável do e-mail atual e subtrai quantos e-mails já foram copiados, 'pois os e-mails são deletados da caixa de entrada 'Data de recebimento do e-mail data = DateSerial(Year(outMail.ReceivedTime), Month(outMail.ReceivedTime), Day(outMail.ReceivedTime)) 'Se satisfazer todas as condições definidas na capa, incluse a busca por remetente... If outMail.Subject Like "*" & sh_capa.Cells(9, "C").Value And _ outMail.SenderEmailAddress = sh_capa.Cells(10, "C").Value And _ data >= sh_capa.Cells(11, "C").Value And _ data <= sh_capa.Cells(12, "C").Value Then 'Recebe o codigo HTML correspondente ao corpo do e-mail outHTML.Body.innerHTML = outMail.HTMLBody 'Configura a variável para leitura da tabela recebida Set outTable = outHTML.getElementsByTagName("table") 'Copia os campos da tabela para o excel For x = 1 To outTable(0).Rows.Length - 1 For y = 0 To outTable(0).Rows(x).Cells.Length - 1 sh_bd.Cells(1 + num_db + x, 1 + y).Value = outTable(0).Rows(x).Cells(y).innerText Next y Next x 'Variável auxiliar para copiar os dados de forma sequencial num_db = num_db + outTable(0).Rows.Length - 1 'Conta quantos e-mails já foram salvos num = num + 1 'Move o e-mail para a pasta de concluídos outMail.Move outApp.GetNamespace("MAPI").Folders(pasta).Folders(mover) 'Se satisfazer todas as condições definidas na capa, exceto a busca por remetente... ElseIf outMail.Subject Like "*" & sh_capa.Cells(9, "C").Value And _ sh_capa.Cells(10, "C").Value = "" And _ data >= sh_capa.Cells(11, "C").Value And _ data <= sh_capa.Cells(12, "C").Value Then 'Recebe o codigo HTML correspondente ao corpo do e-mail outHTML.Body.innerHTML = outMail.HTMLBody 'Configura a variável para leitura da tabela recebida Set outTable = outHTML.getElementsByTagName("table") 'Copia os campos da tabela para o excel For x = 1 To outTable(0).Rows.Length - 1 For y = 0 To outTable(0).Rows(x).Cells.Length - 1 sh_bd.Cells(1 + num_db + x, 1 + y).Value = outTable(0).Rows(x).Cells(y).innerText Next y Next x 'Variável auxiliar para copiar os dados de forma sequencial num_db = num_db + outTable(0).Rows.Length - 1 'Conta quantos e-mails já foram salvos num = num + 1 'Move o e-mail para a pasta de concluídos outMail.Move outApp.GetNamespace("MAPI").Folders(pasta).Folders(mover) End If Next i 'Se algum e-mail foi salvo... If num > 0 Then 'Mensagem apresentada para o usuário MsgBox "Processamento Concluído! " & num & " e-mail carregados!" sh_bd.Select Else 'Mensagem apresentada para o usuário MsgBox "Nenhum e-mail carregado!" End If 'Volta a exibir alertas Application.DisplayAlerts = True 'Volta a atualizar a tela Application.ScreenUpdating = True End Sub
  17. Boa tarde! 😀 Estou utilizando um código VBA para consolidação de planilhas afim de enviar um relatório semanal. Preciso de ajuda pois o código está buscando os dados certos, porém eu não preciso que me retorne a planilha inteira e sim apenas da A6 até a coluna E6 em todas as planilhas, e apenas os dados contidos, não precisa vim a formatação original pois se preciso for, formato depois do jeito que eu precisar. Tentei usar o Offset mas está dando erro "tempo de execução 9". Em anexo coloquei o print do modelo da planilha que será consolidada. Código Utilizado: Option Explicit Private Sub btExecuta_Click() Application.ScreenUpdating = False 'Definição das variáveis '-------------------------------------- Dim W As Worksheet Dim WNew As Workbook Dim ArqParaAbrir As Variant Dim A As Integer Dim NomeArquivo As String 'Capturar arquivos para tratamento '--------------------------------------- ArqParaAbrir = Application.GetOpenFilename("Arquivo do Excel (*.xlsm), *.xl*", _ Title:="Escolha o arquivo a ser importado", _ MultiSelect:=True) If Not IsArray(ArqParaAbrir) Then If ArqParaAbrir = "" Or ArqParaAbrir = False Then MsgBox "Processo abortado, nenhum arquivo escolhido", vbOKOnly, "Processo abortado" Exit Sub End If End If 'Começa a importação dos dados '------------------------------------- Set W = Sheets("CONSOLIDADO") W.UsedRange.EntireColumn.Delete W.Select 'Loop para importação dos arquivos '-------------------------------------- For A = LBound(ArqParaAbrir) To UBound(ArqParaAbrir) NomeArquivo = ArqParaAbrir(A) Application.Workbooks.Open (NomeArquivo) Set WNew = ActiveWorkbook ActiveSheet.Range("a6").CurrentRegion.Select Selection.Copy Destination:=W.Cells(W.Rows.Count, 1).End(xlUp).Offset(1, 0) Application.DisplayAlerts = False ActiveWorkbook.Close savechanges:=False Application.DisplayAlerts = True W.Cells(W.Rows.Count, 1).End(xlUp).Offset(1, 0).Select Next A Application.ScreenUpdating = True MsgBox "Processo concluído. Arquivos copiados..." End Sub **** Desde já agradeço.
  18. Olá pessoal, Preciso realizar uma macro para copiar cada um dos escritórios da XP no Brasil para uma planilha, porém estou com dúvida no começo do código. Realizei duas subs, uma que abre o IE e outra que processa o código HTML. O site em questão (https://www.xpi.com.br/sobre-a-xp/encontre-um-escritorio/) conta com dois objetos de tag "select", um que se refere aos estados ("states") e outro que se refere à cidade ("cities"). Minha dúvida é como atualizar o objeto "cities" ao escolher um estado da lista. Meu código até aqui é esse, porém ao selecionar o estado as cidades possíveis não são atualizadas, e, com isso, a minha cidade sempre retorna "Selecione a cidade": Sub EscritoriosXPIE() 'HABILITAR REFERÊNCIAS: Microsoft Internet Control, Microsoft HTML Object Library Dim IE As SHDocVw.InternetExplorer, HTMLDoc As MSHTML.HTMLDocument, HTMLButton As MSHTML.IHTMLElementCollection 'definindo objeto IE Set IE = New SHDocVw.InternetExplorer 'abrindo IE With IE .Visible = True .navigate "https://www.xpi.com.br/sobre-a-xp/encontre-um-escritorio/" 'pausar a macro enquanto carrega o navegador While .readyState <> READYSTATE_COMPLETE Wend End With 'abrindo o código HTML Set HTMLDoc = IE.Document Set HTMLButton = HTMLDoc.getElementsByTagName("button") ' 'printando número de botons ' Debug.Print HTMLButton.Length 'pesquisar escritórios XP ProcessarHtmlPage HTMLDoc End Sub Sub ProcessarHtmlPage(HTMLPage As MSHTML.HTMLDocument) 'HABILITAR REFERÊNCIA: Microsoft HTML Object Library Dim HTMLStates As MSHTML.IHTMLElement, HTMLCities As MSHTML.IHTMLElement Dim HTMLOptionState As MSHTML.IHTMLElement, HTMLOptionCity As MSHTML.IHTMLElement Dim HTMLButtons As MSHTML.IHTMLElementCollection Dim cont_states As Long, cont_cities As Long, state As Long, city As Long 'limpando a plan de trabalho Worksheets("Resumo").Select Cells.Delete 'definindo objetos HTMLState, HTMLCity e HTMLButton Set HTMLStates = HTMLPage.getElementById("states") Set HTMLButtons = HTMLPage.getElementsByTagName("buttons") 'definindo número de estados cont_states = HTMLStates.Length 'loop por todos os estados e cidades For state = 0 To cont_states Debug.Print HTMLStates.Item(state).innerText HTMLStates.selectedIndex = state Set HTMLCities = HTMLPage.getElementById("cities") cont_cities = HTMLCities.Length For city = 0 To cont_cities On Error Resume Next Debug.Print HTMLCities.Item(city).innerText Next city Next state End Sub Obrigado desde já pela ajuda!
  19. Bom dia galera. Estou tendo meu primeiro contato com access e bancos de dados. Fui encarregado em meu serviço para fazer a comparação de dois bancos de dados (tambem estao disponiveis em excel, mas quero evoluir meu conhecimento com banco de dados). Preciso comparar os dois para obter quais notas fiscais que tem em uma banco, e não esta presente no outro. Tentei pelo VBA (conhecimento muito basico) e pelo SQL, mas infelizmente sem sucesso. Se alguém puder ajudar...
  20. msottomaior

    Tabela Dinâmica

    Boa Noite pessoal, Queria ajuda para saber como eu monto uma tabela dinamica. Porem o Range que vai ser selecionado pode variar, por isso queria usar Range(Cells(1, 1), Cells(lngUltimaLinhaInfoInvestidor, lngUltimaColunaInfoInvestidor)) Como encaixo esse range macro de Tabela Dinamica?
  21. Boa Tarde Pessoal, To precisando de uma ajuda.. To querendo preencher em uma sheet (shtResumo) algumas funções dado os dados de outra sheet (shtInfoInvestidor), mas não estou conseguindo realizar. Estou querendo colocar as formulas (Soma, Média, Desvio Padrão, Identificar qual o maior valor, e qual a última data) Segue o que comecei a fazer e o erro que tomei. Os dados devem ir para esses Campos Alguém consegue me ajudar?
  22. Estou preparando uma macro pra identificar o vencimento de apólices de seguro, dentro de uma base e avisar por msgbox as que estão vencidas/vencem dentro do mês. Sou limitado em VBA, mas já cheguei ao cód abaixo. Minha dúvida é como transformar o cód em LOOP, pra aplicar em toda a coluna H, sem precisar repetir o código para cada linha da base de dados... Também quero colocar o número da apólice da linha que passou a data do vencimento dentro do texto do msgbox. Sub Workbook_Open() Worksheets("Plan1").Select Dim valorData As Date valorData = Range("H11").Value If DateDiff("d", Now(), valorData) < 0 Then msgbox "Atenção: A apólice de seguro XXXX.XXX.XXX está vencida!", vbInformation + vbOKOnly ElseIf DateDiff("d", Now(), valorData) < 30 Then msgbox "Atenção: a apólice de seguro XXXX.XXX.XXX tem vencimento dentro do mês!", vbInformation + vbOKOnly ElseIf DateDiff("d", Now(), valorData) > 30 Then msgbox "Não há vencimentos de seguros dentro de um mês.", vbInformation + vbOKOnly End If valorData = Range("H12").Value If DateDiff("d", Now(), valorData) < 0 Then msgbox "Atenção: A apólice de seguro XXXX.XXX.XXX está vencida!", vbInformation + vbOKOnly ElseIf DateDiff("d", Now(), valorData) < 30 Then msgbox "Atenção: a apólice de seguro XXXX.XXX.XXX tem vencimento dentro do mês!", vbInformation + vbOKOnly ElseIf DateDiff("d", Now(), valorData) > 30 Then msgbox "Não há vencimentos de seguros dentro de um mês.", vbInformation + vbOKOnly End If Worksheets("MENU").Select End Sub
  23. Boa tarde! Preciso de ajuda para terminar uma planilha. Ao qual ela deve: Comparar a célula E2 a coluna coluna E5:E20 Caso a célula seja igual, ela cola o numero da F2 na primeira vazia da mesma linha, a partir do Primeiro Semestre E depois cole suscetivamente. Obrigado desde já:
  24. Olá, Gostaria de inserir uma linha a baixo do registro escolhido na combobox no meu formulário. exemplo: combobox 01 - escolhi esse aqui .... então o programa vai identificar ele na planilha de lançamento. 02 03 ... Depois e vai ver o de baixo que é diferente e vai inserir em cima do 02 uma linha para colocar a nova informação do 01. então fica assim na planilha somente. 01 01 - novo registro 02 03 Vou deixar o modelo do código: Sub opçoes1() Application.EnableEvents = False Application.ScreenUpdating = False Dim a As Long For a = 5 To 1048000 If Filial1 = Cells(a, 1) Then ' se Filial1 for igual célula na coluna 1 na linha variavel então If Filial1 <> Cells((a) + 1, 1) Then Plan1.Cells(a, 1).Select 'Seleciona a célula da plan1 na coluna 1 na linha variavel Plan3.Activate 'Ativar a célula da plan3 Plan3.Range("j1:O1").Select 'Selecionar e Carregar células da plan3 Selection.Copy 'Cópiar seleção Plan1.Activate 'Ativa plan1 Plan1.Select 'seleciona plan1 Plan1.Rows((a) + 1).Select 'selecina a variavel atual e cola abaixo 'Insere uma seleção na linha inferior Selection.Insert Shift:=xlDown 'Call Salve1 ActiveCell.Value = filial.Value 'O valor da célula ativada e igual ao valor de filial 'Call Vazio Dim Data As Date Data = Ldata1.Caption Dim ano As Double ano = Lano1.Caption ActiveCell.Offset(0, 1).Value = Filial1 ActiveCell.Offset(0, 2).Value = bancoconta ActiveCell.Offset(0, 3).Value = agenciabanco ActiveCell.Offset(0, 4).Value = ccbancoA ActiveCell.Offset(0, 5).Value = cpbancoA ActiveCell.Offset(0, 6).Value = Ldata1 ActiveCell.Offset(0, 7).Value = lblHora1 End If End If Next Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
  25. Olá pessoal! Estou com uma dúvida, criei uma lista suspensa com 1000 registros ou linhas. Desta forma, gostaria de um auxílio para montagem de um código VBA que melhorasse a pesquisa com Autocomplete ou Autopreenchimento. Assim evitaria der que rolar toda a caixa suspensa para escolher o nome requerido. Desde já agradeço a cooperação.
×
×
  • Criar Novo...