Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @Eli Almeidaa lst é uma lista com três elementos que também são listas. É só ver a condição de acordo com o valor dos elementos de cada uma.
  2. @Revolucao Com macro dá para adicionar o ComboBox nas novas linhas, mas a medida que novos controles são criados vai pesar no arquivo. Em vez do Combo coloque uma lista da Validação de Dados que será acrescentada automaticamente nas novas linhas da tabela.
  3. @Revolucao Para atualizar a lista ao selecionar a aba é no Activate e não SelectionChange como eu tinha comentado, Private Sub Worksheet_Activate() Call AtualizaNomes End Sub Cole essa Sub no mesmo módulo Rel_Cliente. Selecione qualquer outra aba e volte para Rel_Cliente para ativar o evento.
  4. @Jessica gomes A fórmula Hoje sempre retorna a data atualiza do dia. Se quiser fixar a data terá que digitar manualmente ou colar como valor.
  5. @Ismael Garcia Seu código pode ter outro loop para listar os objetos do formulário com o critério para pegar os ListBox, p.ex, For Each Controle In Me.Controls If TypeName(Controle) = "ListBox" Then ... End If Next Controle Aí é só usar a variável Controle em vez de Listbox1, 2, etc.
  6. @Revolucao Tem sim. Você pode escolher um dos eventos da planilha: Workbook_Open (executa ao abrir a planilha), SelectionChange (seleção da aba), etc.
  7. @João L. Dattoli A condicional dessa forma, como fez na função print, é um inline if ou operador ternário, p.ex, x = True y = 1 if x else 2 Assim o valor de y será 1 se x for True, caso contrário o valor atribuiído será 2. Nesse caso y = 1 já que x é True. No seu código a variável locdown recebe True já que está negando False. E o primeiro print mostra "uhuuuuuu" porque locdow é True mas grana não é menor ou igual a 40. O teste lógico and só é verdadeiro quando as duas condições são verdadeiras. O segundo print mostra "ficar em casa" já que o teste é True (locdown True or grana menor ou igual a 40). O teste or só é falso quando as duas são falsas.
  8. @Antonio Baptista Isso pode ser feito com macro. Se possível anexe as planilhas com dados fictícios.
  9. @ghg15 Com macro você pode importar tudo para uma planilha temporária e filtrar o produto.
  10. @Revolucao O controle pode ser carregado com um loop na lista de nomes da planilha, p.ex, Sub AtualizaNomes() Dim Nome As Range Set Nome = ThisWorkbook.Sheets("Cad_Cli").[C5] Call ThisWorkbook.Sheets("Rel_Cliente").ComboBox1.Clear While Nome.Value <> "" Call ThisWorkbook.Sheets("Rel_Cliente").ComboBox1.AddItem(Nome.Value) Set Nome = Nome(2) Wend End Sub
  11. @levi feirreira O erro acontece porque não existe esse objeto no seu sistema. No VBA ainda tem suporte para o IE (InternetExplorer.Application), mas para outros navegadores a alternativa é o Selenium. https://en.wikipedia.org/wiki/Selenium_(software)
  12. No menu Revisão em Gerenciar Proteção, ative a proteção e coloque a senha em Senha de proteção da planilha
  13. Dessa forma o retorno será a mesma quantidade de linhas da tabela. Se o seu Excel for o 365 você pode usar a fórmula Filtro que retorna só os dados da busca, =FILTRO(C3:C999;B3:B999<=HOJE())
  14. Se o número não for inteiro o retorno da fórmula será diferente de zero. Da mesma forma que um inteiro que não é múltiplo de 4.
  15. Com a fórmula Se o retorno pode ser matricial com base no critério da data, p.ex, =SE(B3:B15<=HOJE();C3:C15;"")
  16. @GENECIOFICIAL Na formatação aplique a fórmula Mod: =MOD(A3;4)=0
  17. Verifique o critério que usou para carregar os elementos de MatrizResultadosLinha. Apenas no caso da Capital vi que ela começa recebendo 3, por isso a primeira fica com os nomes das colunas. Esse controle não tem o recurso de ordenação. O que pode ser feito é ordenar toda a tabela antes adicionar os registros. Ou então copiar os dados para uma coluna auxiliar, ordenar e carregar a partir dela.
  18. @jessicardiax Seu código tem alguns erros e alertas, deve ter visto algo assim quando tentou compilar, main.c:9:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ main.c:17:30: warning: format ‘%i’ expects argument of type ‘int’ main.c:19:22: error: expected expression before ‘[’ Aí o compilador apontou o erro no m que ficou na frente da matriz. No loop mais interno devia incrementar j e não i. E normalmente nos contadores os testes são com o tamanho da matriz, p.ex, for(i=0; i<3; i++){ for(j=0; j<5; j++){ Não tem nada errado usar menor ou igual, mas acho mais simples e claro assim e é o mesmo valor que usou na declaração da matriz. E a declaração dos contadores pode ser no próprio for como int e não float como fez junto com as outras, p.ex, for(int i = 0; i < 3; i++){ for(int j = 0; j < 5; j++){ Seu printf está incrementando a variávei i, porém o comando for já faz isso. Isso é o mesmo que incrementar de 2 em 2. Aí faltou a variável.
  19. Midori

    C Cálculo de inss e ir

    @eric_luis Sua segunda condicional do ir está independente da anterior quando devia ser um else if. Mas os testes podem ser mais simples. Não precisa pegar o intervalo como fez em "sal >= 1247.71 && sal <= 2079.50" já que vai ir testar do menor para o maior, p.ex, double salario; double inss = 0; double ir = 0; ... if(salario <= 1247.70){ inss = salario * 0.08; }else if(salario <= 2079.50){ inss = salario * 0.09; }else if(salario <= 4159.0){ inss = salario * 0.11; }else{ inss = 468.0; } if(salario > 1710.78){ if(salario <= 2563.91){ ir = salario * 0.075 - 128.31; }else if(salario <= 3418.59){ ir = salario * 0.15 - 320.60; }else if(salario <= 4271.59){ ir = salario * 0.225 - 557.00; }else{ ir = salario * 0.275 - 790.58; } }
  20. @jcgmcs Qual conteúdo? O controle só lista os dados a partir da linha 5.
  21. @jcgmcs Faça esta correção na condição do CountIf, If .CountIf(Cells(5, Coluna).Resize(Linha - 4), Cells(Linha, Coluna)) <= 1 Then
  22. @jcgmcs O código alterado para carregar o combo da tabela do último anexo, Private Sub ComboBox1_Change() Dim Campo As Range Dim Coluna As Integer Dim Linha As Long Static Inicia As Boolean If Inicia = True Then Set Campo = [3:3] With WorksheetFunction If .CountIf(Campo, ComboBox1.Value) Then Coluna = .Match(ComboBox1.Value, Campo, 0) Call cb_Procurar.Clear For Linha = 5 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count If Cells(Linha, Coluna) <> "" Then If .CountIf(Cells(2, Coluna).Resize(Linha - 1), _ Cells(Linha, Coluna)) <= 1 Then Call cb_Procurar.AddItem(Cells(Linha, Coluna)) End If End If Next Linha End If End With End If Inicia = True End Sub
  23. @jcgmcs Com CurrentRegion toda região a partir de A3 será selecionado automaticamente. E caso tenha dados fora da tabela nas linhas ou colunas consecutivas, vão entrar no range também. Se for esse o caso, você pode alterar a atribuição da Tabela. Faça um teste colocando manualmente o range, p.ex, Set Tabela = [A3:F5573]
  24. @jcgmcs A tabela do seu anexo começa na linha 3, apenas essa linha não é considerada na lista, e a partir dela todos os dados serão testados até a última linha. Quando você testou a macro nessa planilha do anexo algum dado indevido apareceu no controle? Ou faltou algum que devia ter entrado? As linhas 1 e 2 não fazem parte do range e não vejo sentido ignorar a 4 já que o conteúdo dela faz parte da tabela. Caso esteja tentando adaptar o código em outra planilha, dê mais detalhes sobre a estrutura dela ou envie o anexo.
  25. @jcgmcs Os campos da tabela da Plan2 são diferentes das informações apresentadas na lista. Como gostaria de salvar esses dados?

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!