Ir ao conteúdo

WILSON SILVA JUNIOR

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

3
  1. @Midori Obrigado Midori! Mais uma vez você me salvou. Eu havia pensado em colocar um "If" no filtro, mas confesso que desconhecia a função MID e não tinha ideia de como fazer o código funcionar. Tentei várias formas mas nenhuma delas deu certo. Você me abriu os olhos, pois agora vou estudar mais a fundo as funções relacionadas às STRINGS. Muitíssimo obrigado Midori! adicionado 11 minutos depois Resolvido! A Membro Pleno Midori me mostrou o caminho como uma verdadeira Sensei. ありがとうございました Midori!
  2. Obrigado Osvaldo! E perdoe a minha ingenuidade, é que eu posto muito pouco aqui no forum, e como estou neste processo de aprendizado, conto com vocês para me auxiliarem. Segue a planilha no formato .rar como sugerido. Projeto.Somases-Testes.rar
  3. Bom dia amigos do Clube do Hardware! Estou em um aprendizdo de Excel VBA e estou com certa dificuldade em criar um código de filtragem em uma ListBox de um projeto no qual eu obtenho a somatória de tipos distintos de despesas de acordo com o ano em que foram feitas e as pessoas que as fizeram. Ocorre que se insiro o ano na TextBox e seleciono as pessoas e as despesas por elas efetuadas individualmente, estas aparecem na ListBox e é apresentado o valor total na TextBox (Total), porém se insiro o ano e seleciono para que se calcule o total das despesas efetuadas por cada pessoa, a ListBox fica em branco apresentando apenas na TextBox (Total) o valor total das despesas efetuadas pela pessoa indicada. Quando seleciono a despesa total efetuada por determinada pessoa selecionada, quero que as despesas que esta pessoa efetuou apareçam também na ListBox; e não estou conseguindo com que estas sejam mostradas. Ex.: No ano de 2020, Marta_Total, gastou 10660 (valor mostrado na TextBox Total, mas não aparecem na ListBox as despesas (O Ano, Marta_Alimentação, Marta_Lazer e Marta_Vestuário e os valores) que ela fez. Agradeço qualquer ajuda. Estou enviando anexo o código VBA da planilha com o módulo Filtro e as imagens de um esboço da mesma em que estou trabalhando este código. Obrigado! CÓDIGO PARA OBTENÇÃO DAS SOMATÓRIAS.docx
  4. Olha Midori, eu já estava quase desistindo. Você conseguiu resolver o meu problema! Eu já havia revirado esse código não sei quantas vezes sem conseguir resolver os erros. De tanto que eu bati em cima desse código, eu já não estava mais conseguindo ver uma solução para o problema. Você me ajudou muito, obrigadaço!!!
  5. Midori, obrigado por sua paciência e pela ajuda. Não sei o que estou fazendo de errado, mas continua retornando o erro. Utilizei o comando "ElseIf" como você recomendou, mas o código continua sem rodar. Por favor, veja se estou fazendo certo (reduzi o código para facilitar a leitura): If MODALIDADE = "VENDA" Then Set DOCVENDA = Word.DOCUMENTS.Open("G:\@TESTES\VENDA.MODELO.docx") With DOCVENDA .Application.Selection.Find.Text = "@COMPRADOR" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox2 .Application.Selection.Find.Text = "@NACIONALIDADE" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox3 ' ' ' If Dir("G:\@TESTES\VENDA.docx") <> "" Then Kill "G:\@TESTES\VENDA.docx" End If .SaveAs ("G:\@TESTES\VENDA.docx") End With Set DOCVENDA = Nothing Set Word = Nothing '******************************************************************************************** ElseIf MODALIDADE = "ALUGUEL" Then Set DOCALUGUEL = Word.DOCUMENTS.Open("G:\@TESTES\ALUGUEL.MODELO.docx") Else MsgBox "MODALIDADE INVÁLIDA" End If With DOCALUGUEL .Application.Selection.Find.Text = "#LOCADOR" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox2 .Application.Selection.Find.Text = "#NACIONALIDADE" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox3 ' ' ' If Dir("G:\@TESTES\ALUGUEL.docx") <> "" Then Kill "G:\@TESTES\ALUGUEL.docx" End If .SaveAs ("G:\@TESTES\ALUGUEL.docx") End With Set DOCALUGUEL = Nothing Set Word = Nothing End Sub
  6. Obrigado Midori! O problema é que preciso desta condição (IF) para selecionar o documento que será editado. Já usei o comando "Else" no código mas também não tive sucesso. Estou realmente perdido sem saber o que fazer para resolver estes erros do código. Mais uma vez obrigado!
  7. Boa tarde prezados amigos! Peço humildemente desculpas se meu post está no lugar errado. Sou novo no fórum e não sei verificar se já tiveram a mesma dúvida que tenho Não sei se será possível me auxiliarem, estou iniciando meu aprendizado em Macros e VBA do Excel e fui incumbido de montar uma planilha na qual ao inserir os dados em um UserForm, estes são enviados para dois modelos de documentos no Word. Consegui fazer com que um dos documentos, o de VENDA seja gerado sem problemas no Word, no entanto após a sua geração retorna o "Erro em tempo de execução '91': A variável do objeto ou a variável do bloco 'With' não foi definida"; e ao depurar o código, o VBE seleciona a linha ".Application.Selection.Find.Text = "#LOCADOR". No entanto, ao inserir os dados para a geração do documento ALUGUEL no UserForm, o documento simplesmente não é gerado no Word apesar do mesmo "abrir", e retorna o mesmo erro citado; porém ao depurar o código o VBE seleciona a linha .Application.Selection.Find.Text = "@COMPRADOR". Já tentei com os meus parcos conhecimentos em VBA, modificar o código de todas as formas que conheço, mas não estou conseguindo resolver estes erro. Abaixo o código que criei baseado em algumas coisinhas que já aprendi de VBA: Private Sub CommandButton1_Click() Dim Word As Word.Application Dim DOCVENDA As Word.DOCUMENT Dim DOCALUGUEL As Word.DOCUMENT Dim MODALIDADE As String Set Word = CreateObject("WORD.APPLICATION") Word.Visible = True MODALIDADE = TextBox1 If MODALIDADE = "VENDA" Then Set DOCVENDA = Word.DOCUMENTS.Open("G:\@TESTES\VENDA.MODELO.docx") End If With DOCVENDA .Application.Selection.Find.Text = "@COMPRADOR" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox2 .Application.Selection.Find.Text = "@NACIONALIDADE" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox3 .Application.Selection.Find.Text = "@PROFISSÃO" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox4 .Application.Selection.Find.Text = "@ESTADOCIVIL" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox5 .Application.Selection.Find.Text = "@RG" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox6 .Application.Selection.Find.Text = "@CPF" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox7 If Dir("G:\@TESTES\VENDA.docx") <> "" Then Kill "G:\@TESTES\VENDA.docx" End If .SaveAs ("G:\@TESTES\VENDA.docx") End With Set DOCVENDA = Nothing Set Word = Nothing '******************************************************************************************** If MODALIDADE = "ALUGUEL" Then Set DOCALUGUEL = Word.DOCUMENTS.Open("G:\@TESTES\ALUGUEL.MODELO.docx") Word.Visible = True End If With DOCALUGUEL .Application.Selection.Find.Text = "#LOCADOR" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox2 .Application.Selection.Find.Text = "#NACIONALIDADE" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox3 .Application.Selection.Find.Text = "#PROFISSÃO" .Application.Selection.Find.Execute .Application.Selection.Range = Me.TextBox4 .Application.Selection.Find.Text = "#ESTADOCIVIL" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox5 .Application.Selection.Find.Text = "#RG" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox6 .Application.Selection.Find.Text = "#CPF" .Application.Selection.Find.Execute .Application.Selection.Range = TextBox7 If Dir("G:\@TESTES\ALUGUEL.docx") <> "" Then Kill "G:\@TESTES\ALUGUEL.docx" End If .SaveAs ("J:\MODELOS\ALUGUEL.docx") End With Set DOCALUGUEL = Nothing Set Word = Nothing End Sub Agradeço a quem puder me ajudar, e agradeço a todos por compartilharem os seus conhecimentos!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...