Ir para conteúdo
Fórum Script Brasil

vbando

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre vbando

vbando's Achievements

0

Reputação

  1. Boa tarde! Estou tendo dificuldade para fazer a formula CONT.SES funcionar no meu código. Tenho uma tabela de apenas duas colunas, cujo o intervalo (n° de linhas) será sempre variável. Preciso pegar esse intervalo, contabilizar o numero de repetições para dois critérios (nome x tipo de serviço) e depois excluir as vezes em que aparece repetido. Preciso fazer uma tabela dinâmica com a tabela final (que nunca sei qual será o range para cada caso). Estou usando meu código assim: ' Adicionar formula contagem ult_lin = Range("A3").End(xlDown).Row 'encontrar ultima linha da coluna A ult_lin2 = Range("B3").End(xlDown).Row 'encontrar ultima linha da coluna B Range("C3").Value = "Contagem" Range("C4").Value = Application.WorksheetFunction.CountIfs(Range("A3:A"), Cells(ult_lin, 1).Value, Range("B3:B"), Cells(ult_lin2, 2).Value) 'AQUI APRESENTA O ERRO Selection.AutoFill Destination:=Cells(ult_lin, 3) 'POSSÍVEL PONTO DE ERRO, POIS NÃO CONSIGO USAR ult_lin COM OBJETO RANGE. ' deixar somente registros exclusivos For Each cell In Worksheets("Sheet").Range("A1").CurrentRegion If Cells <> "" Then AdvancedFilter Action:=xlFilterInPlace, Unique:=True 'não sei qual range botar aqui no inicio para completar o comando a lado End If Next Alguma ajuda, por favor?
  2. Boa tarde a todos! Estou tentando desenvolver um código para exportar relatórios de forma automatizada e otimizar meu tempo no trabalho, porém estou com dificuldade em algumas etapas. Vou colocar passo a passo qual é a minha intenção, para exemplificar melhor. O que eu quero fazer? 1. Exportar o relatório do banco de dados (ok) 2. Deletar algumas colunas (ok) 3. Inserir fórmula Cont.ses e excluir linhas repetidas 4. Selecionar intervalo e deixar apenas registros exclusivos 5. Gerar tabela dinâmica 6. Gerar gráfico dinâmico (ok) 7. Enviar resultado por email Qual ponto está dando problema? Na etapa 3 (Inserir fórmula Cont.ses e excluir linhas repetidas) o meu código apresenta o erro "Erro em tempo de execução 1004 o Objeto range global falhou". Neste ponto, estou tentando inserir um código que seja capaz de varrer o meu arquivo e identificar qual a ultima linha das minhas duas primeiras colunas, adicionar a formula (cont.ses) à uma terceira coluna, aplicá-la para esta nova coluna inteira. Depois o meu código precisa selecionar o intervalo completo das três colunas e manter apenas os registros exclusivos. Minha intenção é selecionar apenas os registros exclusivos para gerar um gráfico dinâmico (parte que estou conseguindo fazer). Qual é o meu problema? O problema é que preciso gerar um código que funcione para qualquer quantidade de linhas e intervalo que eu exporte (colunas não variam), pois como esse é um relatório de produção, ele sempre será variável. Consigo que o meu código identifique a ultima linha, mas não que depois selecione e aplique as formulas e gere a tabela pra qualquer intervalo que surja. Alguma ajuda seria muito bem vinda, por favor. Segue o código que estou tentando. Sub Relatorio () Dim Caminho As String Dim linha As Integer Dim pergunta As Integer Dim ult_lin As Long, ult_lin2 As Long Dim intervalo As Range pergunta = MsgBox("Deseja Exportar este Relatório?", vbYesNo) If pergunta = vbYes Then ' Abrir arquivo Caminho = ThisWorkbook.Path Workbooks.Open ("C:\Users\Usuários Convidados\Desktop\VBA\Testes\dadosbrutos") Sheets("Sheet").Select Sheets("Sheet").Activate 'Excluir colunas Macro Columns("C:E").Delete ' Adicionar formula contagem ult_lin = Range("A3").End(xlDown).Row 'encontrar ultima linha da coluna A ult_lin2 = Range("B3").End(xlDown).Row 'encontrar ultima linha da coluna B Range("C3").Value = "Contagem" Range("C4").Value = Application.WorksheetFunction.CountIfs(Range("A3:A"), Cells(ult_lin, 1).Value, Range("B3:B"), Cells(ult_lin2, 2).Value) 'AQUI APRESENTA O ERRO MENCIONADO Selection.AutoFill Destination:=Cells(ult_lin, 3) 'POSSÍVEL PONTO DE ERRO, POIS NÃO CONSIGO USAR ult_lin COM OBJETO RANGE. ' deixar somente registros exclusivos For Each cell In Worksheets("Sheet").Range("A1").CurrentRegion If Cells <> "" Then AdvancedFilter Action:=xlFilterInPlace, Unique:=True 'não sei qual range botar aqui no inicio para completar o comando a lado End If Next End Sub Muito obrigada!
×
×
  • Criar Novo...