Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @OreiaG Se colocar o nome Leandro verá que ficará em branco quando deve retornar Vôlei da outra tabela...
  2. @Rafael nunes da silva Para o caso de não encontrar em nenhuma tabela é só aplicar a fórmula SEERRO, =SEERRO(SE(SE(PROCV(G4;A3:D13;4;0)<>0;PROCV(G4;A3:D13;4;0);PROCV(G4;K3:N13;4;0))=0;"";SE(PROCV(G4;A3:D13;4;0)<>0;PROCV(G4;A3:D13;4;0);PROCV(G4;K3:N13;4;0)));"") Assim não retorna o esporte no caso de aparecer apenas na tabela B.
  3. @Rafael nunes da silva Se não encontrar o nome em nenhuma tabela a fórmula retorna #N/A. Mas se tiver o nome em branco nos dois a célula fica em branco e não com 0. Mas se aí ficou com 0, assim deve resolver, =SE(SE(PROCV(G4;A3:D13;4;0)<>0;PROCV(G4;A3:D13;4;0);PROCV(G4;K3:N13;4;0))=0;"";SE(PROCV(G4;A3:D13;4;0)<>0;PROCV(G4;A3:D13;4;0);PROCV(G4;K3:N13;4;0)))
  4. veja se assim resolve, =se(procv(g4;a3:d13;4;0)0;procv(g4;a3:d13;4;0);procv(g4;k3:n13;4;0))
  5. @faria233 Na coluna da data faça o PROCV e em D11 cole a fórmula e arraste, veja se assim resolve, =SEERRO(ÍNDICE(FILTRO(Tabela1;(Tabela1[Dia]=[@Data])*(Tabela1[Parâmetro*]=ETAR!D$9)*(Tabela1[Produto]=SE(ARRUMAR(D$10)="Entrada";"Af-B";"Ef-T"));0);1;13);0)
  6. Se puder postar o enunciado vai ficar mais fácil entender como deve ser feito.
  7. @Davethekkid Aí mostra que você colou em "EstaPastaDeTrabalho" e não em "Planilha 4 (FIN)" como eu comentei.
  8. Aqui não conseguirá o código pronto. Crie a estrutura e faça o loop com as entradas que são 5. Para gerar o valor aleatório use a função srand e para ordenar o vetor você pode usar algum algoritmo de ordenação como o bubble sort que é um dois mais simples.
  9. Mostre um exemplo de como devem ficar alguns dados na planilha ETAR, assim fica mais fácil entender o que quer fazer.
  10. @Davethekkid Para testar o código abra o editor com Alt+F11. Do lado esquerdo dê duplo clique na Planilha 4 (FIN) e cole o código. Não precisa fazer nenhuma alteração. Depois de colar o código clique sobre algum valor da tabela para rodar a macro.
  11. Aí a variável c1 recebe o valor 1; E c2 o caractere 1 (tudo entre aspas simples é um caractere). O tipo char basicamente armazena um inteiro e quando recebe um caractere tem o código dele de acordo com a tabela ascii, o caractere 1 é o código 49. Sobre os prints, na função dump que recebe dois argumentos o primeiro é o endereço da variável na memória e o segundo é tamanho dela em bytes. Aí ela faz um loop, enquanto a variável dos bytes é diferentes de zero, incrementando o endereço da variável e mostrando valor do conteúdo dele. No caso da variável i aqui a função mostra o valor 1 e outros três por causa dos 4 bytes do tipo int.
  12. @Scofieldgyn Para deixar a coluna da marca alinhada considerei o máximo de 25 caracteres (com tab não ficou alinhado). Se acha que nesse campo pode ter marcas com mais caracteres, talvez seja melhor usar um ListBox no lugar do TextBox. Function Historico() As String Dim Marca As String Dim Rota As String Dim Meta As String Dim Peso As String Dim Dif As String Dim Texto As String Dim Celula As Range Set Celula = ThisWorkbook.ActiveSheet.[T9] Marca = Celula.Offset(-2, -18) Texto = "MARCA" & String(25 - Len("MARCA"), " ") & "ROTA" & _ vbTab & "META" & vbTab & vbTab & _ "PESO" & vbTab & vbTab & "DIF" & vbCrLf While Celula.Row < ThisWorkbook.ActiveSheet.UsedRange.Rows.Count Rota = Celula.Offset(0, -18) Meta = Format(Celula.Offset(0, -14), "#,##0.00") Peso = Format(Celula.Offset(0, -1), "#,##0.00") Dif = Format(Celula, "#,##0.00") If Trim(Celula.Offset(1, -18)) = "ROTA" Then Marca = Celula.Offset(0, -18) End If If IsNumeric(Celula) And Celula <> 0 And Trim(Rota) <> "TOTAL" Then Texto = Texto & Marca & String(25 - Len(Marca), " ") & _ Rota & vbTab & Meta & vbTab & _ Peso & vbTab & Dif & vbTab & vbCrLf End If Set Celula = Celula.Offset(1) Wend Historico = Texto End Function
  13. @Scofieldgyn Rodei na planilha do anexo e apareceram todos. Você deixou a outra Sub? Private Sub UserForm_Initialize() TextBox1.MultiLine = True TextBox1.Font.Name = "Courier" TextBox1.Text = Historico TextBox1.Locked = True End Sub
  14. @Scofieldgyn A função com as alterações, Function Historico() As String Dim Rota As String Dim Meta As String Dim Peso As String Dim Dif As String Dim Texto As String Dim Celula As Range Set Celula = ThisWorkbook.ActiveSheet.[T9] Texto = "ROTA" & vbTab & "META" & vbTab & vbTab & _ "PESO" & vbTab & vbTab & "DIF" & vbCrLf While Celula.Row < ThisWorkbook.ActiveSheet.UsedRange.Rows.Count Rota = Celula.Offset(0, -18) Meta = Format(Celula.Offset(0, -14), "#,##0.00") Peso = Format(Celula.Offset(0, -1), "#,##0.00") Dif = Format(Celula, "#,##0.00") If IsNumeric(Celula) And Celula <> 0 And Trim(Rota) <> "TOTAL" Then Texto = Texto & Rota & vbTab & Meta & vbTab & _ Peso & vbTab & Dif & vbCrLf End If Set Celula = Celula.Offset(1) Wend Historico = Texto End Function
  15. Não é questão de necessidade, da forma que fez está errado. A função strcmp retorna 0 (zero) se as strings foram iguais. O que está fazendo é mostrando a mensagem "resposta errada" e "resposta certa" para o mesmo critério. Com o operador != resolve, embora acho mais simples com else, mas veja que você usou apenas ==.
  16. Essa parte não faz sentido. No lugar segundo if devia ser apenas else, não? if(strcmp(resp,"fim") == 0){ printf("resposta certa"); }else{ printf("resposta errada\n\n"); }
  17. @Ilanez Santos Faltou corrigir o que comentei sobre o scanf e a comparação das strings. Use strcmp em todas. Além disso substitua gets, no lugar use fgets ou scanf com a specificação do tamanho. Veja a mensagem do compilador na linha do gets, main.c:211:3: warning: ‘gets’ is deprecated [-Wdeprecated-declarations] 211 | gets(nome); | ^~~~ O seu deve ter mostrado algo assim também.
  18. @Ilanez Santos Agora vi que pprint é um erro de digitação e não outra função. Compilei seu código e retorno vários warnings. Tente corrigir o que comentei acima e veja se consegue resolver esses warnings mostrados pelo compilador. Se isso quer dizer que está pulando algum scanf então é questão de buffer.
  19. @Ilanez Santos Não rodei o seu código porque tem algumas funções nele que não é do padrão C, então não tem no compilador que estou usando. Mas isto está errado, if (resp !="batman") Em C não dá para comprar strings assim. Para isso você deve usar uma função como a strcmp de string.h. Isto também, scanf("%d", resp); O segundo parâmetro dessa função espera o endereço da variável, então faltou o operador &.
  20. @Ilanez Santos Que tipo de erro? O código compila? Dá alguma mensagem de erro?
  21. @Scofieldgyn Abra a janela VBA com Alt+F11. Crie o formulário no menu em Insert > Userform. Ao lado do formulário vai ter os controles (Toolbox), lá procure o TextBox e desenhe no form. Depois com duplo clique sobre o formulário abra o editor e cole o código. Para executar é F5 (ou Run). Depois você pode colocar um botão na planilha para chamar o form. Mas se achar mais fácil pode usar Msgbox no lugar do form, aí é só mostrar o retorno da função como no TextBox, Sub Macro() MsgBox Historico End Sub
  22. @Davethekkid Veja se assim resolve, cole no módulo da planilha. Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect([D6:O7], Target) Is Nothing Then Dim Tipo As String Tipo = IIf(Target.Row = 6, "COF", "DES") Call FiltraMes(Left(Cells(5, Target.Column), 3), Tipo) End If End Sub Sub FiltraMes(Mes As String, PlanNome As String) Dim Plan As Worksheet Set Plan = ThisWorkbook.Sheets(PlanNome) Plan.Activate Plan.[C5].CurrentRegion.AutoFilter Field:=2, Criteria1:=Mes End Sub
  23. @Scofieldgyn No Userform os dados podem ser mostrados no TextBox. Para testar crie os controles e ajuste o tamanho, Private Sub UserForm_Initialize() TextBox1.MultiLine = True TextBox1.Font.Name = "Courier" TextBox1.Text = Historico TextBox1.Locked = True End Sub Function Historico() As String Dim Rota As String Dim Meta As String Dim Peso As String Dim Dif As String Dim Texto As String Dim Celula As Range Set Celula = ThisWorkbook.ActiveSheet.[T4] Texto = "ROTA" & vbTab & "META" & vbTab & vbTab & _ "PESO" & vbTab & vbTab & "DIF" & vbCrLf While Celula <> 0 Rota = Celula.Offset(0, -18) Meta = Format(Celula.Offset(0, -14), "#,##0.00") Peso = Format(Celula.Offset(0, -1), "#,##0.00") Dif = Format(Celula, "#,##0.00") Texto = Texto & Rota & vbTab & Meta & vbTab & _ Peso & vbTab & Dif & vbCrLf Set Celula = Celula.Offset(1) Wend Historico = Texto End Function
  24. @diegojanjao Abra arquivo com Workbooks.Open, save e feche após editar a célula, p.ex, Sub EditarPasta(Arquivo As String, Valor As String) Dim Pasta As Workbook Set Pasta = Workbooks.Open(Arquivo) Pasta.ActiveSheet.[G5] = Valor Pasta.Save Pasta.Close End Sub Passe o caminho para o primeiro parâmetro e o valor formatado para o segundo.
  25. @airtonmelo Se já aprendeu o que é loop (laço) crie um e faça o critério de parada com a entrada negativa. Para calcular o número de dias divida os segundos por 86400. Tente fazer e retorne com o código se tiver dificuldade.

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!