Ir ao conteúdo
  • Cadastre-se

Midori

Membro Pleno
  • Posts

    3.524
  • Cadastrado em

  • Última visita

  1. A fórmula está correta. O erro acontece porque seu Excel é em português. Na configuração pt-br os argumentos são separados por ponto e vírgula e as funções são traduzidas assim, =SE(NÚM.CARACT(B1)=10; ESQUERDA(B1;2) & "9" & DIREITA(B1;8); B1)
  2. Uma alternativa é fazer um loop infinito com break no caso da entrada válida, while(1){ printf("Quantos clientes deseja cadastrar? "); if(scanf("%d", &n)){ break; } while(getchar() != '\n'); }
  3. Depois de adicionar os anos é só fazer a atribuição no Initialize: cb_Procurar.Value = 2024
  4. Se o range atribuído for maior que a tabela, não vai funcionar. Então por exemplo no código coloquei B5:N204, supondo que a tabela tenha dados até a linha 100 ela seria menor que o range atribuído. No caso da fonte, deve ser questão de formatação. Para manter a configuração aplique ClearContents no lugar de Clear.
  5. A melhoria pode ser na questão da velocidade fazendo como comentei, p.ex, Sub ExcUlt180dias() Dim Area As Range Dim Coluna As Range Dim Linha As Long Dim Conta As Long Set Area = [B5:N204] Set Coluna = Area.Columns(8) Conta = WorksheetFunction.CountIf(Coluna, "<=180") If Conta > 0 Then Linha = Coluna.Rows.Count - Conta Call Area.Sort(Coluna, xlDescending) Call Area.Rows(Linha + 1).Resize(Conta).Clear Call MsgBox(Conta & " registros excluídos", vbInformation) End If End Sub
  6. Para deixar o processo mais rápido é melhor ordenar a tabela com base na coluna I e depois identificar onde começa a linha no critério para apagar tudo de uma vez.
  7. É quase isso, só faltou atribuir o valor. Assim seu código está testando uma variável com o valor sempre zero já que no VBA esse é o padrão para as numéricas. Declare Valor, sugiro Long, e faça a atribuição antes do If, assim: Valor = Area(Linha).Value. De qualquer forma não devia acontecer erro. Mostre a mensagem que aparece caso continue.
  8. Este tópico deve ajudar, Aplique o mesmo método no loop. O critério será If Valor >= 0 And Valor <= 180. https://www.clubedohardware.com.br/forums/topic/1563307-código-vba-excel-excluir-varias-linhas-baseadas-se-uma-certa-palavra-existe
  9. Um dos motivos desse erro é quando a aba não existe. Verifique se o nome é Geral mesmo.
  10. Uma alternativa para a questão das listagens é usar RowSorce no lugar de Add, mas para isso teria que trocar o ListView por ListBox já que o View não tem essa propriedade.
  11. With ListView1 .Gridlines = True .View = lvwReport .FullRowSelect = True .MultiSelect = True .ColumnHeaders.Clear .ColumnHeaders.Add Text:="ID", Width:=35, Alignment:=0 .ColumnHeaders.Add Text:="Cliente", Width:=220, Alignment:=0 'Alinh. Esquerda ...
  12. Assim não vai funcionar porque Clear é o procedimento e não a classe. O VBA mostra os membros de uma classe assim, Se digitar o ponto depois de Clear o VBA não tem como listar algo. Então é simples, basta chamar Clear uma única vez.
  13. Para uso doméstico e pagamento único a microsoft.com também oferece a licença do office home & student 2021.
  14. ColumnHeaders é uma classe. Quando você adicionou as colunas, chamou Add que é membro dela assim como Clear também é. No caso de Add você passou argumentos, mas Clear não tem nenhum. Então é só fazer a chamada de Clear antes de Add.
  15. Devia funcionar mesmo com a planilha oculta. Talvez o problema seja nas variáveis. Verifique se os valores das linhas são válidos.

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