Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @Eli Almeidaa Na opção 2 seu código verifica se o número primo. Para isso o loop faz o incremento das variáveis contarDivisor e contador. Se essas variáveis não forem iniciadas corretamente, no próximo loop elas vão continuar com o valor do processo anterior. Por isso a atribuição delas deve ser feita sempre antes de entrar no loop. Se você fizer isso no início do programa só vai iniciar uma vez, p.ex assim teria resultados errados, Var opcao, numero, contador, contarDivisor: inteiro Inicio contarDivisor <- 0 contador <- 1 Repita escreval("Menu") escreval("1. Inserir número") ...
  2. Isso não faz sentido já que Nome é do tipo caractere (ou string) e Paulo é do tipo lógico. São dois tipos distintos e o operador maior ou igual é usado para testes numéricos. Nesse código você só precisa uma variável do tipo caractere que recebe a entrada do usuário. Aí no teste condicional poderá verificar o nome, .p,ex var Nome: Caractere ... Se Nome = "Paulo" então Escreva (" Historia de Paulo ") SeNao Escreva(" Então qual personagem?") FimSe Assim o teste será feito com a variável Nome e a constante (ou literal) Paulo. Perceba a diferença entre constante e variável.
  3. @Matheus Pincelli Fernades Com recursão dá para retornar a lista diretamente sem a necessidade de criar outra, def quad(n): if n <= 1: return [1] else: return quad(n - 1) + [n ** 2] print(quad(6))
  4. @henrique Souza850 Você pode adicionar uma coluna e por meio de funções determinar o mês dos registros com base nesse critério. Aí fica fácil de filtrar e visualizar. Com fórmula p.ex fica assim, =TEXTO(FIMMÊS(A1-MOD(DIA(A1);26);1);"mmmm") Faça um teste com essa fórmula numa planilha com uma lista de datas e veja se retorna o resultado esperado. Se for isso é só usar a mesma lógica no Power Query.
  5. Faltou chamar a função Copy. Se não tiver nada para colar vai dar erro na linha do PasteSpecial.
  6. Para mostrar de acordo como o personagem, seu código deve ter uma estrutura condicional (ou de escolha) onde você vai colocar o critério com base na entrada. Procure sobre os comandos SE-ENTÃO e ESCOLHA-CASO para aplicar no seu código.
  7. @Eli Almeidaa Não pode ser no início porque dentro do loop da opção seu programa pode chamar a opção 2 mais de uma vez.
  8. @GENECIOFICIAL Veja se assim resolve, =SE(NÚM.CARACT(A1)=16;"**** "&TEXTO(DIREITA(A1;12);"0000 0000 0000");ESQUERDA(A1;"3") &"*** ***"& DIREITA(A1;2))
  9. Essas variáveis devem ser iniciadas antes de entrar no loop da opção 2. Pode ser assim como fez.
  10. @Matheus Pincelli Fernades A lista pode ser privada e o código mais simples com iteração e sem essas condicionais. Você pode fazer um contador e acrescentar o quadrado dele na lista: lista.append(i ** 2).
  11. @Revolucao O código é só para abrir o formulário. O último só demonstrei como o formulário pode abrir com determinado registro da tabela selecionado. E aí teria que substituir a constante 10 por uma variável com o número da linha.
  12. @Revolucao O que você não entendeu? Associar com o quê?
  13. @Revolucao No botão da sua planilha com o clique direito do mouse você vai ver no menu a opção "Atribuir Macro". Aí é só selecionar a sub com o código.
  14. Sub Formulario() [B4].CurrentRegion.Name = "Database" For I = 2 To 10 Call SendKeys("%(N)") Next I ActiveSheet.ShowDataForm End Sub
  15. @Revolucao É só copiar o bloco do loop/FOR e colar antes da linha ShowDataForm.
  16. @Revolucao O segundo é um trecho que você pode acrescentar numa sub. Onde tem 10 pode ser a linha da tabela que foi selecionada.
  17. @Revolucao Para exibir o formulário tem a função ShowDataForm, p.ex, Sub Formulario() [B4].CurrentRegion.Name = "Database" ActiveSheet.ShowDataForm End Sub Esse formulário é limitado e não tem muitos recursos para manipular via macro. Mas para selecionar um registro específico você pode tentar com SendKeys, p.ex para selecionar o décimo registro, For I = 2 To 10 Call SendKeys("%(N)") Next I ActiveSheet.ShowDataForm
  18. @GENECIOFICIAL Para usar a função como uma fórmula, cole o código no módulo e na entre com a fórmula, =RESULTADO(A4:J5) Function Resultado(Area As Range) As String Dim Celula As Range Dim Endr As String Dim Valr As String Resultado = "CONCLUSIVO" For Each Celula In Area.Rows(1).Cells If Celula.Value <= Celula(2).Value Then Endr = Endr & " " & Celula.Address(False, False) Valr = Valr & " " & Celula.Value Resultado = "DIVERGENTE - CÉLULA(S)" _ & Endr & " - VALOR(S)" & Valr End If Next Celula End Function
  19. @eliarde3 Para isso tem algoritmos como o desta página que usa o método recursivo, https://www.geeksforgeeks.org/print-all-possible-combinations-of-r-elements-in-a-given-array-of-size-n/ Deixei os elementos apenas numa coluna para facilitar, Dim Lin As Integer Sub GeraCombinacoes() Dim Elementos As Range Dim R As Integer Dim N As Integer Set Elementos = [A1:A20] R = 2 N = Elementos.Rows.Count - 1 Lin = 1 Call PrintCombination(Elementos, N, R) End Sub Sub PrintCombination(Elementos As Range, N As Integer, R As Integer) Dim Data As Variant ReDim Data(N) Call CombinationUtil(Elementos, Data, 0, N, 0, R) End Sub Sub CombinationUtil( _ Elementos As Range, Data As Variant, _ xStart As Integer, xEnd As Integer, Index As Integer, R As Integer) Dim J As Integer Dim I As Integer If Index = R Then For J = 0 To R - 1 [C:C].Cells(Lin, J + 1) = Data(J) Next J Lin = Lin + 1 Exit Sub End If I = xStart While I <= xEnd And xEnd - I + 1 >= R - Index Data(Index) = Elementos(I + 1) Call CombinationUtil(Elementos, Data, I + 1, xEnd, Index + 1, R) I = I + 1 Wend End Sub Este é o resultado com os 20 elementos e as combinações nas colunas C:D com 190 linhas,
  20. Para mais de uma ocorrência dessa condição, a fórmula pode exibir a lista de valores e endereços dessa forma, =SE(SOMA(SE(A4:J4<=A5:J5;1;0))>0;"DIVERGENTE - CÉLULA(S) " & UNIRTEXTO(" / ";VERDADEIRO;SEERRO(ENDEREÇO(4;SE(A4:J4<=A5:J5;TRANSPOR(LIN(INDIRETO("1:10")));""));"")) & " - VALOR(ES) " &UNIRTEXTO(" / ";VERDADEIRO;SE(A4:J4<=A5:J5;A4:J4;""));"CONCLUSIVO") A fórmula UNIRTEXTO não é compatível com todas as versões do excel. Mas se não há necessidade de prever multiplas ocorrências é possível resolver sem ela.
  21. @Sandro António Para especificar a quantidade de casas decimais tem a função Round. Esta é sintaxe, Round(expression, [ numdecimalplaces ]) O primeiro parâmetro recebe o valor no formato númerico e outro o número de casas.
  22. @mcoumiotis Veja se assim resolve, =C2:C10*D2:D10+SE(A2:A10="ALFA";E2:E10;-E2:E10)
  23. @Jeff_Sandes No exemplo tem duas mudanças, do 51,50 para 52,80 e depois do 52,80 para 51,50. Assim macro vai pegar os números das linhas 17 e 18. Sub Macro() Dim Area As Range Dim Linha As Long Dim Lin As Long Dim Col As Integer Set Area = [B2:Y61] For Col = 1 To Area.Columns.Count For Lin = 2 To Area.Rows.Count If Area(Lin, Col).Value <> Area(Lin - 1, Col).Value Then Linha = Linha + 1 [Z:Z].Cells(Linha).Value = _ Area(0, Col).Value & ":" & _ Area(Lin, 0).Value End If Next Lin Next Col End Sub
  24. @GENECIOFICIAL Veja se assim resolve, Sub Atualiza() Dim Area As Range Dim Conta As Integer Dim Linha As Long Dim Numero As Long Set Area = [B7:H207] For Linha = 1 To Area.Rows.Count Conta = _ WorksheetFunction.CountA( _ Area(Linha, 2).Resize(1, Area.Columns.Count - 1)) If Conta = Area.Columns.Count - 1 Then Numero = Numero + 1 Area(Linha, 1).Value = "Número " & Numero Else Area(Linha, 1).Value = "Incompleto" End If Next Linha End Sub Também para fazer só com fórmula. E fórmula com VBA iniciando o critério de countif em B6, Sub Atualiza2() [B7:B207].Formula = _ "=IF(COUNTA(RC[1]:RC[6])=6,""Número "" " & _ "&COUNTIF(R6C2:R[-1]C,""Número*"")+1,""Incompleto"")" [B7:B207].Value = [B7:B207].Value End Sub
  25. @alan neris É só remover as linhas desnecessárias. Se quer abrir o Edge e enviar comandos para o navegador, deixe as linhas do run até o último sendkeys.

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!