Ir ao conteúdo
  • Cadastre-se

Midori

Membro Pleno
  • Posts

    3.535
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @Lucia Andrade Vai funcionar da mesma forma se for um índice válido, seja de uma constante como nesse teste, de uma variável ou do ComboBox. Quais valores numéricos adicionou no CB_Cartao?
  2. @Lucia Andrade O que não deu certo? A macro apresenta algum erro? Testei aqui e funcionou. Cole o código no módulo para fazer o mesmo teste. Os dados serão salvos na aba CARTÃO 3. Private Sub Teste() Dim lin As Integer, n As Integer 'If IsNumeric(CB_Cartao.Value) Then n = 5 'End If If n >= 1 And n <= Sheets.Count Then With Sheets(n) lin = .Range("B" & .Rows.Count).End(xlUp).Row + 1 .Cells(lin, 2) = "A" 'Me.CAIXA_ID.Text .Cells(lin, 3) = "B" 'Me.CB_Cliente.Text .Cells(lin, 4) = "C" 'Me.TX_Data.Text .Cells(lin, 5) = "D" 'Me.CB_Cartao.Text .Cells(lin, 6) = "E" 'Me.TX_Compras.Text .Cells(lin, 7) = "F" 'Me.TX_Valor_Parcelas.Text End With Else MsgBox "Índice inválido", vbExclamation End If End Sub
  3. @Lucia Andrade Faltou passar o valor do índice. Entendi que ele vem de um combo, então é só fazer isto antes do If, If IsNumeric(CB_Cartao.Value) Then n = CB_Cartao.Value End If Na atribuição da linha seu range está "B32" e deve ser só "B".
  4. @Lucia Andrade Atribuiu algum valor a variável n? Se sim, é um valor entre 1 e a quantidade de abas? Como ficou o seu código?
  5. @Ewerton de Miranda Não precisa selecionar a tabela, veja se o loop assim resolve, For a = 1 To qtd_tabelas Call doc.Tables(a).AutoFitBehavior(wdAutoFitWindow) Next a
  6. @Lucia Andrade Pode ser assim, If n >= 1 And n <= Sheets.Count Then With Sheets(n) lin = .Range("B" & .Rows.Count).End(xlUp).Row + 1 .Cells(lin, 2) = Me.CAIXA_ID.Text .Cells(lin, 3) = Me.CB_Cliente.Text .Cells(lin, 4) = Me.TX_Data.Text .Cells(lin, 5) = Me.CB_Cartao.Text .Cells(lin, 6) = Me.TX_Compras.Text .Cells(lin, 7) = Me.TX_Valor_Parcelas.Text End With Else MsgBox "Índice inválido", vbExclamation End If Obs: Veja que coloquei o ponto antes dos ranges, já que usou a instrução With.
  7. Isso pode acontecer se tentar rodar Atualiza manualmente (com F5, p.ex). Esse procedimento só deve ser chamado por outro que nesse caso é o Calculate. Tenta resolver só o primeiro range e se der certo aplique para outro. O segundo parâmetro é a quantidade de colunas usadas para salvar os dados. Assim vai até a coluna 16380 e é quase a quantidade limite de colunas da atual versão do Excel. Se quiser guardar o histórico sem depender desse limite, é melhor fazer por linhas e não colunas.
  8. O primeiro índice da planilha é 1. Aí a variável n só foi declarada e como não recebeu nenhum valor passar zero como argumento. Para evitar esse erro você pode testar antes se n é um índice válido.
  9. Qual macro não existe? Copiou o procedimento Atualiza e colocou o Calculate na planilha?
  10. Se a sua versão for a 365 poderá usar a fórmula ÚNICO e fazer assim, =MOD(CORRESP(A1;ÚNICO($A$1:$A$13);0);2) Dessa forma poderá usar a posição dos dados encontrados no array e aplicar a formatação nas posições ímpares.
  11. Salvou o arquivo como xlsm? Caso necessário, as configurações de segurança ficam no excel em opções > central de confiabilidade.
  12. Neste tópico teve uma questão parecida, https://www.clubedohardware.com.br/forums/topic/1606559-excel-copia-e-guarda-x-valores-entregues-pelo-rtd-real-time-data/ A mesma macro pode servir. No Calculate tenta editar o loop para o range dessa planilha.
  13. Os elementos são acrescentados no combo com o procedimento AddItem. É só fazer um para cada no Initialize do formulário.
  14. Pode mostrar um exemplo do que quer fazer?
  15. Veja se assim resolve, =SOMA((Tabela1[SITUAÇÃO]>="D")*(Tabela1[SITUAÇÃO]<="H")*(NÚM.CARACT(Tabela1[SITUAÇÃO])=1)*SUBTOTAL(9;DESLOC(C10;LIN(Tabela1[VALOR])-LIN(C10);0)))
  16. @joap avelino de sousa Isso pode ser feito com tabela dinâmica, é bem mais simples. Assim o campo GRH fica como filtro da tabela.
  17. ExportAsFixedFormat vai exportar todas as páginas da planilha. Se quiser imprimir certificados específicos, sua macro pode copiar só os nomes necessários. Se for de 1 a 10 serão os nomes da linha 1 até a 10. Para o outro caso será a linha 1 e 5.
  18. Para isso faltou fazer o loop nas abas. Esse pode ser um For Each mais externo ao das linhas. p.ex, For Each Planilha In ThisWorkbook.Sheets Linha = 2 'Referente a linha abaixo do cabeçalho da planilha2(Dados) If Left(Planilha.Name, 4) = "DADO" Then With Planilha Do Until .Cells(Linha, 1) = "" ...
  19. Aí o primeiro parâmetro de PROCV só recebeu uma célula. Pegue todo o intervalo da coluna.
  20. Assim está contando na tabela da planilha 2, além disso falta fazer o teste que falei, pegue a outra fórmula como exemplo. O CONT.NÚM deve pegar a tabela que será filtrada, onde tem a segmentação.
  21. O Google Sheets não tem esse tipo de tabela. No caso das fórmulas tem ARRAYFORMULA que se aplicar com outra não será necessário arrastar.
  22. O que deu errado? O teste da fórmula tem o objetivo de verificar se a tabela da planilha 1 está filtrada. Se tem filtro (teste verdadeiro para CONT.NÚM com SUBTOTAL função 2) faça uma soma simples da outra tabela. Para o teste falso, faça o SOMASE. O argumento do número PA é o SUBTOTAL 5.
  23. Você pode aplicar a lógica da fórmula em D22. Se a tabela não tem filtro é só somar a coluna "Valor Em Prejuizo", caso contrário faça o SOMASE com o critério do número PA.
  24. As páginas que falei são as que foram configuradas para impressão na aba Certificado, lá vai ter Page 1, Page 2, etc. Então é da mesma planilha para gerar um arquivo pdf.
  25. Talvez a plataforma esteja recebendo a formatação da célula. Tenta deixar o range como texto para ver se resolve NumberFormat = "@".

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